本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon IAM Identity Center 中实施客户自主管理型 KMS 密钥
客户自主管理型密钥是您创建、拥有和管理的 Amazon Key Management Service 密钥。要在 Amazon IAM Identity Center 中实施用于静态加密的客户自主管理型 KMS 密钥,请按照以下步骤操作:
重要
一些 Amazon 托管应用程序不能与配置了客户自主管理型 KMS 密钥的 Amazon IAM Identity Center 一起使用。请参阅Amazon 可与 IAM 身份中心配合使用的托管应用程序。
-
步骤 1:确定组织的使用案例 - 要正确定义 KMS 密钥的使用权限,您需要确定整个组织的相关使用案例。KMS 密钥权限由 KMS 密钥策略语句和基于身份的策略组成,它们协同工作以允许适当的 IAM 主体为其特定使用案例使用 KMS 密钥。
-
步骤 2:准备 KMS 密钥策略语句 - 根据步骤 1 中确定的使用案例选择相关的 KMS 密钥策略语句模板,并填写必需的标识符和 IAM 主体名称。从基线 KMS 密钥策略语句开始,如果您的安全策略要求,请按照高级 KMS 密钥策略语句中的描述对其进行细化。
-
步骤 3:创建客户自主管理型 KMS 密钥 - 在 Amazon KMS 中创建一个符合 IAM Identity Center 要求的 KMS 密钥,并将步骤 2 中准备的 KMS 密钥策略语句添加到 KMS 密钥策略中。
-
步骤 4:为 KMS 密钥的跨账户使用配置 IAM 策略 - 根据步骤 1 中确定的使用案例选择相关的 IAM 策略语句模板,并通过填写密钥 ARN 来准备使用它们。然后,通过将准备好的 IAM 策略语句添加到主体的 IAM 策略中,允许每个特定使用案例的 IAM 主体跨账户使用 KMS 密钥。
-
步骤 5:在 IAM Identity Center 中配置 KMS 密钥 - 在您的 IAM Identity Center 实例中启用客户自主管理型 KMS 密钥,以将其用于静态加密。
重要
在执行此步骤之前,请彻底验证在前几步中配置的所有 KMS 密钥权限。完成后,IAM Identity Center 将开始使用 KMS 密钥进行静态加密。
步骤 1:确定组织的使用案例
在创建和配置客户自主管理型 KMS 密钥之前,请确定您的使用案例并准备所需的 KMS 密钥权限。有关 KMS 密钥策略的更多信息,请参阅《Amazon KMS 开发人员指南》。
调用 IAM Identity Center 服务 API 的 IAM 主体需要权限。例如,可以通过权限集策略授权委托管理员使用这些 API。当 IAM Identity Center 配置了客户自主管理型密钥时,IAM 主体还必须具有通过 IAM Identity Center 服务 API 使用 KMS API 的权限。您在两个地方定义这些 KMS API 权限:KMS 密钥策略和与 IAM 主体关联的 IAM 策略中。
KMS 密钥权限包括如下:
-
您在 步骤 3:创建客户自主管理型 KMS 密钥 中创建 KMS 密钥时在密钥上指定的 KMS 密钥策略语句。
-
您在 步骤 4:为 KMS 密钥的跨账户使用配置 IAM 策略 中创建 KMS 密钥后为 IAM 主体指定的 IAM 策略语句。
下表指定了相关使用案例以及需要使用您的 KMS 密钥权限的 IAM 主体。
| 应用场景 | 需要使用 KMS 密钥权限的 IAM 主体 | 必需/可选 |
|---|---|---|
| 使用 Amazon IAM Identity Center |
|
必需 |
| 将 Amazon 托管应用程序与 IAM Identity Center 一起使用 |
|
可选 |
| 在启用的 Amazon IAM Identity Center 实例上使用 Amazon Control Tower |
|
可选 |
| 使用 Amazon IAM Identity Center 单点登录到 Amazon EC2 Windows 实例 |
|
可选 |
| 任何其他使用 IAM 主体调用 IAM Identity Center 服务 API 的使用案例,例如客户自主管理型应用程序、权限集配置工作流或 Amazon Lambda 函数 |
|
可选 |
注意
表中列出的多个 IAM 主体需要 Amazon KMS API 权限。但是,为了保护 IAM Identity Center 中的用户和组数据,只有 IAM Identity Center 和 Identity Store 服务直接调用 Amazon KMS API。
步骤 2:准备 KMS 密钥策略语句
确定与您的组织相关的使用案例后,您可以准备相应的 KMS 密钥策略语句。
-
选择与您组织的使用案例匹配的 KMS 密钥策略语句。从基线策略模板开始。如果您需要基于安全要求的更具体策略,可以使用 高级 KMS 密钥策略语句 中的示例修改策略语句。有关此决策的指导,请参阅 选择基线与高级 KMS 密钥策略语句的注意事项。此外,基线 KMS 密钥和 IAM 策略语句 中的每个基线部分都包含相关的注意事项。
-
将相关策略复制到编辑器中,并在 KMS 密钥策略语句中插入所需的标识符和 IAM 主体名称。有关查找引用标识符值的帮助,请参阅 查找所需的标识符。
以下是每个使用案例的基线策略模板。只有第一组用于 Amazon IAM Identity Center 的权限是使用 KMS 密钥所必需的。我们建议您查看适用的子部分以获取更多使用案例特定信息。
重要
修改已由 IAM Identity Center 使用的密钥的 KMS 密钥策略时请务必谨慎。虽然 IAM Identity Center 在您初始配置 KMS 密钥时会验证加密和解密权限,但它无法验证后续的策略更改。无意中移除必要的权限可能会中断您的 IAM Identity Center 的正常运行。有关排查 IAM Identity Center 中客户自主管理型密钥相关常见错误的指导,请参阅 对客户管理的密钥进行故障排除 Amazon IAM Identity Center。
注意
IAM Identity Center 及其关联的 Identity Store 需要服务级权限才能使用您的客户自主管理型 KMS 密钥。此要求扩展到使用服务凭证调用 IAM Identity Center 服务 API 的 Amazon 托管应用程序。对于其他使用转发访问会话调用 IAM Identity Center 服务 API 的使用案例,仅发起调用的 IAM 主体(例如管理员)需要 KMS 密钥权限。值得注意的是,使用 Amazon 访问门户和 Amazon 托管应用程序的最终用户不需要直接的 KMS 密钥权限,因为这些权限是通过各自的服务授予的。
步骤 3:创建客户自主管理型 KMS 密钥
可以使用 Amazon 管理控制台或者 Amazon KMS API 创建客户自主管理型密钥。在创建密钥时,将您在步骤 2 中准备的 KMS 密钥策略语句添加到 KMS 密钥策略中。有关详细说明,包括关于默认 KMS 密钥策略的指南,请参阅《Amazon Key Management Service 开发人员指南》。
密钥必须满足以下要求:
-
KMS 密钥必须与 IAM Identity Center 实例位于同一 Amazon 区域
-
您可以选择多区域密钥或单区域密钥。为了与您未来跨多个 Amazon 区域的使用案例保持前向兼容,我们建议选择多区域密钥
-
KMS 密钥必须是配置为“加密和解密”用途的对称密钥
-
KMS 密钥必须与 IAM Identity Center 的组织实例位于同一 Amazon Organizations 管理账户中
步骤 4:为 KMS 密钥的跨账户使用配置 IAM 策略
任何从另一个 Amazon 账户使用 IAM Identity Center 服务 API 的 IAM 主体(例如 IAM Identity Center 委托管理员)也需要一个 IAM 策略语句,允许通过这些 API 使用 KMS 密钥。
对于在步骤 1 中确定的每个使用案例:
-
在“基线 KMS 密钥和 IAM 策略语句”中找到相关的 IAM 策略语句模板。
-
将模板复制到编辑器中,并填写密钥 ARN(在步骤 3 中创建 KMS 密钥后,此 ARN 现已可用)。有关查找密钥 ARN 值的帮助,请参阅 查找所需的标识符。
-
在 Amazon Web Services 管理控制台 中,找到与该使用案例关联的 IAM 主体的 IAM 策略。此策略的位置因使用案例和授予访问权限的方式而异。
对于在 IAM 中直接授予的访问权限,您可以找到 IAM 主体,例如 IAM 控制台中的 IAM 角色。
对于通过 IAM Identity Center 授予的访问权限,您可以在 IAM Identity Center 控制台中找到相关的权限集。
-
将特定于使用案例的 IAM 策略语句添加到 IAM 角色并保存更改。
注意
此处所述的 IAM 策略是基于身份的策略。虽然此类策略可以附加到 IAM 用户、组和角色,但我们建议尽可能使用 IAM 角色。有关 IAM 角色与 IAM 用户的更多信息,请参阅 IAM 用户指南。
某些 Amazon 托管应用程序中的额外配置
某些 Amazon 托管应用程序要求您配置服务角色,以允许应用程序使用 IAM Identity Center 服务 API。如果您的组织将 Amazon 托管应用程序与 IAM Identity Center 一起使用,请为每个已部署的应用程序完成以下步骤:
-
查看应用程序的用户指南,确认权限是否已更新,以包含将该应用程序与 IAM Identity Center 一起使用时所需的 KMS 密钥相关权限。
-
如果是,请按照应用程序用户指南中的说明更新权限,以避免中断应用程序的操作。
注意
如果您不确定某个 Amazon 托管应用程序是否使用这些权限,我们建议您检查所有已部署的 Amazon 托管应用程序的用户指南。对于每个需要此配置的应用程序,您只需执行一次此配置。
步骤 5:在 IAM Identity Center 中配置 KMS 密钥
重要
在执行此步骤之前:
-
验证您的 Amazon 托管应用程序是否与客户自主管理型 KMS 密钥兼容。有关兼容应用程序的列表,请参阅可与 IAM Identity Center 一起使用的 Amazon 托管应用程序。如果您有不兼容的应用程序,请勿继续。
-
配置使用 KMS 密钥所需的必要权限。如果没有适当的权限,此步骤可能会失败或中断 IAM Identity Center 管理、Amazon 托管应用程序的使用以及其他需要 KMS 密钥权限的使用案例。有关更多信息,请参阅 步骤 1:确定组织的使用案例。
-
确保对于使用 IAM 角色调用 IAM Identity Center 服务 API 的 Amazon 托管应用程序和客户自主管理型应用程序,其权限也允许通过 IAM Identity Center 服务 API 使用 KMS 密钥。某些 Amazon 托管应用程序要求您配置权限(例如服务角色)才能使用这些 API。请参阅每个已部署的 Amazon 托管应用程序的用户指南,以确认是否需要添加特定的 KMS 密钥权限。
在启用新的 IAM Identity Center 组织实例时指定 KMS 密钥
在启用新的 IAM Identity Center 组织实例时,您可以在设置过程中指定客户自主管理型 KMS 密钥。这可确保实例从一开始就使用您的密钥进行静态加密。开始之前,请参阅 客户自主管理型 KMS 密钥和高级 KMS 密钥策略的注意事项。
-
在启用 IAM Identity Center 页面上,展开静态加密部分。
-
选择管理加密。
-
选择客户自主管理型密钥。
-
对于 KMS 密钥,请执行以下操作之一:
-
选择从您的 KMS 密钥中选择,然后从下拉列表中选择您创建的密钥。
-
选择输入 KMS 密钥 ARN,然后输入密钥的完整 ARN。
-
-
选择保存。
-
选择启用,以完成设置。
有关更多信息,请参阅启用 IAM Identity Center。
更改现有 IAM Identity Center 组织实例的密钥配置
您可以随时将客户自主管理型 KMS 密钥更改为另一个密钥,或切换到 Amazon 拥有密钥。
客户自主管理型密钥注意事项
-
更新用于 IAM Identity Center 操作的 KMS 密钥配置不会影响 IAM Identity Center 中的活动用户会话。在此过程中,您可以继续使用 Amazon 访问门户、IAM Identity Center 控制台和 IAM Identity Center 服务 API。
-
当切换到新的 KMS 密钥时,IAM Identity Center 会验证其是否可以成功使用该密钥进行加密和解密。如果您在设置密钥策略或 IAM 策略时出错,控制台将显示说明性错误消息,并且将继续使用先前的 KMS 密钥。
-
默认的年度 KMS 密钥轮换将自动进行。您可以参阅《Amazon KMS 开发人员指南》以获取有关密钥轮换、监控 Amazon KMS 密钥和控制密钥删除访问权限等主题的信息。
重要
如果您的 IAM Identity Center 实例正在使用的客户自主管理型 KMS 密钥被删除、禁用或因不正确的 KMS 密钥策略而无法访问,您的员工用户和 IAM Identity Center 管理员将无法使用 IAM Identity Center。访问丢失可能是暂时的(可以更正密钥策略)或永久的(已删除的密钥无法恢复),具体取决于情况。我们建议您限制访问关键操作,例如删除或禁用 KMS 密钥。此外,我们建议您的组织设置 Amazon 紧急访问过程,以确保在 IAM Identity Center 不可访问的罕见情况下,您的特权用户可以访问 Amazon。
查找所需的标识符
在为客户自主管理型 KMS 密钥配置权限时,您需要特定的 Amazon 资源标识符来完成密钥策略和 IAM 策略语句模板。在 KMS 密钥策略语句中插入所需的标识符(例如,组织 ID)和 IAM 主体名称。
以下是在 Amazon 管理控制台中定位这些标识符的指南。
IAM Identity Center Amazon 资源名称(ARN)和 Identity Store ARN
IAM Identity Center 实例是一个 Amazon 资源,拥有自己唯一的 ARN,例如 arn:aws:sso:::instance/ssoins-1234567890abcdef。ARN 遵循服务授权参考中 IAM Identity Center 资源类型部分记录的模式。
每个 IAM Identity Center 实例都有一个关联的 Identity Store,用于存储用户和组身份。Identity Store 有一个称为 Identity Store ID 的唯一标识符(例如,d-123456789a)。ARN 遵循服务授权参考中 Identity Store 资源类型部分记录的模式。
您可以在 IAM Identity Center 的“设置”页面上找到 ARN 和 Identity Store ID 值。Identity Store ID 位于“身份源”选项卡中。
Amazon Organizations ID
如果要在密钥策略中指定组织 ID(例如,o-exampleorg1),可以在 IAM Identity Center 和 Organizations 控制台的“设置”页面找到其值。ARN 遵循服务授权参考中 Organizations 资源类型部分记录的模式。
KMS 密钥 ARN
您可以在 Amazon KMS 控制台中找到 KMS 密钥的 ARN。在左侧选择“客户自主管理型密钥”,单击要查找 ARN 的密钥,您将在“常规配置”部分看到它。ARN 遵循服务授权参考中 Amazon KMS 资源类型部分记录的模式。
有关 Amazon KMS 中的密钥策略和排查 Amazon KMS 权限问题的更多信息,请参阅《Amazon Key Management Service 开发人员指南》。有关 IAM 策略及其 JSON 表示的更多信息,请参阅 IAM 用户指南。