在中实现客户托管的 KMS 密钥 Amazon IAM Identity Center - Amazon IAM Identity Center
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在中实现客户托管的 KMS 密钥 Amazon IAM Identity Center

客户管理的密 Amazon 钥是您创建、拥有和管理的密钥管理服务密钥。要在 Amazon IAM Identity Center 中实施客户托管的 KMS 密钥进行静态加密,请执行以下步骤:

重要

某些 Amazon 托管应用程序不能与配置了客户托管 KMS 密钥的 Amazon IAM 身份中心一起使用。请参阅Amazon 可与 IAM 身份中心配合使用的托管应用程序

  1. 第 1 步:确定贵组织的用例-要定义使用 KMS 密钥的正确权限,您需要确定组织中的相关用例。KMS 密钥权限由 KMS 密钥策略声明和基于身份的策略组成,它们相互配合,允许相应的 IAM 委托人将 KMS 密钥用于其特定用例。

  2. 步骤 2:准备 KMS 密钥策略声明-根据步骤 1 中确定的用例选择相关的 KMS 密钥策略声明模板,并填写所需的标识符和 IAM 委托人名称。从基准 KMS 密钥策略声明开始,如果您的安全策略需要,请按照 Advanced KMS 密钥策略声明中所述对其进行完善。

  3. 步骤 3:创建客户托管的 KMS 密钥-在 KMS 中创建符合 IAM 身份中心要求的 Amazon KMS 密钥,并将步骤 2 中准备的 KMS 密钥策略声明添加到 KMS 密钥策略中。

  4. 步骤 4:为跨账户使用 KMS 密钥配置 IAM 策略-根据步骤 1 中确定的用例选择相关的 IAM 政策声明模板,并通过填写密钥 ARN 做好使用准备。然后,通过将准备好的 IAM 策略声明添加到委托人的 IAM 策略中,允许每个特定用例的 IAM 委托人跨账户使用 KMS 密钥。

  5. 步骤 5:在 IAM 身份中心配置 KMS 密钥-在您的 IAM Identity Center 实例中启用客户托管的 KMS 密钥,以将其用于静态加密。

    重要

    在继续执行此步骤之前,请彻底验证在前面步骤中配置的所有 KMS 密钥权限。完成后,IAM 身份中心将开始使用 KMS 密钥进行静态加密。

第 1 步:确定贵组织的用例

在创建和配置客户托管 KMS 密钥之前,请确定您的用例并准备所需的 KMS 密钥权限。有关 Amazon KMS 密钥策略的更多信息,请参阅 KMS 开发人员指南

调用 IAM 身份中心服务的 IAM 委托人 APIs 需要权限。例如,可以通过权限集策略授权授权管理员使用这些 APIs 权限。当使用客户托管密钥配置 IAM 身份中心时,IAM 委托人还必须有权通过 IAM 身份中心服务 APIs使用 KMS API。您可以在两个位置定义这些 KMS API 权限:KMS 密钥策略和与 IAM 委托人关联的 IAM 策略。

KMS 密钥权限包括:

  1. 您在中创建 KMS 密钥时在 KMS 密钥上指定的 KMS 密钥策略声明步骤 3:创建客户托管的 KMS 密钥

  2. 创建 KMS 密钥步骤 4:为跨账户使用 KMS 密钥配置 IAM 策略后,您在中指定的 IAM 委托人的 IAM 政策声明。

下表列出了需要权限才能使用您的 KMS 密钥的相关用例和 IAM 委托人。

应用场景 需要权限才能使用 KMS 密钥的 IAM 委托人 必需/可选
Amazon IAM 身份中心的使用
  • Amazon IAM 身份中心的管理员

  • IAM 身份中心服务和相关的身份存储服务

必需
在 IAM 身份中心使用 Amazon 托管应用程序
  • Amazon 托管应用程序的管理员

  • Amazon 托管应用程序

  • Amazon 托管应用程序代入调用 IAM 身份中心服务的@@ 服务角色 APIs

可选
在启用 Amazon Control Tower 的 Amazon IAM 身份中心实例上使用
  • Amazon Control Tower 管理员

可选
通过 IA Amazon M 身份中心对亚马逊 EC2 Windows 实例进行单点登录
  • 获准对亚马 EC2 逊 Windows 实例执行 SSO 的 IAM 委托人

