为AEM as a Cloud Service设置客户管理的密钥 customer-managed-keys-for-aem-as-a-cloud-service

AEM as a Cloud Service 当前将客户数据存储在 Azure Blob Storage 和 MongoDB 中,默认情况下利用提供商管理的加密密钥来保护数据。 虽然这种设置满足了许多组织的安全需求,但受管控行业或需要增强数据安全性的企业仍希望更好地控制其加密做法。 对于那些优先考虑数据安全、合规性以及管理加密密钥能力的组织来说,客户管理密钥 (CMK) 解决方案提供了一个关键的增强功能。

NOTE
在配置Azure Key Vault之前,必须首先在Cloud Manager中为Cloud Service项目启用CMK。 在生产程序创建期间或编辑现有程序时,将在​ 安全性 ​选项卡上启用CMK。
请参阅创建生产程序编辑程序

此解决方案的目的 the-problem-being-solved

提供商管理的密钥可能会给需要额外隐私和完整性的企业带来困难。 如果不能控制密钥管理,组织在满足合规要求、实施自定义安全策略以及确保完整的数据安全方面将面临挑战。

客户管理密钥 (CMK) 的引入解决了这些问题,它赋予 AEM 客户对其加密密钥的完全控制权。 通过通过Microsoft Entra ID(以前称为Azure Active Directory)进行身份验证,AEM CS可安全地连接到客户的Azure Key Vault,从而允许他们管理其加密密钥的生命周期 — 包括密钥创建、轮换和撤销。

CMK 具有以下几个优点:

  • 管理数据和应用程序加密:​通过直接管理AEM应用程序和数据加密密钥来提高安全性。
  • 提高机密性和完整性:​通过完整的加密管理,降低无意访问和泄露敏感或专有数据的可能性。
  • Azure Key Vault支持:​使用Azure Key Vault允许密钥存储、处理密钥操作和执行密钥轮替。

通过采用CMK,客户可以增强对其数据安全和加密实践的控制,增强安全性和降低风险,同时保持AEM CS的可扩展性和灵活性。

AEM as a Cloud Service允许您使用自己的加密密钥对静态数据进行加密。 本指南提供了在适用于AEM as a Cloud Service的Azure Key Vault中设置客户管理的密钥(CMK)的步骤。

WARNING
在设置 CMK 后,您无法恢复到系统管理的密钥。 您有责任安全地管理您的密钥,并在 Azure 中提供对您的密钥存储库、密钥和 CMK 应用程序的访问权限,以防止失去对数据的访问权限。

本指南提供了创建和配置所需基础架构的以下步骤:

  1. 设置环境
  2. 从 Adobe 获取应用程序 ID
  3. 创建新资源组
  4. 创建密钥存储库
  5. 授予 Adobe 访问密钥存储库的权限
  6. 创建加密密钥

您需要与Adobe共享密钥保管库URL、加密密钥名称以及有关密钥保管库的信息。

设置环境 setup-your-environment

Azure 命令行界面 (CLI) 是本指南的唯一要求。 如果您尚未安装 Azure CLI,请按照此处的官方安装说明进行操作。

在继续本指南的其余部分之前,请使用az login登录到您的CLI。

NOTE
虽然本指南使用 Azure CLI,但也可以经由 Azure 控制台执行相同的操作。 如果您更喜欢使用 Azure 控制台,请使用以下命令作为参考。

启动 AEM as a Cloud Service 的 CMK 配置流程 request-cmk-for-aem-as-a-cloud-service

您需要通过UI为AEM as a Cloud Service环境请求客户管理的密钥(CMK)配置。为此,请导航到​ 客户管理的密钥 ​部分下的AEM主页安全UI。
该页面将列出所有支持CMK的程序。然后,您可以通过单击启用项目按钮开始载入流程。

启用程序以使用CMK

如果在创建/编辑程序时已在CLoud管理器中启用CMK,请单击“开始载入”按钮。

使用 CMK UI 开始网站加入

从 Adobe 获取应用程序 ID obtain-an-application-id-from-adobe

开始载入流程后,Adobe会提供一个Entra应用程序ID。 此应用程序ID是本指南其余部分所必需的,并会创建一个服务主体,以允许Adobe访问您的密钥库。 如果您还没有应用程序ID,请等待Adobe提供该ID。

请求正在处理中,等待 Adobe 提供 Entra 应用程序 ID

请求完成后,您可以在CMK UI中看到应用程序ID。

Entra 应用程序 ID 由 Adobe 提供

创建新资源组 create-a-new-resource-group

在您选择的位置创建一个新的资源组。

# Choose a location and a name for the resource group.
$location="<AZURE LOCATION>"
$resourceGroup="<RESOURCE GROUP>"

# Create the resource group.
az group create --location $location --resource-group $resourceGroup

如果您已有资源组,请改用它。 在本指南的其余部分,资源组的位置和其名称分别用 $location$resourceGroup标识。

创建密钥存储库 create-a-key-vault

创建密钥保管库以包含您的加密密钥。 密钥存储库必须启用清除保护。 清除保护对于加密来自其他 Azure 服务的静态数据是必要的。 必须启用公共网络访问权限,以确保 Adobe 服务能够访问密钥存储库。

