

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 기준 KMS 키 정책
<a name="baseline-KMS-key-policy"></a>

다음 KMS 키 정책은 가장 일반적인 배포 시나리오를 다룹니다. 위임된 관리자가 있는 IAM Identity Center 인스턴스와 Amazon EC2 인스턴스에 대한 AWS Control Tower SSO 및 사용자 지정 워크플로를 포함한 AWS 관리형 애플리케이션. IAM Identity Center용 고객 관리형 KMS 키를 생성할 때이 정책을 시작점으로 사용합니다. 키를 특정 IAM Identity Center 인스턴스 또는 애플리케이션으로 제한하는 등 보다 세분화된 액세스 제어가 필요한 경우 섹션을 참조하세요[고급 KMS 키 정책 설명](advanced-kms-policy.md). 다중 리전 키를 사용하는 경우 일관된 권한 부여를 보장하기 위해 모든 복제본에서 동일한 정책을 사용해야 합니다.

이 정책을 사용하려면 다음 자리 표시자 값을 사용자의 값으로 바꿉니다.
+ `{{111122223333}}` - IAM Identity Center 인스턴스( AWS Organizations 관리 AWS 계정)의 계정 ID입니다.
+ `{{444455556666}}` - 위임된 관리 AWS 계정의 계정 ID입니다. 위임된 관리를 사용하지 않는 경우이 보안 주체를 제거합니다.

 AWS IAM Identity Center에서는 KMS 키가 서비스와 동일한 AWS 계정에 있어야 하므로 다음 문은 리터럴 값 대신 `${aws:ResourceOrgID}` 및 `${aws:ResourceAccount}` 변수를 사용합니다. 원하는 경우 이러한 변수를 AWS 조직 ID 및 AWS 계정 ID로 바꿀 수 있습니다.

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowIdentityCenterAdminAccounts",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::{{111122223333}}:root",
          "arn:aws:iam::{{444455556666}}:root"
        ]
      },
      "Action": "kms:*",
      "Resource": "*"
    },
    {
      "Sid": "AllowIdentityCenterAndIdentityStoreToDescribeKey",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "identitystore.amazonaws.com",
          "sso.amazonaws.com"
        ]
      },
      "Action": "kms:DescribeKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "${aws:ResourceAccount}"
        }
      }
    },
    {
      "Sid": "AllowIdentityCenterAndIdentityStoreToUseKey",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "identitystore.amazonaws.com",
          "sso.amazonaws.com"
        ]
      },
      "Action": [
        "kms:Decrypt",
        "kms:ReEncryptTo",
        "kms:ReEncryptFrom",
        "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "${aws:ResourceAccount}"
        },
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": [
            "aws:sso:instance-arn",
            "aws:identitystore:identitystore-arn"
          ]
        }
      }
    },
    {
      "Sid": "AllowOrgPrincipalsViaIdentityCenterAndIdentityStore",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalOrgID": "${aws:ResourceOrgID}"
        },
        "StringLike": {
          "kms:ViaService": [
            "sso.*.amazonaws.com",
            "identitystore.*.amazonaws.com"
          ]
        },
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": [
            "aws:sso:instance-arn",
            "aws:identitystore:identitystore-arn"
          ]
        }
      }
    },
    {
      "Sid": "AllowManagedApps",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        },
        "StringEquals": {
          "aws:SourceOrgID": "${aws:ResourceOrgID}"
        },
        "StringLike": {
          "kms:ViaService": [
            "identitystore.*.amazonaws.com",
            "sso.*.amazonaws.com"
          ]
        },
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": [
            "aws:sso:instance-arn",
            "aws:identitystore:identitystore-arn"
          ]
        }
      }
    }
  ]
}
```

이 정책에는 5개의 문이 포함되어 있습니다. 다음 표에서는 각 문이 수행하는 작업을 설명합니다.


| 문 | 용도 | 
| --- | --- | 
| AllowIdentityCenterAdminAccounts | IAM Identity Center 관리 계정 및 위임된 관리 계정에 전체 KMS 키 권한을 부여합니다. 여기에는 키 정책 수정 및 키 삭제 예약과 같은 키 관리 작업이 포함됩니다. 이러한 계정의 관리자는 자격 증명 기반 정책에 필요한 권한이 있는 경우 키를 관리하고 사용할 수 있습니다. | 
| AllowIdentityCenterAndIdentityStoreToDescribeKey | IAM Identity Center 및 Identity Store 서비스 보안 주체가 키 메타데이터를 검색할 수 있도록 허용합니다. 암호화 또는 복호화를 수행하지 않고 키를 검증하는 서비스 작업에 필요합니다. 이 aws:SourceAccount 조건은 IAM Identity Center 인스턴스만 KMS 키를 사용할 수 있도록 하는 데 도움이 됩니다. | 
| AllowIdentityCenterAndIdentityStoreToUseKey | IAM Identity Center 및 Identity Store 서비스 보안 주체가 데이터 암호화, 복호화 및 재암호화와 같은 암호화 작업에 키를 사용할 수 있도록 허용합니다. aws:SourceAccount 조건은 IAM Identity Center 인스턴스만 KMS 키를 사용할 수 있도록 하는 데 도움이 됩니다. | 
| AllowOrgPrincipalsViaIdentityCenterAndIdentityStore |  AWS 조직의 IAM 보안 주체가 IAM Identity Center 및 Identity Store 서비스를 통해 데이터를 복호화할 수 있도록 허용합니다. 여기에는 순방향 액세스 세션(FAS)을 사용하여 IAM Identity Center 통합 AWS 서비스와 상호 작용하는 애플리케이션 관리자가 포함됩니다. | 
| AllowManagedApps |  AWS 관리형 애플리케이션이 IAM Identity Center 및 Identity Store를 통해 KMS 키로 보호되는 데이터를 복호화하도록 허용합니다. | 

에서 다음 IAM 정책 설명을 사용하여 위임된 관리자가 IAM Identity Center 서비스 APIs를 통해 KMS 키를 사용하도록 [4단계: KMS 키의 교차 계정 사용을 위한 IAM 정책 구성](identity-center-customer-managed-keys.md#configure-iam-policies-kms-key) 허용합니다. 예제 키 ARN을 실제 KMS 키 ARN으로 바꿉니다. 예제의 와일드카드 리전은 다중 리전 KMS 키의 모든 복제본을 수용합니다.

Amazon EC2 인스턴스에 대한 SSO 또는 AWS 관리형 애플리케이션 관리와 같은 IAM Identity Center 관리 이외의 교차 계정 사용 사례의 경우 범위를 로`AllowCrossAccountKMSKeyUse`만 줄이고 `AllowListKMSKeyAliases` 문을 `kms:Decrypt` 제거합니다.

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowCrossAccountKMSKeyUse",
      "Effect": "Allow",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:DescribeKey"
      ],
      "Resource": [
        "arn:aws:kms:{{*}}:{{111122223333}}:key/{{mrk-1234abcd-12ab-34cd-56ef-1234567890ab}}"
      ]
    },
    {
      "Sid": "AllowListKMSKeyAliases",
      "Effect": "Allow",
      "Action": "kms:ListAliases",
      "Resource": "*"
    }
  ]
}
```