

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

# 고급 KMS 키 정책 설명
<a name="advanced-kms-policy"></a>

 고급 KMS 키 정책 설명을 사용하여 고객 관리형 KMS 키에 대한 보다 세분화된 액세스 제어를 구현합니다. 이러한 정책은 암호화 컨텍스트 조건 및 서비스별 제한을 추가하여 [기준 KMS 키 및 IAM 정책 설명](baseline-KMS-key-policy.md) 섹션을 기반으로 합니다. 고급 KMS 키 정책 설명을 사용할지 여부를 결정하기 전에 관련 고려 사항을 검토해야 합니다.

## 암호화 컨텍스트를 사용하여 액세스 제한
<a name="using-encryption-context-to-restrict-access"></a>

 키 정책 설명에 암호화 컨텍스트 조건을 지정하여 KMS 키 사용을 특정 IAM Identity Center 인스턴스로 제한할 수 있습니다. 기준 키 정책 설명에는 일반 값과 함께 이 컨텍스트가 이미 포함되어 있습니다. 키가 의도한 인스턴스에서만 작동하도록 “\$1” 와일드카드를 특정 Identity Center 인스턴스 ARN 및 Identity Store ARN으로 바꿉니다. KMS 키의 교차 계정 사용을 위해 구성된 IAM 정책에 동일한 암호화 컨텍스트 조건을 추가할 수도 있습니다.

자격 증명 센터

```
"StringEquals": {
    "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
}
```

아이덴티티 스토어

