本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
基準 KMS 金鑰和 IAM 政策陳述式
此處提供的基準 KMS 金鑰和身分型政策是常見需求的基礎。我們也建議您檢閱 進階 KMS 金鑰政策陳述式以提供更精細的存取控制,例如確保 KMS 金鑰只能由特定 IAM Identity Center 執行個體或 AWS 受管應用程式存取。在使用進階 KMS 金鑰政策陳述式之前,請檢閱 選擇基準與進階 KMS 金鑰政策陳述式的考量。
以下各節提供每個使用案例的基準政策陳述式。複製符合您使用案例的 KMS 金鑰政策陳述式,然後返回 步驟 2:準備 KMS 金鑰政策陳述式。
使用 IAM Identity Center 的基準 KMS 金鑰政策陳述式 (必要)
在 中使用下列 KMS 金鑰政策陳述式範本步驟 2:準備 KMS 金鑰政策陳述式,以允許 IAM Identity Center、其相關聯的 Identity Store 和 IAM Identity Center 管理員使用 KMS 金鑰。
-
在管理員政策陳述式的主體元素中,指定 IAM Identity Center 管理帳戶 AWS 的帳戶主體,這是 AWS 組織管理帳戶和委派管理帳戶,格式為 "arn:aws:iam::111122223333:root"。
-
在 PrincipalArn 元素中,將範例 ARNs 取代為 IAM Identity Center 管理員的 IAM 角色。
您可以指定下列其中一項:
-
特定 IAM 角色 ARN:
"arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/ap-southeast-2/AWSReservedSSO_permsetname_12345678" -
萬用字元模式 (建議):
"arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/ap-southeast-2/AWSReservedSSO_permsetname_*"
如果刪除並重新建立許可集,使用萬用字元 (
*) 可防止存取遺失,因為 Identity Center 會為重新建立的許可集產生新的唯一識別符。如需實作範例,請參閱 自訂信任政策範例。 -
-
在 SourceAccount 元素中,指定 IAM Identity Center 帳戶 ID。
Identity Store 有自己的服務主體
identitystore.amazonaws.com,必須允許其使用 KMS 金鑰。這些政策陳述式允許特定 AWS 帳戶中的 IAM Identity Center 執行個體使用 KMS 金鑰。若要限制對特定 IAM Identity Center 執行個體的存取,請參閱 進階 KMS 金鑰政策陳述式。每個 AWS 帳戶只能有一個 IAM Identity Center 執行個體。
KMS 金鑰政策陳述式
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_AdminPermissionSet_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdminSet_*" ] }, "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_AdminPermissionSet_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdminSet_*" ] }, "StringLike": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*", "kms:ViaService": "identitystore.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterAdminToDescribeTheKMSKey", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_AdminPermissionSet_*", "arn:aws:iam::444455556666:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_DelegatedAdminSet_*" ] } } }, { "Sid": "AllowIAMIdentityCenterToUseTheKMSKey", "Effect": "Allow", "Principal": { "Service": "sso.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }, { "Sid": "AllowIAMIdentityStoreToUseTheKMSKey", "Effect": "Allow", "Principal": { "Service": "identitystore.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }, { "Sid": "AllowIAMIdentityCenterAndIdentityStoreToDescribeKMSKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": "kms:DescribeKey", "Resource": "*" } ] }
在 中使用下列 IAM 政策陳述式範本步驟 4:設定跨帳戶使用 KMS 金鑰的 IAM 政策,以允許 IAM Identity Center 管理員使用 KMS 金鑰。
-
將
Resource元素中的範例金鑰 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明,請參閱 尋找所需的識別符。 -
這些 IAM 政策陳述式會將 KMS 金鑰存取權授予 IAM 主體,但不會限制哪些 AWS 服務可以提出請求。KMS 金鑰政策通常會提供這些服務限制。不過,您可以將加密內容新增至此 IAM 政策,以限制特定 Identity Center 執行個體的用量。如需詳細資訊,請參閱 進階 KMS 金鑰政策陳述式。
IAM Identity Center 委派管理員所需的 IAM 政策陳述式
{ "Version": "2012-10-17", "Statement": [{ "Sid": "IAMPolicyToAllowIAMIdentityCenterAdminToUseKMSkey", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Sid": "IAMPolicyToAllowIAMIdentityCenterAdminToListKeyAliases", "Effect": "Allow", "Action": "kms:ListAliases", "Resource": "*" } ] }
使用 AWS 受管應用程式的基準 KMS 金鑰和 IAM 政策陳述式
注意
某些 AWS 受管應用程式無法與以客戶受管 KMS 金鑰設定的 IAM Identity Center 搭配使用。如需詳細資訊,請參閱AWS 使用 IAM Identity Center 的受管應用程式。
在 中使用下列 KMS 金鑰政策陳述式範本步驟 2:準備 KMS 金鑰政策陳述式,以允許 AWS 受管應用程式及其管理員使用 KMS 金鑰。
在 PrincipalOrgID 和 SourceOrgId 條件中插入您的 AWS Organizations ID。如需尋找參考識別符值的說明,請參閱 尋找所需的識別符。
這些政策陳述式允許組織中的任何 AWS 受管應用程式和任何 IAM 主體 (應用程式管理員) AWS 使用 kms:Decrypt 使用 IAM Identity Center 和 Identity Store。若要將這些政策陳述式限制為特定 AWS 受管應用程式、帳戶或 IAM Identity Center 執行個體,請參閱 進階 KMS 金鑰政策陳述式。
您可以將 取代
*為特定 IAM 主體,以限制特定應用程式管理員的存取。若要在重新建立許可集時防止 IAM 角色名稱變更,請使用 中的 方法自訂信任政策範例。如需詳細資訊,請參閱選擇基準與進階 KMS 金鑰政策陳述式的考量。
KMS 金鑰政策陳述式
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-a1b2c3d4e5" }, "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "*" } } }, { "Sid": "AllowAppAdminsInTheSameOrganizationToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-a1b2c3d4e5" }, "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } }, { "Sid": "AllowManagedAppsToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "sso.*.amazonaws.com", "kms:EncryptionContext:aws:sso:instance-arn": "*" }, "Bool": { "aws:PrincipalIsAWSService": "true" }, "StringEquals": { "aws:SourceOrgID": "o-a1b2c3d4e5" } } }, { "Sid": "AllowManagedAppsToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" }, "Bool": { "aws:PrincipalIsAWSService": "true" }, "StringEquals": { "aws:SourceOrgID": "o-a1b2c3d4e5" } } } ] }
在 中使用下列 IAM 政策陳述式範本步驟 4:設定跨帳戶使用 KMS 金鑰的 IAM 政策,以允許 AWS 受管應用程式的管理員使用成員帳戶中的 KMS 金鑰。
將資源元素中的範例 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明,請參閱 尋找所需的識別符。
有些 AWS 受管應用程式會要求您設定 IAM Identity Center 服務 APIs許可。在 IAM Identity Center 中設定客戶受管金鑰之前,請確認這些許可也允許使用 KMS 金鑰。如需特定 KMS 金鑰許可要求,請參閱您已部署之每個 AWS 受管應用程式的文件。
AWS 受管應用程式管理員所需的 IAM 政策陳述式:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowIAMIdentityCenterAdminToUseTheKMSKeyViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] } } }] }
使用 的基準 KMS 金鑰陳述式 AWS Control Tower
在 中使用下列 KMS 金鑰陳述式範本步驟 2:準備 KMS 金鑰政策陳述式,以允許 AWS Control Tower 管理員使用 KMS 金鑰。
在主體元素中,指定用於存取 IAM Identity Center 服務 APIs IAM 主體。如需 IAM 主體的詳細資訊,請參閱《IAM 使用者指南》中的指定主體。
這些政策陳述式允許 AWS Control Tower 管理員透過任何 IAM Identity Center 執行個體使用 KMS 金鑰。不過, AWS Control Tower 會限制存取相同組織中 IAM Identity Center AWS 的組織執行個體。由於此限制,無法進一步將 KMS 金鑰限制為特定 IAM Identity Center 執行個體,如 中所述進階 KMS 金鑰政策陳述式。
若要在重新建立許可集時協助防止 IAM 角色名稱變更,請使用 中所述的方法自訂信任政策範例。
KMS 金鑰政策聲明:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowControlTowerAdminRoleToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/AWSControlTowerExecution" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowControlTowerAdminRoleToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/AWSControlTowerExecution" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }
AWS Control Tower 不支援委派的管理,因此您不需要為其管理員設定 IAM 政策。
將 IAM Identity Center 用於 Amazon Elastic Compute Cloud Windows 執行個體的基準 KMS 金鑰和 IAM 政策陳述式
在 中使用下列 KMS 金鑰政策陳述式範本步驟 2:準備 KMS 金鑰政策陳述式,以允許 Amazon EC2 Windows 執行個體的單一登入 (SSO) 使用者跨帳戶使用 KMS 金鑰。
在主體欄位中指定用於存取 IAM Identity Center 的 IAM 主體。如需 IAM 主體的詳細資訊,請參閱《IAM 使用者指南》中的指定主體。
此政策陳述式允許任何 IAM Identity Center 執行個體使用 KMS 金鑰。若要限制對特定 IAM Identity Center 執行個體的存取,請參閱 進階 KMS 金鑰政策陳述式。
為了協助在重新建立許可集時防止 IAM 角色名稱變更,請使用自訂信任政策範例中所述的方法。
KMS 金鑰政策陳述式
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIAMIdentityCenterPermissionSetRoleToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_MyPermissionSet_1a2b3c4d5e6f7g8h" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowIAMIdentityCenterPermissionSetRoleToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_MyPermissionSet_1a2b3c4d5e6f7g8h" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }
在 中使用下列 IAM 政策陳述式範本步驟 4:設定跨帳戶使用 KMS 金鑰的 IAM 政策,以允許 SSO 到 EC2 Windows 執行個體使用 KMS 金鑰。
將 IAM 政策陳述式連接至您用來允許 SSO 存取 Amazon EC2 Windows 執行個體的 IAM Identity Center 中現有的許可集。如需 IAM 政策範例,請參閱 AWS Systems Manager 使用者指南中的遠端桌面通訊協定連線。
將資源元素中的範例 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明,請參閱 尋找所需的識別符。
許可集 IAM 政策:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "IAMPolicyToAllowKMSKeyUseViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] } } }] }
搭配 IAM Identity Center 使用自訂工作流程的基準 KMS 金鑰和 IAM 政策陳述式
在 中使用下列 KMS 金鑰政策陳述式範本步驟 2:準備 KMS 金鑰政策陳述式,以允許 AWS Organizations 管理帳戶或委派管理帳戶中的自訂工作流程使用 KMS 金鑰。
在主體元素中,指定用於存取 IAM Identity Center 服務 APIs IAM 主體。如需 IAM 主體的詳細資訊,請參閱《IAM 使用者指南》中的指定主體。
這些政策陳述式可讓您的工作流程透過任何 IAM Identity Center 執行個體使用 KMS 金鑰。若要限制對特定 IAM Identity Center 執行個體的存取,請參閱 進階 KMS 金鑰政策陳述式。
若要在重新建立許可集時協助防止 IAM 角色名稱變更,請使用 中所述的方法自訂信任政策範例。
KMS 金鑰政策聲明:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityCenter", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyCustomWorkflowRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:sso:instance-arn": "*", "kms:ViaService": "sso.*.amazonaws.com" } } }, { "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityStore", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyCustomWorkflowRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "identitystore.*.amazonaws.com", "kms:EncryptionContext:aws:identitystore:identitystore-arn": "*" } } } ] }
在 中使用下列 IAM 政策陳述式範本步驟 4:設定跨帳戶使用 KMS 金鑰的 IAM 政策,以允許與自訂工作流程相關聯的 IAM 主體跨帳戶使用 KMS 金鑰。將 IAM 政策陳述式新增至 IAM 主體。
將資源元素中的範例 ARN 取代為您實際的 KMS 金鑰 ARN。如需尋找參考識別符值的說明,請參閱 尋找所需的識別符。
IAM 政策陳述式 (僅適用於跨帳戶使用):
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowCustomWorkflowToUseTheKMSKeyViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] } } }] }