我想将 AWS Key Management Service (AWS KMS) 密钥访问权限仅授予属于我的 AWS Organization 的委托人。
简短描述
aws:PrincipalOrgID 全局条件密钥可以与 AWS KMS 的基于资源的策略中的 Principal 元素结合使用。您可以在 Condition 元素中指定组织 ID,而不是列出组织中的所有 AWS 账户 ID。
解决方法
创建 AWS KMS 密钥策略,允许 AWS 组织中的所有账户使用 AWS 全局条件上下文密钥 aws:PrincipalOrgID 执行 AWS KMS 操作。
**重要提示:**最佳实践是使用 AWS Identity and Access Management (IAM) 策略授予最低权限。
在语句的条件元素中指定您的 AWS Organization ID,以确保只有组织中账户的委托人才能访问 AWS KMS 密钥。要获取组织 ID,请按照以下步骤操作:
- 打开 AWS Organizations 控制台。
- 选择设置。
- 在组织详细信息中,复制组织 ID。
以下 AWS KMS 密钥策略声明允许属于 AWS Organization 且 ID 为 o-xxxxxxxxxxx 的任何 AWS 账户的身份使用 KMS 密钥:
{
"Sid": "Allow use of the KMS key for organization",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"kms:Decrypt",
"kms:DescribeKey",
"kms:Encrypt",
"kms:ReEncrypt*",
"kms:GetKeyPolicy"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "o-xxxxxxxxxxx"
}
}
}
**注意:**AWS: PrincipalOrgID 全局条件上下文密钥不能用于限制对 AWS 服务委托人的访问。调用 API 调用的 AWS 服务来自不属于 AWS Organization 的内部 AWS 账户。
相关信息
如何开始使用 AWS Organizations?
如何从 AWS Organizations 中的组织整合账单中删除成员账户?