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

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

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

注意

客户托管的 KMS 密钥 AWS IAM Identity Center 目前在部分 AWS 地区可用。

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

重要

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

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

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

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

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

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

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

在创建和配置客户托管 KMS 密钥之前,请确定您的用例并准备所需的 KMS 密钥权限。有关 AWS 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 委托人 必需/可选
AWS IAM 身份中心的使用
  • AWS IAM 身份中心的管理员

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

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

  • AWS 托管应用程序

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

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

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

可选
调用 IAM Identity Center API 或身份存储 API 的任何其他用例,例如权限集配置工作流程或 AWS Lambda 函数
  • 这些工作流程用于调用 IAM 身份中心 API 和身份存储 API 的 IAM 委托人

可选
注意

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

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

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

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

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

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

重要

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

注意

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

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

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

密钥必须满足以下要求:

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

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

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

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

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

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

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

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

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

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

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

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

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

注意

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

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

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

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

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

注意

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

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

重要

在继续执行此步骤之前:

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

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

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

Console

在启用 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 密钥

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

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

  3. 加密” 部分的 “设置” 页面上,选择 “编辑”

  4. 对于加密类型,选择客户托管密钥

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

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

      注意

      请注意,下拉列表将仅显示您在同一 AWS 账户中有权访问的 KMS 密钥。因此,如果您在委托管理账户中执行此操作,则需要指定AWS Organizations 管理账户中密钥的 ARN。

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

  6. 选择保存更改

AWS CLI
aws ssoadmin update-instance \ --configuration KeyType=string,KmsKeyArn=string \ --instance-arn string \ --name string

更改您的 KMS 密钥配置

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

更改您的 KMS 密钥配置

  1. 打开 IAM Identity Center 控制台。

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

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

  4. 选择管理加密。

  5. 选择下列选项之一:

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

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

  6. 选择保存

客户管理的关键注意事项

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

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

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

重要

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

找到所需的标识符

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

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

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

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

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

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

AWS Organizations ID

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

KMS 密钥 ARN

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

有关中的密钥策略 AWS KMS 和故障排除 AWS KMS 权限的更多信息,请参阅《 AWS Key Management Service 服务开发者指南》。有关 IAM 策略及其 JSON 表示形式的更多信息,请参阅 IAM 用户指南。