可选
使用 IAM 委托人调用 IAM Identity Center 服务的任何其他 APIs 用例,例如客户托管的应用程序、权限集配置工作流程或 Amazon Lambda 函数
  • 这些工作流程用于调用 IAM 身份中心服务的 IAM 委托人 APIs

可选
注意

表中列出的多个 IAM 委托人需要 Amazon KMS API 权限。但是,为了保护您在 IAM 身份中心中的用户和群组数据,只有 IAM 身份中心和身份存储服务可以直接调用 Amazon KMS API。

步骤 2:准备 KMS 密钥策略声明

确定与您的组织相关的用例后,您可以准备相应的 KMS 密钥策略声明。

  1. 选择与您的组织用例相匹配的 KMS 密钥策略声明。从基准策略模板开始。如果您需要基于安全要求的更具体的策略,则可以使用中的示例修改策略声明高级 KMS 密钥策略声明。有关此决定的指导,请参阅选择基准与高级 KMS 密钥策略声明的注意事项。此外,中的每个基准部分都基准 KMS 密钥和 IAM 策略声明包括相关的注意事项。

  2. 将相关策略复制到编辑器,然后在 KMS 密钥策略声明中插入所需的标识符和 IAM 委托人名称。有关查找引用标识符值的帮助,请参阅找到所需的标识符

以下是每个用例的基准策略模板。使用 KMS 密钥仅需要 Amazon IAM 身份中心的第一组权限。我们建议您查看适用的小节,以获取更多特定于用例的信息。

重要

修改 IAM Identity Center 已在使用的密钥的 KMS 密钥策略时要谨慎行事。虽然 IAM Identity Center 在您最初配置 KMS 密钥时会验证加密和解密权限,但它无法验证后续的策略更改。无意中删除必要的权限可能会中断您的 IAM 身份中心的正常运行。有关排除 IAM Identity Center 中与客户托管密钥相关的常见错误的指南,请参阅对客户管理的密钥进行故障排除 Amazon IAM Identity Center

注意

IAM Identity Center 及其关联的身份存储需要服务级别权限才能使用您的客户托管 KMS 密钥。此要求扩展到 APIs 使用服务证书调用 IAM Identity Center 服务的 Amazon 托管应用程序。对于通过 APIs 正向访问会话调用 IAM Identity Center 服务的其他用例,只有发起方 IAM 委托人(例如管理员)需要 KMS 密钥权限。值得注意的是,使用 Amazon 访问门户和 Amazon 托管应用程序的最终用户不需要直接的 KMS 密钥权限,因为这些权限是通过相应的服务授予的。

步骤 3:创建客户托管的 KMS 密钥

您可以使用 Amazon 管理控制台或 KMS 创建客户托管 Amazon 密钥 APIs。创建密钥时,将您在步骤 2 中准备的 KMS 密钥策略声明添加到 KMS 密钥策略中。有关详细说明,包括默认 KMS 密钥策略指南,请参阅Amazon 密钥管理服务开发人员指南

密钥必须满足以下要求:

  • KMS 密钥必须与 IAM 身份中心实例位于同一 Amazon 区域

  • 您可以选择多区域密钥或单区域密钥。为了在多个区域与您未来的用例保持向前兼容,我们建议您选择多 Amazon 区域密钥

  • KMS 密钥必须是配置为 “加密和解密” 用途的对称密钥

  • KMS 密钥必须与 IAM Identity Center 的组织实例位于同一个 Amazon Organizations 管理账户中

步骤 4:为跨账户使用 KMS 密钥配置 IAM 策略

使用其他 Amazon 账户的 IAM 身份中心服务的 APIs 任何 IAM 委托人(例如 IAM Identity Center 委托管理员)也需要一份允许通过这些账户使用 KMS 密钥的 IAM 政策声明 APIs。