```
"StringEquals": {
    "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
}
```

 이러한 식별자를 찾는 데 도움이 필요한 경우 [필요한 식별자를 찾을 수 있는 위치](identity-center-customer-managed-keys.md#find-the-required-identifiers) 섹션을 참조하세요.

**참고**  
IAM Identity Center의 조직 인스턴스에서만 고객 관리형 KMS 키를 사용할 수 있습니다. 고객 관리형 키는 AWS 조직의 관리 계정에 있어야 합니다. 이렇게 하면 키를 단일 IAM Identity Center 인스턴스와 함께 사용할 수 있습니다. 그러나 암호화 컨텍스트 메커니즘은 단일 인스턴스 사용에 대한 독립적인 기술적 보호 기능을 제공합니다. Identity Center 및 Identity Store 서비스 위탁자를 위한 KMS 키 정책 설명에서 `aws:SourceArn` 조건 키를 사용할 수도 있습니다.

### 암호화 컨텍스트 조건 구현 시 고려 사항
<a name="considerations-for-implementing-encryption-context-conditions"></a>

암호화 컨텍스트 조건을 구현하기 전에 다음 요구 사항을 검토합니다.
+  **DescribeKey 작업.** 암호화 컨텍스트는 IAM Identity Center 관리자가 사용할 수 있는 ‘kms:DescribeKey’ 작업에 적용할 수 없습니다. KMS 키 정책을 구성할 때 IAM Identity Center 인스턴스의 적절한 작동을 보장하기 위해 이 특정 작업에 대한 암호화 컨텍스트를 제외합니다.
+  **새 인스턴스 설정.** 고객 관리형 KMS 키를 사용하여 새 IAM Identity Center 인스턴스를 활성화하는 경우 [고객 관리형 KMS 키 및 고급 KMS 키 정책에 대한 고려 사항](considerations-for-customer-managed-kms-keys-advanced.md) 섹션을 참조하세요.
+  **자격 증명 소스 변경.** 자격 증명 소스를 Active Directory로 변경하거나 Active Directory에서 변경할 때 암호화 컨텍스트에 특별한 주의가 필요합니다. [ID 소스 변경 시 고려 사항](manage-your-identity-source-considerations.md)을(를) 참조하세요.

## 정책 템플릿
<a name="advanced-policy-templates"></a>

 보안 요구 사항에 따라 이러한 고급 정책 템플릿 중에서 선택합니다. 세분화된 액세스 제어와 해당 제어가 도입하는 관리 오버헤드의 균형을 맞춥니다.

여기에서 다루는 주제는 다음과 같습니다.
+  [특정 IAM Identity Center 인스턴스의 읽기 전용 사용에 대한 KMS 정책 설명](#kms-policy-statements-for-read-only-use-of-a-specific-iam-identity-center-instance). 이 섹션에서는 IAM Identity Center에 대한 읽기 전용 액세스에 암호화 컨텍스트를 사용하는 방법을 보여줍니다.
+  [AWS 관리형 애플리케이션 사용을 위한 KMS 키 정책 설명 개선](#refined-kms-key-policy-statements-for-use-of-aws-managed-applications). 이 섹션에서는 애플리케이션 서비스 보안 주체, 애플리케이션 ARN 및 AWS 계정 ID와 같은 암호화 컨텍스트 및 애플리케이션 정보를 사용하여 AWS 관리형 애플리케이션에 대한 KMS 키 정책을 구체화하는 방법을 보여줍니다.

## 특정 IAM Identity Center 인스턴스의 읽기 전용 사용에 대한 KMS 정책 설명
<a name="kms-policy-statements-for-read-only-use-of-a-specific-iam-identity-center-instance"></a>

 이 정책은 IAM Identity Center에 대한 읽기 액세스 권한만 필요한 [보안 감사자](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/SecurityAudit.html) 및 기타 직원이 KMS 키를 사용하도록 허용합니다.

이 정책을 사용하려면 다음을 수행합니다.

1. 예제 읽기 전용 관리자 IAM 위탁자를 실제 관리자 IAM 위탁자로 바꾸기

1. 예제 IAM Identity Center 인스턴스 ARN을 실제 인스턴스 ARN으로 바꾸기

1. 예제 Identity Store ARN을 실제 Identity Store ARN으로 바꾸기

1. [위임된 관리를 사용하는 경우](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) [4단계: KMS 키의 교차 계정 사용을 위한 IAM 정책 구성](identity-center-customer-managed-keys.md#configure-iam-policies-kms-key) 섹션을 참조하세요.

이러한 식별자의 값을 찾는 데 도움이 필요한 경우 [필요한 식별자를 찾을 수 있는 위치](identity-center-customer-managed-keys.md#find-the-required-identifiers) 섹션을 참조하세요.

템플릿을 값으로 업데이트한 후 [2단계: KMS 키 정책 설명 준비](identity-center-customer-managed-keys.md#choose-kms-key-policy-statements) 섹션으로 돌아가 필요에 따라 추가 KMS 키 정책 설명을 준비합니다.

kms:Decrypt 작업만으로는 읽기 전용 작업에 대한 액세스를 제한하지 않습니다. IAM 정책은 IAM Identity Center 서비스 API에 대한 읽기 전용 액세스를 적용해야 합니다.

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowReadOnlyAccessToIdentityCenterAPI",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyAdminRole"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
        }
      }
    },
    {
      "Sid": "AllowReadOnlyAccessToIdentityStoreAPI",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyAdminRole"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
        }
      }
    }
  ]
}
```

## AWS 관리형 애플리케이션 사용을 위한 KMS 키 정책 설명 개선
<a name="refined-kms-key-policy-statements-for-use-of-aws-managed-applications"></a>

 이러한 정책 템플릿은 KMS 키를 사용할 수 있는 AWS 관리형 애플리케이션을 보다 세밀하게 제어할 수 있습니다.

**참고**  
 일부 AWS 관리형 애플리케이션은 고객 관리형 KMS 키로 구성된 IAM Identity Center와 함께 사용할 수 없습니다. [IAM Identity Center와 함께 사용할 수 있는AWS 관리형 애플리케이션](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-that-work-with-identity-center.html)을 참조하세요.

는 동일한 AWS 조직의 모든 계정에서 AWS 관리형 애플리케이션이 KMS 키를 사용하도록 [AWS 관리형 애플리케이션 사용을 위한 기준 KMS 키 및 IAM 정책 설명](baseline-KMS-key-policy.md#baseline-kms-key-policy-statements-for-use-of-aws-managed-applications) 허용합니다. 다음과 같이 세분화된 정책을 사용하여 액세스를 제한합니다.
+ 애플리케이션 서비스 위탁자
+ 애플리케이션 인스턴스 ARN
+ AWS 계정 IDs
+ 특정 IAM Identity Center 인스턴스의 암호화 컨텍스트

**참고**  
서비스 보안 주체는 AWS 서비스의 고유 식별자로, 일반적으로 servicename.amazonaws.com 형식입니다(예: Amazon EMR의 경우 elasticmapreduce.amazonaws.com).

### 계정으로 제한
<a name="restrict-by-account"></a>

이 KMS 키 정책 설명 템플릿을 사용하면 특정 AWS 계정의 AWS 관리형 애플리케이션이 특정 IAM Identity Center 인스턴스를 사용하여 KMS 키를 사용할 수 있습니다.

이 정책을 사용하려면 다음을 수행합니다.

1. 예제 서비스 위탁자를 실제 애플리케이션 서비스 위탁자로 바꾸기

1. 예제 계정 ID를 AWS 관리형 애플리케이션이 배포된 실제 계정 ID로 바꾸기

1. 예제 Identity Store ARN을 실제 Identity Store ARN으로 바꾸기

1. 예제 IAM Identity Center 인스턴스 ARN을 실제 인스턴스 ARN으로 바꾸기

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowServiceInSpecificAccountsToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": [
            "111122223333",
            "444455556666"
          ]
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    },
    {
      "Sid": "AllowServiceInSpecificAccountsToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": [
            "111122223333",
            "444455556666"
          ]
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

### 애플리케이션 인스턴스로 제한
<a name="restrict-by-application-instance"></a>

이 KMS 키 정책 설명 템플릿을 사용하면 특정 AWS 관리형 애플리케이션 인스턴스가 특정 IAM Identity Center 인스턴스를 사용하여 KMS 키를 사용할 수 있습니다.

이 정책을 사용하려면 다음을 수행합니다.

1. 예제 서비스 위탁자를 실제 애플리케이션 서비스 위탁자로 바꾸기

1. 예제 애플리케이션 ARN을 실제 애플리케이션 인스턴스 ARN으로 바꾸기

1. 예제 Identity Store ARN을 실제 Identity Store ARN으로 바꾸기

1. 예제 IAM Identity Center 인스턴스 ARN을 실제 인스턴스 ARN으로 바꾸기

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "AllowSpecificAppInstanceToUseTheKMSKeyViaIdentityCenter",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceARN": "arn:aws:myapp:us-east-1:111122223333:application/my-application"
        },
        "StringLike": {
          "kms:ViaService": "sso.*.amazonaws.com",
          "kms:EncryptionContext:aws:sso:instance-arn": "arn:aws:sso:::instance/ssoins-1234567890abcdef"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    },
    {
      "Sid": "AllowSpecificAppInstanceToUseTheKMSKeyViaIdentityStore",
      "Effect": "Allow",
      "Principal": {
        "Service": "myapp.amazonaws.com"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceARN": "arn:aws:myapp:us-east-1:111122223333:application/my-application"
        },
        "StringLike": {
          "kms:ViaService": "identitystore.*.amazonaws.com",
          "kms:EncryptionContext:aws:identitystore:identitystore-arn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

# 고객 관리형 KMS 키 및 고급 KMS 키 정책에 대한 고려 사항
<a name="considerations-for-customer-managed-kms-keys-advanced"></a>

IAM Identity Center를 사용하여 고객 관리형 KMS 키를 구현할 때는 암호화 구성의 설정, 보안 및 지속적인 유지 관리에 영향을 미치는 해당 요소를 고려합니다.

## 기준 및 고급 KMS 키 정책 설명 선택 시 고려 사항
<a name="kms-policy-considerations-advanced-vs-baseline"></a>

[고급 KMS 키 정책 설명](advanced-kms-policy.md) 섹션을 통해 KMS 키 권한을 보다 구체적으로 지정할지 여부를 결정할 때는 조직의 관리 오버헤드와 보안 요구 사항을 고려합니다. 보다 구체적인 정책 설명은 누가 어떤 목적으로 키를 사용할 수 있는지에 대한 보다 세분화된 제어를 제공합니다. 그러나 IAM Identity Center 구성이 발전함에 따라 지속적인 유지 관리가 필요합니다. 예를 들어 KMS 키 사용을 특정 AWS 관리형 애플리케이션 배포로 제한하는 경우 조직에서 애플리케이션을 배포하거나 배포 취소하려는 때마다 키 정책을 업데이트해야 합니다. 덜 제한적인 정책은 관리 부담을 줄이지만 보안 요구 사항에 필요한 권한보다 더 광범위한 권한을 부여할 수 있습니다.

## 고객 관리형 KMS 키를 사용하여 새 IAM Identity Center 인스턴스를 활성화하기 위한 고려 사항
<a name="considerations-for-enabling-new-instance"></a>

 여기에 있는 고려 사항은 [고급 KMS 키 정책 설명](advanced-kms-policy.md)에 설명된 암호화 컨텍스트를 통해 KMS 키 사용을 특정 IAM Identity Cnter 인스턴스로 제한하는 경우에 적용됩니다.

 고객 관리형 KMS 키로 새 IAM Identity Center 인스턴스를 활성화하면 설정 후까지 IAM Identity Center 및 Identity Store ARN을 사용할 수 없습니다. 다음과 같은 옵션이 있습니다.
+  일반 ARN 패턴을 일시적으로 사용한 다음 인스턴스가 활성화된 후 전체 ARN으로 바꿉니다. 필요에 따라 StringEquals 연산자와 StringLike 연산자 간에 전환해야 합니다.
  +  IAM Identity Center SPN의 경우: ‘arn:\$1\$1Partition\$1:sso:::instance/\$1’.
  +  Identity Store SPN의 경우: ‘arn:\$1\$1Partition\$1:identitystore::\$1\$1Account\$1:identitystore/\$1’.
+  ARN에서 ‘purpose:KEY\$1CONFIGURATION’을 일시적으로 사용합니다. 이는 인스턴스 활성화에만 적용되며 IAM Identity Center 인스턴스가 정상적으로 작동하려면 실제 ARN으로 교체해야 합니다. 이 접근 방식의 장점은 인스턴스가 활성화된 후 이를 대체하는 것을 잊지 않는다는 것입니다.
  +  IAM Identity Center SPN의 경우 ‘arn:\$1\$1Partition\$1:sso::instance/purpose:KEY\$1CONFIGURATION’을 사용합니다.
  +  Identity Store SPN의 경우 ‘arn:\$1\$1Partition\$1:identitystore::\$1\$1Account\$1:identitystore/purpose:KEY\$1CONFIGURATION’을 사용합니다.
**중요**  
 기존 IAM Identity Center 인스턴스에서 이미 사용 중인 KMS 키에는 이 구성을 적용하지 마세요. 정상적인 작업이 중단될 수 있습니다.
+  인스턴스가 활성화된 후까지 KMS 키 정책에서 암호화 컨텍스트 조건을 생략합니다.