IMPORTANT
禁用密钥保管库的公共网络访问需要从具有对密钥保管库的网络访问权限的环境执行密钥创建或轮换等操作。 例如,可以访问密钥保管库的VM。
# Reuse this information from the previous step.
$location="<AZURE LOCATION>"
$resourceGroup="<RESOURCE GROUP>"

# Choose a name for the key vault.
$keyVaultName="<KEY VAULT NAME>"

# Create the key vault.
az keyvault create `
  --location $location `
  --resource-group $resourceGroup `
  --name $keyVaultName `
  --default-action=Allow `
  --enable-purge-protection `
  --enable-rbac-authorization `
  --public-network-access Enabled

授予 Adobe 访问密钥存储库的权限 grant-adobe-access-to-the-key-vault

在此步骤中,您允许Adobe通过Entra应用程序访问您的密钥库。 Adobe应已提供Entra应用程序的ID。

首先,您必须创建一个附加到Entra应用程序的服务主体,并为其分配​ 密钥保管库Reader ​和​ 密钥保管库加密用户 ​角色。 这些角色仅限于本指南中创建的密钥存储库。

# Reuse this information from the previous steps.
$resourceGroup="<RESOURCE GROUP>"
$keyVaultName="<KEY VAULT NAME>"

# The application ID is provided by Adobe.
$appId="<APPLICATION ID>"

# Retrieve the ID of the key vault.
$keyVaultId=(az keyvault show --resource-group $resourceGroup --name $keyVaultName --query id --output tsv)

# Create a new service principal.
$servicePrincipalId=(az ad sp create --id $appId --query id --out tsv)

# Assign the roles to the service principal.
az role assignment create --assignee $servicePrincipalId --role "Key Vault Reader" --scope $keyVaultId
az role assignment create --assignee $servicePrincipalId --role "Key Vault Crypto User" --scope $keyVaultId

创建加密密钥 create-an-encryption-key

最后,您可以在密钥存储库中创建加密密钥。 需要​ 密钥库加密管理人员 ​角色才能完成此步骤。 要将此角色授予您,如果登录用户没有此角色,请联系您的系统管理员。 或者,请让已具有此角色的人员为您完成此步骤。

需要通过网络访问密钥存储库才能创建加密密钥。 首先验证您是否可以访问密钥存储库并继续创建密钥:

# Reuse this information from the previous steps.
$keyVaultName="<KEY VAULT NAME>"

# Choose a name for your key.
$keyName="<KEY NAME>"

# Create the key.
az keyvault key create --vault-name $keyVaultName --name $keyName

共享密钥保管库信息 share-the-key-vault-information

此时,配置完成。 通过CMK UI共享所需信息,这会启动环境配置过程。

# Reuse this information from the previous steps.
$resourceGroup="<RESOURCE GROUP>"
$keyVaultName="<KEY VAULT NAME>"

# Retrieve the URL of your key vault.
$keyVaultUri=(az keyvault show --name $keyVaultName `
    --resource-group $resourceGroup `
    --query properties.vaultUri `
    --output tsv)

# In addition we would need the tenantId and the subscriptionId in order to setup the connection.
$tenantId=(az keyvault show --name $keyVaultName `
    --resource-group $resourceGroup `
    --query properties.tenantId `
    --output tsv)
$subscriptionId="<Subscription ID>"

在CMK UI中提供以下信息:
在UI中填写信息

撤销关键访问权限的影响 implications-of-revoking-key-access

撤销或禁用对Key Vault、key或CMK应用程序的访问权限可能会对您的AEM as a Cloud Service环境造成重大运营中断。 禁用这些键后,AEM as a Cloud Service中的数据将变得不可访问,并且任何依赖此数据的下游操作都将停止运行。 在对关键配置进行任何更改之前,了解潜在影响至关重要。

如果您决定撤消AEM as a Cloud Service对您的数据的访问,可以通过从Azure中的密钥库中移除与应用程序关联的用户角色来执行此操作。

暂存CMK设置 stage-cmk-setup

在CMK UI中提供所需信息后,Adobe会为AEM as a Cloud Service Stage环境启动配置过程。 此过程需要时间,完成后您会收到通知。

等待Adobe配置暂存环境

Prod CMK设置 prod-cmk-setup

完成阶段设置后,您应该执行彻底的二端验证。 如果一切运行正常,您需要确认可相应地配置生产环境。

确认生产环境

在CMK UI中进行确认后,Adobe会启动针对AEM as a Cloud Service Prod环境的配置过程。 此过程需要时间,完成后您会收到通知。

等待Adobe配置生产环境

完成CMK设置 complete-the-cmk-setup

配置过程完成后,您可以在UI中查看CMK设置的状态。您还可以看到密钥保管库和加密密钥。
进程现已完成

问题和支持 questions-and-support

如果您对Adobe的客户托管密钥设置有任何疑问、查询或需要帮助,请联系AEM as a Cloud Service。 Adobe支持可以解决您遇到的任何问题。

recommendation-more-help
experience-manager-cloud-service-help-main-toc