对于步骤 1 中确定的每个用例:

  1. 在基准 KMS 密钥和 IAM 策略声明中找到相关的 IAM 策略声明模板。

  2. 将模板复制到编辑器并填写密钥 ARN,在步骤 3 中创建 KMS 密钥后,该密钥现已可用。有关查找关键 ARN 值的帮助,请参阅。找到所需的标识符

  3. 在中 Amazon Web Services Management Console,找到与用例关联的 IAM 委托人的 IAM 策略。此政策的位置因用例和访问权限的授予方式而异。

    • 对于直接在 IAM 中授予的访问权限,您可以在 IAM 控制台中找到 IAM 委托人,例如 IAM 角色。

    • 对于通过 IAM 身份中心授予的访问权限,您可以在 IAM 身份中心控制台中找到相关的权限集。

  4. 将特定于用例的 IAM 策略声明添加到 IAM 角色并保存更改。

注意

此处描述的 IAM 策略是基于身份的策略。虽然此类策略可以附加到 IAM 用户、群组和角色,但我们建议尽可能使用 IAM 角色。有关 IAM 角色与 IAM 用户的更多信息,请参阅 IAM 用户指南。

某些 Amazon 托管应用程序中的其他配置

某些 Amazon 托管应用程序要求您配置服务角色以允许应用程序使用 IAM Identity Center 服务 APIs。如果您的组织将 Amazon 托管应用程序与 IAM Identity Center 配合使用,请为每个已部署的应用程序完成以下步骤:

  1. 请参阅应用程序的用户指南,确认权限是否已更新为包含与 KMS 密钥相关的权限,以便在 IAM Identity Center 中使用该应用程序。

  2. 如果是,请按照应用程序用户指南中的说明更新权限,以免干扰应用程序的运行。

注意

如果您不确定 Amazon 托管应用程序是否使用这些权限,我们建议您查看所有已部署的 Amazon 托管应用程序的用户指南。您只需为每个需要配置的应用程序执行一次此配置。

步骤 5:在 IAM 身份中心配置 KMS 密钥

重要

在继续执行此步骤之前:

  • 确认您的 Amazon 托管应用程序与客户托管的 KMS 密钥兼容。有关兼容应用程序的列表,请参阅可与 IAM Identity Center 配合使用的Amazon 托管应用程序。如果您的应用程序不兼容,请不要继续。

  • 配置使用 KMS 密钥所需的权限。如果没有适当的权限,此步骤可能会失败或中断 IAM Identity Center Amazon 管理、托管应用程序的使用以及其他需要 KMS 密钥权限的用例。有关更多信息,请参阅 第 1 步:确定贵组织的用例

  • 确保 Amazon 托管应用程序和使用 IAM 角色调用 IAM 身份中心服务的 APIs 客户托管应用程序的权限也允许通过 IAM 身份中心服务使用 KMS 密钥 APIs。某些 Amazon 托管应用程序要求您配置权限(例如服务角色)才能使用这些权限 APIs。请参阅每个已部署的 Amazon 托管应用程序的用户指南,以确认是否需要添加特定的 KMS 密钥权限。

在启用 IAM 身份中心的新组织实例时指定 KMS 密钥

启用 IAM Identity Center 的新组织实例时,您可以在设置过程中指定客户托管的 KMS 密钥。这样可以确保实例从一开始就使用您的密钥进行静态加密。在开始之前,请参阅客户托管的 KMS 密钥和高级 KMS 密钥策略的注意事项

  1. 启用 IAM 身份中心页面上,展开静态加密部分。

  2. 选择管理加密

  3. 选择客户管理的密钥

  4. 对于 KMS 密钥,请执行以下操作之一:

    1. 从您的 KMS 密钥中选择 “选择”,然后从下拉列表中选择您创建的密钥。

    2. 选择输入 KMS 密钥 ARN,然后输入密钥的完整 ARN。

  5. 选择保存

  6. 选择 “启用” 以完成设置。

有关更多信息,请参阅启用 IAM Identity Center

更改 IAM 身份中心现有组织实例的密钥配置

您可以随时将客户托管的 KMS 密钥更改为其他密钥或切换到 Amazon 自有密钥。

Console

更改您的 KMS 密钥配置

  1. 打开 IAM 身份中心控制台,网址为https://console.aws.amazon.com/singlesignon/

  2. 在导航窗格中,选择 Settings(设置)

  3. 选择其他设置选项卡。

  4. 选择管理加密

  5. 选择下列选项之一:

    1. 客户托管密钥-从下拉列表中选择其他客户托管密钥或输入新的密钥 ARN。

    2. Amazon 拥有的密钥-切换到默认的加密选项。

  6. 选择保存

