用于 Azure Fluid Relay 加密的客户管理的密钥

可以使用自己的加密密钥来保护 Azure Fluid Relay 资源中的数据。 指定客户管理的密钥 (CMK) 时,该密钥用于保护和控制对数据加密密钥的访问。 CMK 可以更灵活地管理访问控制。

必须使用以下 Azure 密钥存储来存储 CMK:

必须创建新的 Azure Fluid Relay 资源才能启用 CMK。 无法更改现有 Fluid Relay 资源的 CMK 启用/禁用。

此外,Fluid Relay 的 CMK 依赖于托管标识,启用 CMK 时需要为 Fluid Relay 资源分配一个托管标识。 仅用户分配的标识可用于 Fluid Relay 资源 CMK。 有关托管标识的详细信息,请参阅此处

尚无法通过 Azure 门户使用 CMK 配置 Fluid Relay 资源。

使用 CMK 配置 Fluid Relay 资源时,Azure Fluid Relay 服务会在存储 Fluid 会话工件的 Azure 存储帐户范围内配置适当的 CMK 加密设置。 有关 Azure 存储中的 CMK 的详细信息,请参阅此处

若要验证 Fluid Relay 资源是否正在使用 CMK,可以发送 GET 检查资源的属性,查看资源是否具有有效的非空属性 encryption.customerManagedKeyEncryption。

先决条件:

在 Azure Fluid Relay 资源上配置 CMK 之前,必须满足以下先决条件:

  • 密钥必须存储在 Azure Key Vault 中。
  • 密钥必须是 RSA 密钥而不是 EC 密钥,因为 EC 密钥不支持包装和解包。
  • 必须在步骤 1 中创建对密钥保管库具有必要权限(获取、包装和解包)的用户分配的托管标识。 此处提供更多信息。 请在 AKV 的“密钥权限”下授予获取、包装和解包权限。
  • Azure Key Vault、用户分配的标识和 Fluid Relay 资源必须位于同一区域和同一 Azure Active Directory (Azure AD) 租户中。

使用 CMK 创建 Fluid Relay 资源

PUT https://management.chinacloudapi.cn/subscriptions/<subscription ID>/resourceGroups/<resource group name> /providers/Microsoft.FluidRelay/fluidRelayServers/< Fluid Relay resource name>?api-version=2022-06-01 @"<path to request payload>" 

请求有效负载格式:

{ 
    "location": "<the region you selected for Fluid Relay resource>", 
    "identity": { 
        "type": "UserAssigned", 
        "userAssignedIdentities": { 
            “<User assigned identity resource ID>": {} 
        } 
    }, 
    "properties": { 
       "encryption": { 
            "customerManagedKeyEncryption": { 
                "keyEncryptionKeyIdentity": { 
                    "identityType": "UserAssigned", 
                    "userAssignedIdentityResourceId":  "<User assigned identity resource ID>" 
                }, 
                "keyEncryptionKeyUrl": "<key identifier>" 
            } 
        } 
    } 
} 

示例 userAssignedIdentities 和 userAssignedIdentityResourceId/subscriptions/ xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testUserAssignedIdentity

示例 keyEncryptionKeyUrl:https://test-key-vault.vault.azure.cn/keys/testKey/testKeyVersionGuid

注意:

  • Identity.type 必须是 UserAssigned。 它是分配给 Fluid Relay 资源的托管标识的标识类型。
  • Properties.encryption.customerManagedKeyEncryption.keyEncryptionKeyIdentity.identityType 必须是 UserAssigned。 它是应用于 CMK 的托管标识的标识类型。
  • 虽然可以在 Identity.userAssignedIdentities 中指定多个标识,但只有一个分配给指定 Fluid Relay 资源的用户标识将用于 CMK 访问密钥保管库进行加密。
  • Properties.encryption.customerManagedKeyEncryption.keyEncryptionKeyIdentity.userAssignedIdentityResourceId 是应用于 CMK 的用户分配标识的资源 ID。 请注意,它应是 Identity.userAssignedIdentities 中的标识之一(必须先将标识分配给 Fluid Relay 资源,然后才能将其用于 CMK)。 此外,它应对密钥(由 keyEncryptionKeyUrl 提供)具有必要的权限。
  • Properties.encryption.customerManagedKeyEncryption.keyEncryptionKeyUrl 是用于 CMK 的密钥标识符。

更新现有 Fluid Relay 资源的 CMK 设置

可以更新现有 Fluid Relay 资源的以下 CMK 设置:

  • 更改用于访问密钥加密密钥的标识。
  • 更改密钥加密密钥标识符(密钥 URL)。
  • 更改密钥加密密钥的密钥版本。

请注意,在现有 Fluid Relay 资源上启用 CMK 后,就无法禁用。

请求 URL:

PATCH https://management.chinacloudapi.cn/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.FluidRelay/fluidRelayServers/<fluid relay server name>?api-version=2022-06-01 @"path to request payload" 

用于更新密钥加密密钥 URL 的请求有效负载示例:

{ 
    "properties": { 
       "encryption": { 
            "customerManagedKeyEncryption": { 
                "keyEncryptionKeyUrl": "https://test_key_vault.vault.azure.cn/keys/testKey /xxxxxxxxxxxxxxxx" 
            } 
        } 
    } 
}

另请参阅