Amazon CLI

将 IAM 身份中心的现有组织实例更改为使用 KMS 客户托管密钥

aws sso-admin update-instance \ --instance-arn arn:aws:sso:::instance/ssoins-1234567890abcdef \ --encryption-configuration \ KeyType=CUSTOMER_MANAGED_KEY,KmsKeyArn=arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab

将 IAM Identity Center 的现有组织实例更改为使用 Amazon 自有密钥

aws sso-admin update-instance \ --instance-arn arn:aws:sso:::instance/ssoins-1234567890abcdef \ --encryption-configuration KeyType=AWS_OWNED_KMS_KEY

客户管理的关键注意事项

  • 更新 IAM 身份中心操作的 KMS 密钥配置对您的 IAM 身份中心中的活跃用户会话没有影响。 APIs 在此过程中,您可以继续使用 Amazon 访问门户、IAM 身份中心控制台和 IAM 身份中心服务。

  • 切换到新的 KMS 密钥时,IAM Identity Center 会验证它是否可以成功使用该密钥进行加密和解密。如果您在设置密钥策略或 IAM 策略时犯了错误,控制台将显示一条解释性错误消息,并且之前的 KMS 密钥将继续使用。

  • 默认的每年 KMS 密钥轮换将自动进行。您可以参阅《Amazon KMS 开发人员指南》,了解有关密钥轮换监控 Amazon KMS 密钥控制密钥删除权限等主题的信息。

重要

如果您的 IAM Identity Center 实例使用的客户托管 KMS 密钥由于 KMS 密钥策略不正确而被删除、禁用或无法访问,则您的员工用户和 IAM 身份中心管理员将无法使用 IAM 身份中心。访问权限的丧失可以是暂时的(可以更正密钥策略),也可以是永久性的(无法恢复已删除的密钥),具体视情况而定。我们建议您限制对关键操作的访问权限,例如删除或禁用 KMS 密钥。此外,我们建议您的组织设置Amazon 漏洞访问程序,以确保您的特权用户能够 Amazon 在 IAM Identity Center 无法访问的情况下进行访问。

找到所需的标识符

在为客户托管的 KMS 密钥配置权限时,您需要特定的 Amazon 资源标识符来完成密钥策略和 IAM 策略声明模板。在 KMS 密钥策略声明中插入所需的标识符(例如组织 ID)和 IAM 委托人名称。

以下是在 Amazon 管理控制台中查找这些标识符的指南。

IAM 身份中心亚马逊资源名称 (ARN) 和身份存储 ARN

IAM 身份中心实例是一种具有自己唯一 ARN 的 Amazon 资源,例如 arn: aws: sso::: instance/ssoins-1234567890abcdef。ARN 遵循服务授权参考的 IAM 身份中心资源类型部分中记录的模式。

每个 IAM Identity Center 实例都有一个关联的身份存储,用于存储用户和群组身份。身份存储具有名为身份存储 ID 的唯一标识符(例如 d-123456789a)。ARN 遵循服务授权参考的 “身份存储资源类型” 部分中记录的模式。

您可以在 IAM 身份中心的设置页面上找到 ARN 和身份存储 ID 值。身份存储 ID 位于 “身份源” 选项卡中。

Amazon Organizations ID

如果您想在密钥策略中指定组织 ID(例如 o-exampleorg1),则可以在 IAM Identity Center 和 Organizations 控制台的 “设置” 页面中找到其值。ARN 遵循服务授权参考的 Organizations 资源类型部分中记录的模式。

KMS 密钥 ARN

您可以在控制台中找到 KMS 密钥的 ARN。 Amazon KMS 选择左侧的客户托管密钥,点击要查找其 ARN 的密钥,即可在 “常规配置” 部分中看到该密钥。ARN 遵循《服务授权参考》 Amazon KMS 资源类型部分中记录的模式。

有关中的密钥策略 Amazon KMS 和疑难解答 Amazon KMS 权限的更多信息,请参阅《 Amazon Key Management Service 开发人员指南》。有关 IAM 策略及其 JSON 表示形式的更多信息,请参阅 IAM 用户指南。