AWS KMS의 정책 조건 사용 - AWS Key Management Service

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

AWS KMS의 정책 조건 사용

키 정책에서 조건을 지정하고AWS Identity and Access Management정책 (IAM 정책) 에 대한 액세스를 제어하는AWS KMS있습니다. 이 정책 설명은 조건이 true일 때만 유효합니다. 예를 들어, 특정 날짜 이후에만 정책 설명이 적용되기를 원할 수 있습니다. 또는 API 요청에 특정 값이 있는 경우에만 정책 설명이 액세스를 제어하기를 원할 수 있습니다.

조건을 지정하려면 미리 정의된조건 키Condition를 사용하여 정책 문의IAM 조건 정책 연산자. 일부 조건 키는AWS 에 전체적으로 적용되고 일부는AWS KMS 에만 적용됩니다.

AWS 전역 조건 키

AWSdefines전역 조건 키에 대한 정책 조건 키 집합, 모든AWS액세스 제어를 위해 IAM을 사용하는 서비스 전역 조건 키를 사용할 수 있습니다.AWS KMS주요 정책 및 IAM 정책을 사용할 수 있습니다.

예를 들어, 를 사용할 수 있습니다.aws:PrincipalArn글로벌 조건 키를 사용해 요청의 보안 주체가 조건 키 값에 Amazon 리소스 이름 (ARN) 으로 표시되는 경우에만 고객 마스터 키 (CMK) 에 대한 액세스를 허용할 수 있습니다. 에 대한 지원속성 기반 액세스 제어(ABAC)AWS KMS에서 사용할 수 있습니다.AWS:ResourceTag/tag-key전역 조건 키를 사용하여 특정 태그가 있는 CMK에 대한 액세스를 허용할 수 있습니다.

AWS KMS는 다음을 제외한 모든 AWS 전역 조건 키를 지원합니다.

에 대한 내용은AWS전역 조건 키 (사용 가능한 요청 유형 포함) 에 대한 자세한 내용은AWS전역 조건 컨텍스트 키IAM 사용 설명서. IAM 정책에 전역 조건 키를 사용하는 예시는 단원을 참조하십시오.요청에 대한 액세스 제어태그 키 제어IAM 사용 설명서.

다음 주제에서는 IP 주소 및 VPC 엔드포인트를 기반으로 조건 키를 사용하기 위한 특별한 지침을 제공합니다.

AWS KMS 권한으로 정책에서 IP 주소 조건 사용

AWS KMS를 사용하여 통합 AWS 서비스에서 데이터를 보호할 수 있습니다. 그러나 지정할 때는주의해야합니다IP 주소 조건 연산자또는aws:SourceIp에 대한 액세스를 허용하거나 거부하는 정책 문에 대한 조건 키를 동일한 정책 문에 액세스하기AWS KMS. 예를 들어, 정책AWS: 에 대한 액세스를 거부합니다.AWS소스 IP 기반가 제한합니다.AWS지정된 IP 범위의 요청에 대한 작업을 수행합니다.

다음 시나리오를 고려하십시오.

  1. 에 표시된 것과 같은 정책을 첨부합니다.AWS: 에 대한 액세스를 거부합니다.AWS소스 IP 기반IAM 사용자로 로그인합니다. aws:SourceIp 조건 키의 값을 사용자 회사의 IP 주소 범위로 설정합니다. 이 IAM 사용자에게는 Amazon EBS, Amazon EC2 및 사용을 허용하는 다른 정책이 연결되어 있습니다.AWS KMS.

  2. 사용자가 암호화된 EBS 볼륨을 EC2 인스턴스에 연결하려고 합니다. 사용자가 모든 관련 서비스를 이용할 권한을 가지고 있음에도 인증 오류로 인해 이 작업은 실패합니다.

요청이 있기 때문에 2 단계가 실패AWS KMS볼륨의 암호화된 데이터 키를 해독하려면 Amazon EC2 인프라와 연결된 IP 주소에서 가져옵니다. 요청이 성공하려면 원래 사용자의 IP 주소에서 이루어져야 합니다. 1단계의 정책에서는 지정된 IP 주소 이외의 IP 주소의 모든 요청을 명시적으로 거부하므로 Amazon EC2 EBS 볼륨의 암호화된 데이터 키를 해독할 수 있는 권한을 거부합니다.

또한,aws:sourceIP조건 키는 요청에서 오는 경우 유효하지 않습니다.Amazon VPC 엔드포인트. AWS KMS VPC 엔드포인트를 포함해 VPC 엔드포인트로 요청을 제한하려면 aws:sourceVpce 또는 aws:sourceVpc 조건 키를 사용합니다. 자세한 내용은 단원을 참조하십시오.VPC 엔드포인트 - 엔드포인트 사용 제어Amazon VPC User Guide.

AWS KMS 권한으로 정책에서 VPC 엔드포인트 조건 사용

AWS KMSAmazon Virtual Private Cloud (Amazon VPC) 엔드에 의해 구동되는AWSPrivateLink. 다음을 사용할 수 있습니다.전역 조건 키키 정책 및 IAM 정책을 사용하여AWS KMS리소스는 VPC에서 요청하거나 VPC 엔드포인트를 사용할 때 사용할 수 있습니다. 자세한 내용은 단원을 참조하십시오정책 설명에 VPC 엔드포인트 사용

  • aws:SourceVpc는 지정된 VPC의 요청으로 액세스를 제한합니다.

  • aws:SourceVpce는 지정된 VPC 엔드포인트의 요청으로 액세스를 제한합니다.

이러한 조건 키를 키 정책 설명에 대한 액세스를 허용하거나 거부하는 경우AWS KMSCMK에 대한 액세스를 실수로 거부할 수 있습니다.AWS서비스를 사용하는 경우AWS KMS는 사용자를 대신하여 실행합니다.

IP 주소 조건 키 예제와 같은 상황을 피하도록 주의하십시오. CMK에 대한 요청을 VPC 또는 VPC 엔드포인트로 제한하면AWS KMS와 같은 통합 서비스에서 Amazon S3 또는 Amazon EBS와 같은 서비스가 실패할 수 있습니다. 원본 요청이 궁극적으로 VPC 또는 VPC 엔드포인트에서 시작된 경우에도 이러한 상황이 발생할 수 있습니다.

AWS KMS 조건 키

AWS KMS는 키 정책과 IAM 정책에 사용할 수 있는 사전 정의된 조건 키 집합을 추가 제공합니다. AWS KMS에만 해당되는 특정한 조건 키입니다. 예를 들어, 를 사용할 수 있습니다.kms:EncryptionContext:context-key조건 키를 사용하여 특정암호화 컨텍스트에 대한 액세스를 제어 할 때AWS KMSCMK (고객 마스터 키) 를 대칭으로 매핑합니다.

API 작업 요청에 대한 조건

다수의AWS KMS조건 키는 요청의 파라미터 값을 기반으로 CMK에 대한 액세스를 제어하고AWS KMS작업을 실행합니다. 예를 들어, 를 사용할 수 있습니다.kms:CustomerMasterKeySpec조건 키를 사용하여CreateKey값이 경우에만 작업을 수행할 수 있습니다.CustomerMasterKeySpec의 파라미터CreateKey요청은 다음과 같습니다.RSA_4096.

이 유형의 조건은 파라미터의 기본값을 사용하는 경우와 같이 요청에 파라미터가 나타나지 않는 경우에도 작동합니다. 예를 들어 kms:CustomerMasterKeySpec 조건 키를 사용하여 사용자가 CustomerMasterKeySpec 파라미터 값이 기본값 SYMMETRIC_DEFAULT인 경우에만 CreateKey 작업을 사용하도록 허용할 수 있습니다. 이 조건은 CustomerMasterKeySpec 파라미터 값이 SYMMETRIC_DEFAULT인 요청과 CustomerMasterKeySpec 파라미터가 없는 요청을 허용합니다.

API 작업에 사용되는 CMK에 대한 조건

약간AWS KMS조건 키는 작업에 사용되는 CMK의 속성을 기반으로 작업에 대한 액세스를 제어할 수 있습니다. 예를 들어, 를 사용할 수 있습니다.kms:KeyOrigin조건을 사용하여 보안 주체가GenerateDataKey경우에만 CMK에서OriginCMK의AWS_KMS. 이러한 방식으로 조건 키를 사용할 수 있는지 확인하려면 조건 키의 설명을 참조하십시오.

작업은 특정 CMK에 대해 승인된 작업인 CMK 리소스 작업이어야 합니다. CMK 리소스 작업을 식별하려면 작업 및 리소스 테이블에서, 해당 작업에 대한 Resources 열에서 CMK 값을 찾습니다. 특정 CMK 리소스에 대해 권한이 부여되지 않은 작업과 함께 이 유형의 조건 키를 사용하는 경우 (예:ListKeys이면 조건이 만족될 수 없기 때문에 권한이 효과적이지 않습니다. ListKeys 작업 권한 부여와 관련된 CMK 리소스가 없고 CustomerMasterKeySpec 속성이 없기 때문입니다.

다음 주제는 각 AWS KMS 조건 키를 설명하고, 정책 구문을 보여주는 정책 설명 예제를 포함합니다.

조건 키에 집합 연산자 사용

정책 조건이 요청의 태그 집합과 정책의 태그 집합과 같은 두 값 집합을 비교하는 경우AWS세트를 비교하는 방법. IAM은 두 개의 집합 연산자ForAnyValueForAllValues이를 위해. 집합 연산자 만 사용다중 값 조건 키, 그것은 그들을 필요로한다. 집합 연산자를 사용하지 마십시오.단일 값 조건 키. 항상 그렇듯이 생산 환경에서 사용하기 전에 정책 설명을 테스트하십시오.

조건 키는 단일 값이나 다중 값입니다. 여부를 확인하려면AWS KMS조건 키가 단일 값이나 다중 값인 경우값 유형열 조건 키 설명에.

  • 단일 값조건 키는 권한 부여 컨텍스트 (요청 또는 리소스) 에서 최대 하나의 값을 갖습니다. 예를 들어, 각 API 호출은 하나의 AWS 계정 ,kms:CallerAccount는 단일 값 조건 키입니다. 단일 값 조건 키와 함께 집합 연산자를 사용하지 마십시오.

  • 다중 값조건 키는 권한 부여 컨텍스트 (요청 또는 리소스) 에서 여러 값을 갖습니다. 예를 들어 각 CMK에는 여러 별칭이 있을 수 있으므로KMS:리소스 별칭복수의 값을 가질 수 있습니다. 다중 값 조건 키에는 집합 연산자가 필요합니다.

단일 값 조건 키와 다중값 조건 키의 차이는 정책 조건의 값 수가 아니라 권한 부여 컨텍스트의 값 수에 따라 달라집니다.

주의

단일 값 조건 키와 함께 집합 연산자를 사용하면 지나치게 허용 (또는 지나치게 제한적인) 정책 설명을 만들 수 있습니다. 집합 연산자는 다중 값 조건 키에만 사용합니다.

정책을 만들거나 업데이트하는 경우ForAllValuesKms:EncryptionContext:컨텍스트 키또는aws:RequestTag/tag-key조건 키AWS KMS는 다음 오류 메시지를 반환합니다.

OverlyPermissiveCondition: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified [encryption context or tag] or with an unspecified [encryption context or tag]. To fix, remove ForAllValues.

에 대한 자세한 내용은ForAnyValueForAllValues집합 연산자에 대한 자세한 내용은여러 키 및 값 사용IAM 사용 설명서. 사용 위험에 대한 자세한 내용은ForAllValues집합 연산자를 단일 값 조건으로 사용하는 방법에 대한 자세한 내용은보안 경고 — 단일 값 키가 있는 AllValues에 대해IAM 사용 설명서.

kms:BypassPolicyLockoutSafetyCheck

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:BypassPolicyLockoutSafetyCheck

단일 값

CreateKey

PutKeyPolicy

IAM 정책만 제공

키 정책 및 IAM 정책

kms:BypassPolicyLockoutSafetyCheck조건 키에 대한 액세스를 제어합니다.CreateKeyPutKeyPolicy값을 기준으로 작업을 수행할 수 있습니다.BypassPolicyLockoutSafetyCheck요청에 파라미터를 포함시킵니다.

다음 예제 IAM 정책 설명은 사용자가 정책 잠금 안전 점검을 우회하지 못하도록 합니다.BypassPolicyLockoutSafetyCheck의 파라미터CreateKey요청은 다음과 같습니다.true.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "Bool": { "kms:BypassPolicyLockoutSafetyCheck": true } } } }

뿐만 아니라kms:BypassPolicyLockoutSafetyCheck조건 키를 IAM 정책 또는 키 정책에 지정하기PutKeyPolicy작업을 사용합니다. 키 정책에 들어 있는 다음 예제 정책 설명은 CMK의 정책을 변경할 때 사용자가 정책 잠금 안전 점검을 우회하지 못하도록 합니다.

명시 적Deny을 사용하는 경우 이 정책 설명서는Allow를 사용하여NULL 조건 연산자를 사용하여 요청에 포함되지 않은 경우에만 액세스를 허용할 수 있습니다.BypassPolicyLockoutSafetyCheck파라미터. 이 파라미터를 사용하지 않는 경우 기본값은 false입니다. 이와 같이 강도가 약간 낮은 정책 설명은 극히 드문 경우지만 우회가 필요할 경우 재정의할 수 있습니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "kms:PutKeyPolicy", "Resource": "*", "Condition": { "Null": { "kms:BypassPolicyLockoutSafetyCheck": true } } } }

다음 사항도 참조하세요.

kms:CallerAccount

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:CallerAccount

문자열

단일 값

CMK 리소스 작업

사용자 지정 키 스토어 작업

키 정책 및 IAM 정책

이 조건 키를 사용하여 모든 자격 증명 (IAM 사용자 및 역할) 에 대한 액세스를 허용하거나 거부할 수 있습니다. AWS 계정 . 키 정책에서 Principal 요소를 이용해 정책 설명이 적용될 자격 증명을 지정합니다. 의 구문은 다음과 같습니다.Principal요소는 모든 자격 증명을 지정하는 방법을 제공하지 않습니다. AWS 계정 . 모든 Principal 자격 증명을 지정하는 AWS 요소와 이 조건 키를 결합하여 이러한 효과를 얻을 수 있습니다.

이 기능을 사용하여 모든 항목에 대한 액세스를 제어할 수 있습니다.CMK 리소스 작업, 즉,AWS KMS특정 CMK를 사용하는 작업입니다. CMK 리소스 작업을 식별하려면 작업 및 리소스 테이블에서, 해당 작업에 대한 Resources 열에서 CMK 값을 찾습니다. 또한 관리하는 작업에도 유효합니다.사용자 지정 키 스토어.

예를 들어 다음 키 정책 문은 사용 방법을 보여 줍니다.kms:CallerAccount조건 키를 사용합니다. 이 정책 설명은 키 정책에 있는AWSAmazon EBS용 관리형 CMK에 그것은 결합Principal모두를 지정하는 요소AWSID로 자격 증명을kms:CallerAccount조건 키를 사용하여 모든 자격 증명에 대한 액세스를 효과적으로 허용할 수 있습니다. AWS 계정 11112222222222333 그것은 추가 포함AWS KMS조건 키 (kms:ViaService) 를 사용하여 Amazon EBS를 통해 수신되는 요청만 허용하여 권한을 더욱 제한합니다. 자세한 내용은 kms:ViaService 단원을 참조하십시오.

{ "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS", "Effect": "Allow", "Principal": {"AWS": "*"}, "Condition": { "StringEquals": { "kms:CallerAccount": "111122223333", "kms:ViaService": "ec2.us-west-2.amazonaws.com" } }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" }

kms:CustomerMasterKeySpec

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:CustomerMasterKeySpec

문자열

단일 값

CreateKey

CMK 리소스 작업

IAM 정책

키 정책 및 IAM 정책

kms:CustomerMasterKeySpec 조건 키는 작업에 의해 작성되거나 작업에 사용된 CMK의 CustomerMasterKeySpec 속성 값에 따라 작업에 대한 액세스를 제어합니다.

IAM 정책에서 이 조건 키를 사용하여CreateKey값을 기준으로 작업을 수행할 수 있습니다.CustomerMasterKeySpec의 파라미터CreateKey요청입니다. 예를 들어 이 조건을 사용하여 사용자가 대칭 CMK만 생성하거나 RSA 키가 있는 CMK만 생성하도록 허용할 수 있습니다.

다음 예제 IAM 정책 문은kms:CustomerMasterKeySpec조건 키를 사용하여 보안 주체가 CMK를 생성하도록 허용할 때만CustomerMasterKeySpec에서 이 요청을 실행합니다.RSA_4096.

{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:CustomerMasterKeySpec": "RSA_4096" } } }

뿐만 아니라kms:CustomerMasterKeySpec조건 키를 사용하여 CMK를 사용 또는 관리하는 작업에 대한 액세스를 제어할 수 있습니다.CustomerMasterKeySpec작업에 사용된 CMK의 속성입니다. 작업은 특정 CMK에 대해 승인된 작업인 CMK 리소스 작업이어야 합니다. CMK 리소스 작업을 식별하려면 작업 및 리소스 테이블에서, 해당 작업에 대한 Resources 열에서 CMK 값을 찾습니다.

예를 들어 다음 IAM 정책에서는 보안 주체가 지정된 CMK 리소스 작업을 수행하도록 허용하지만 계정의 대칭 CMK에 대해서만 허용합니다.

{ "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:CustomerMasterKeySpec": "SYMMETRIC_DEFAULT" } } }

다음 사항도 참조하세요.

kms:CustomerMasterKeyUsage

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:CustomerMasterKeyUsage

문자열

단일 값

CreateKey

CMK 리소스 작업

IAM 정책

키 정책 및 IAM 정책

kms:CustomerMasterKeyUsage 조건 키는 작업에 의해 작성되거나 작업에 사용된 CMK의 KeyUsage 속성 값에 따라 작업에 대한 액세스를 제어합니다.

이 조건 키를 사용하여CreateKey값을 기준으로 작업을 수행할 수 있습니다.KeyUsage요청에 파라미터를 포함시킵니다. KeyUsage 유효값은 ENCRYPT_DECRYPTSIGN_VERIFY입니다.

예를 들어, KeyUsageENCRYPT_DECRYPT인 경우에만 사용자가 CMK를 생성하도록 허용하고 KeyUsageSIGN_VERIFY인 경우에는 사용자 권한을 거부할 수 있습니다.

다음 예제 IAM 정책 문은 kms:CustomerMasterKeyUsage 조건 키를 사용하여 KeyUsageENCRYPT_DECRYPT인 경우에만 사용자가 CMK를 생성하도록 허용합니다.

{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:CustomerMasterKeyUsage": "ENCRYPT_DECRYPT" } } }

뿐만 아니라kms:CustomerMasterKeyUsage조건 키를 사용하여 CMK를 사용 또는 관리하는 작업에 대한 액세스를 제어할 수 있습니다.KeyUsage작업에 사용된 CMK의 속성입니다. 작업은 특정 CMK에 대해 승인된 작업인 CMK 리소스 작업이어야 합니다. CMK 리소스 작업을 식별하려면 작업 및 리소스 테이블에서, 해당 작업에 대한 Resources 열에서 CMK 값을 찾습니다.

예를 들어 다음 IAM 정책에서는 보안 주체가 지정된 CMK 리소스 작업을 수행하도록 허용하지만 계정의 서명 및 확인에 사용되는 CMK에 대해서만 허용합니다.

{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:CustomerMasterKeyUsage": "SIGN_VERIFY" } } }

다음 사항도 참조하세요.

kms:DataKeyPairSpec

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:DataKeyPairSpec

문자열

단일 값

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

키 정책 및 IAM 정책

이 조건 키를 사용하여GenerateDataKeyPairGenerateDataKeyPairWithoutPlaintext값을 기준으로 작업을 수행할 수 있습니다.KeyPairSpec요청에 파라미터를 포함시킵니다. 예를 들어 사용자가 특정 유형의 데이터 키 페어만 생성하도록 허용할 수 있습니다.

다음 예제 키 정책 문은 kms:DataKeyPairSpec 조건 키를 사용하여 사용자가 CMK를 사용하여 RSA 데이터 키 페어만 생성하도록 허용합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": [ "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:DataKeyPairSpec": "RSA*" } } }

다음 사항도 참조하세요.

kms:EncryptionAlgorithm

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:EncryptionAlgorithm

문자열

단일 값

Decrypt

Encrypt

GenerateDataKey

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

GenerateDataKeyWithoutPlaintext

ReEncrypt

키 정책 및 IAM 정책

kms:EncryptionAlgorithm 조건 키를 사용하여 작업에 사용되는 암호화 알고리즘을 기반으로 암호화 작업에 대한 액세스를 제어할 수 있습니다. Encrypt, DecryptReEncrypt 작업의 경우 요청의 EncryptionAlgorithm 파라미터 값에 따라 액세스를 제어합니다. 데이터 키 및 데이터 키 페어를 생성하는 작업의 경우 데이터 키를 암호화하는 데 사용되는 암호화 알고리즘을 기반으로 액세스를 제어합니다.

이 조건 키는 AWS KMS 외부에서 비대칭 CMK 페어의 퍼블릭 키를 사용하여 암호화하는 경우와 같이 AWS KMS 외부에서 수행되는 작업에는 영향을 주지 않습니다.

요청의 EncryptionAlgorithm 파라미터

사용자가 CMK에 특정 암호화 알고리즘만 사용하도록 하려면 Deny 효과 및 StringNotEquals 조건 연산자가 포함된 정책 설명을 사용합니다. 예를 들어, 다음 예제 키 정책 설명에서는 요청의 암호화 알고리즘이 RSAES_OAEP_SHA_256이 아닐 경우 ExampleRole 역할을 수임할 수 있는 보안 주체가 지정된 암호화 작업에서 이 대칭 CMK를 사용할 수 없습니다.

사용자가 특정 암호화 알고리즘을 사용하도록 허용하는 정책 문과 달리, 이와 같은 이중 부정을 가진 정책 문은 이 CMK의 다른 정책 및 권한 부여가 이 역할이 다른 암호화 알고리즘을 사용하도록 허용하는 것을 금지합니다. 이Deny이 키 정책 문은 모든 키 정책 또는 IAM 정책보다 우선합니다Allow효과가 있으며 CMK와 해당 보안 주체에 대한 모든 권한 부여에 우선합니다.

{ "Sid": "Allow only one encryption algorithm with this asymmetric CMK", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringNotEquals": { "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256" } } }

작업에 사용되는 암호화 알고리즘

뿐만 아니라kms:EncryptionAlgorithm조건 키를 사용하여 요청에 알고리즘이 지정되지 않은 경우에도 작업에 사용되는 암호화 알고리즘을 기반으로 작업에 대한 액세스를 제어할 수 있습니다. 이것은 당신이 요구하거나 금지 할 수 있습니다SYMMETRIC_DEFAULT알고리즘은 기본값이기 때문에 요청에 지정되지 않을 수 있습니다.

이 기능을 사용하면kms:EncryptionAlgorithm조건 키를 사용하여 데이터 키 및 데이터 키 쌍을 생성하는 작업에 대한 액세스를 제어할 수 있습니다. 이러한 작업은 대칭 CMK와 SYMMETRIC_DEFAULT 알고리즘만 사용합니다.

예를 들어, 이 IAM 정책은 보안 주체를 대칭 암호화로 제한합니다. 요청에 지정되거나 작업에 사용된 암호화 알고리즘이 SYMMETRIC_DEFAULT가 아닐 경우 예제 계정에서 암호화 작업을 위한 CMK에 대한 액세스를 모두 거부합니다. 포함GenerateDataKey*GenerateDataKey,GenerateDataKeyWithoutPlaintext,GenerateDataKeyPair, 및GenerateDataKeyPairWithoutPlaintext권한에 추가합니다. 조건은 항상 대칭 암호화 알고리즘을 사용하기 때문에 이러한 작업에 영향을 주지 않습니다.

{ "Sid": "AllowOnlySymmetricAlgorithm", "Effect": "Deny", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringNotEquals": { "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT" } } }

다음 사항도 참조하세요.

kms:EncryptionContext:컨텍스트 키

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:EncryptionContext:context-key

문자열

단일 값

CreateGrant

Encrypt

Decrypt

GenerateDataKey

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

GenerateDataKeyWithoutPlaintext

ReEncrypt

키 정책 및 IAM 정책

kms:EncryptionContext:context-key에 대 한 액세스를 제어 하는 조건 키를대칭 CMK를 기반으로 합니다.암호화 컨텍스트에 대한 요청에암호화 작업. 이 조건 키를 사용하여 암호화 컨텍스트 쌍의 키와 값을 평가합니다. 암호화 컨텍스트 키만을 평가하거나 키 또는 값과 상관없이 암호화 컨텍스트를 요구하려면kms:EncryptionContextKeys조건 키를 사용합니다.

비대칭 CMK를 사용하여 암호화 작업에서 암호화 컨텍스트를 지정할 수 없습니다. AWS KMS에서 사용하는 표준 비대칭 암호화 알고리즘은 암호화 컨텍스트를 지원하지 않습니다.

KMS:EncryptionContext를 사용하려면 다음을 수행합니다.컨텍스트 키조건 키를 바꾸려면컨텍스트 키자리 표시자를 암호화 컨텍스트 키로 바꿉니다. 를 교체합니다.컨텍스트 값자리 표시자를 암호화 컨텍스트 값으로 바꿉니다.

"kms:EncryptionContext:context-key": "context-value"

예를 들어 다음 조건 키는 키가 인 암호화 컨텍스트를 지정합니다.AppName값은 입니다.ExampleApp(AppName = ExampleApp).

"kms:EncryptionContext:AppName": "ExampleApp"

이것은단일 값 조건 키. 조건 키의 키는 특정 암호화 컨텍스트 키 (컨텍스트 키). 각 API 요청에 여러 암호화 컨텍스트 쌍을 포함할 수 있지만 암호화 컨텍스트 쌍은 지정된컨텍스트 키하나의 값만 가질 수 있습니다. 예를 들어,kms:EncryptionContext:Department조건 키는Department키를 사용하여 지정된 암호화 컨텍스트 쌍 및Department키는 하나의 값만 가질 수 있습니다.

함께 집합 연산자를 사용하지 마십시오kms:EncryptionContext:context-key조건 키를 사용합니다. 를 사용하여 정책 설명을 생성하는 경우Allow작업,kms:EncryptionContext:context-key조건 키를 사용 하 고ForAllValuesset 연산자를 사용하는 경우 이 조건은 암호화 컨텍스트가 없는 요청과 정책 조건에 지정되지 않은 암호화 컨텍스트 쌍이 있는 요청을 허용합니다.

주의

를 사용하지 마십시오.ForAnyValue또는ForAllValues이 단일 값 조건 키를 사용하여 연산자를 설정합니다. 이러한 집합 연산자는 필요한 값을 요구하지 않고 금지하려는 값을 허용하는 정책 조건을 만들 수 있습니다.

정책을 만들거나 업데이트하는 경우ForAllValuesKms:EncryptionContext:컨텍스트 키,AWS KMS는 다음 오류 메시지를 반환합니다.

OverlyPermissiveCondition:EncryptionContext: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified encryption context or with an unspecified encryption context. To fix, remove ForAllValues.

특정 암호화 컨텍스트 쌍을 요구하려면kms:EncryptionContext:context-key조건 키를StringEquals연산자를 사용합니다.

다음 예제 키 정책 문은 역할을 수임할 수 있는 보안 주체가GenerateDataKey요청에 암호화 컨텍스트가 포함되는 경우에만 요청하기AppName:ExampleApp페어를 사용합니다. 다른 암호화 컨텍스트 쌍이 허용됩니다.

키 이름은 대/소문자를 구분하지 않습니다. 값의 대/소문자 구분은 다음과 같은 조건 연산자에 의해 결정됩니다.StringEquals. 자세한 내용은 단원을 참조하십시오암호화 컨텍스트 조건의 대/소문자 구분

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

암호화 컨텍스트 쌍을 요구하고 다른 모든 암호화 컨텍스트 쌍을 금지하려면 KMS:EncryptionContext를 모두 사용합니다.컨텍스트 키kms:EncryptionContextKeys정책 설명을 합니다. 다음 주요 정책 명령문은kms:EncryptionContext:AppName조건을 사용하여AppName=ExampleApp암호화 컨텍스트 쌍이 요청에 포함됩니다. 또한 를 사용합니다.kms:EncryptionContextKeys조건 키를ForAllValues설정 연산자 만 허용하도록AppName암호화 컨텍스트 키.

ForAllValuesset 연산자는 요청의 암호화 컨텍스트 키를AppName. 만약kms:EncryptionContextKeys와 조건ForAllValuesset 연산자가 정책 문에서 단독으로 사용된 경우 이 set 연산자는 암호화 컨텍스트가없는 요청을 허용합니다. 그러나 요청에 암호화 컨텍스트가 없는 경우kms:EncryptionContext:AppName조건이 실패합니다. 에 대한 자세한 내용은ForAllValues집합 연산자에 대한 자세한 내용은여러 키 및 값 사용IAM 사용 설명서.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::712816755609:user/alice" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" }, "ForAllValues:StringEquals": { "kms:EncryptionContextKeys": [ "AppName" ] } } }

이 조건 키를 사용하여 특정 작업에 대한 CMK에 대한 액세스를 거부할 수도 있습니다. 다음 예제 키 정책 명령문은Deny이 요청의 암호화 컨텍스트가 를 포함하는 경우 보안 주체가 CMK를 사용하지 못하도록 하는 효과Stage=Restricted암호화 컨텍스트 쌍입니다. 이 조건은 암호화 컨텍스트 쌍을 포함하여 다른 암호화 컨텍스트 쌍과의 요청을 허용합니다.Stage키 및 기타 값 (예:Stage=Test.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Stage": "Restricted" } } }

여러 암호화 컨텍스트 쌍 사용

여러 암호화 컨텍스트 쌍을 요구하거나 금지할 수 있습니다. 여러 암호화 컨텍스트 쌍 중 하나를 요구할 수도 있습니다. 이러한 조건을 해석하는 데 사용되는 논리에 대한 자세한 내용은여러 키 또는 값으로 조건 만들기IAM 사용 설명서의.

참고

이 항목의 이전 버전에는ForAnyValueForAllValuesKMS:EncryptionContext:컨텍스트 키조건 키를 사용합니다. 와 집합 연산자 사용단일 값 조건 키로 설정하면 암호화 컨텍스트가 없고 지정되지 않은 암호화 컨텍스트 쌍이 있는 요청을 허용하는 정책이 생성될 수 있습니다.

예를 들어, 정책 조건은Allow효과를 사용하면ForAllValuesset 연산자 및"kms:EncryptionContext:Department": "IT"조건 키는 암호화 컨텍스트를 “부서 = IT” 쌍으로 제한하지 않습니다. 암호화 컨텍스트가없는 요청과 지정되지 않은 암호화 컨텍스트 쌍을 사용하는 요청 (예:Stage=Restricted.

정책을 검토하고 KMS:암호화 컨텍스트를 사용하여 모든 조건에서 설정 연산자를 제거하십시오.컨텍스트 키. 이 형식의 정책을 생성하거나 업데이트하려는 시도가 실패하고OverlyPermissiveCondition예외입니다. 오류를 해결하려면 set 연산자를 삭제합니다.

여러 암호화 컨텍스트 쌍을 요구하려면 동일한 조건의 쌍을 나열하십시오. 다음 예제 키 정책 문은 두 암호화 컨텍스트 페어를 필요로 합니다.Department=ITProject=Alpha. 조건이 서로 다른 키를 가지고 있기 때문에 (kms:EncryptionContext:Departmentkms:EncryptionContext:Project), AND 연산자에 의해 암시 적으로 연결됩니다. 다른 암호화 컨텍스트 쌍은 허용되지만 필수는 아닙니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Department": "IT", "kms:EncryptionContext:Project": "Alpha" } } }

하나의 암호화 컨텍스트 쌍 또는 다른 쌍을 요구하려면 각 조건 키를 별도의 정책 설명에 배치합니다. 다음 예제 키 정책을 사용하려면Department=IT 또는 Project=Alpha쌍 또는 둘 다를 사용할 수 있습니다. 다른 암호화 컨텍스트 쌍은 허용되지만 필수는 아닙니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Department": "IT" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Project": "Alpha" } } }

특정 암호화 쌍을 요구하고 다른 모든 암호화 컨텍스트 쌍을 제외하려면 KMS:EncryptionContext를 모두 사용합니다.컨텍스트 키kms:EncryptionContextKeys정책 설명을 합니다. 다음 키 정책 문은 KMS:암호화 컨텍스트를 사용합니다.컨텍스트 키조건을 모두 사용하여 암호화 컨텍스트를 요구할 수 있습니다.Department=IT Project=Alpha페어를 사용합니다. 이는 를 사용합니다.kms:EncryptionContextKeys조건 키를ForAllValues설정 연산자 만 허용하도록DepartmentProject암호화 컨텍스트 키.

ForAllValuesset 연산자는 요청의 암호화 컨텍스트 키를DepartmentProject. 조건에 단독으로 사용된 경우 이 집합 연산자는 암호화 컨텍스트가 없는 요청을 허용하지만 이 구성에서는 KMS:EncryptionContext:컨텍스트 키이 조건에서 실패 할 수 있습니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::712816755609:user/alice" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Department": "IT", "kms:EncryptionContext:Project": "Alpha" }, "ForAllValues:StringEquals": { "kms:EncryptionContextKeys": [ "Department", "Project" ] } } }

여러 암호화 컨텍스트 쌍을 금지할 수도 있습니다. 다음 예제 키 정책 명령문은Deny이 요청의 암호화 컨텍스트가 를 포함하는 경우 보안 주체가 CMK를 사용하지 못하도록 하는 효과Stage=Restricted또는Stage=Production.pair

여러 값 (RestrictedProduction) 를 동일한 키 (kms:EncryptionContext:Stage) 는 OR에 의해 암시 적으로 연결됩니다. 자세한 내용은 단원을 참조하십시오.여러 키 또는 값이 있는 조건에 대한 평가 논리IAM 사용 설명서.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Stage": [ "Restricted", "Production" ] } } }

암호화 컨텍스트 조건의 대/소문자 구분

암호 해독 작업에 지정된 암호화 컨텍스트는 암호화 작업에 지정된 암호화 컨텍스트에 대해 대소문자가 정확히 일치해야 합니다. 여러 쌍이 있는 암호화 컨텍스트에서 쌍의 순서만 다를 수 있습니다.

그러나 정책 조건에서 조건 키는 대소문자를 구분하지 않습니다. 조건 값의 대/소문자 구분에 의해 결정된다정책 조건 연산자와 같이 사용하는StringEquals또는StringEqualsIgnoreCase.

이와 같이 kms:EncryptionContext: 접두사와 context-key 대체로 구성된 조건 키는 대소문자를 구분하지 않습니다. 이 조건을 사용하는 정책은 조건 키의 두 요소의 대소문자를 검사하지 않습니다. 대소문자 구분, 즉 context-value 대체는 정책 조건 연산자에 의해 결정됩니다.

예를 들어 다음 정책 명령문은 대문자 사용에 관계없이 암호화 컨텍스트에 Appname키가 포함 된 경우 작업을 허용합니다. 예를 들어 다음 정책 명령문은 대문자 사용에 관계없이 암호화 컨텍스트에 StringEquals 키가 포함 된 경우 작업을 허용합니다ExampleApp.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Appname": "ExampleApp" } } }

대소문자를 구분하는 암호화 컨텍스트 키를 요구하려면 kms: EncryptionContextKeys 정책 조건을 대소문자를 구분하는 조건 연산자 (예: StringEquals)와 함께 사용하십시오. 이 정책 조건에서는 암호화 컨텍스트 키가 이 정책 조건의 값이기 때문에 대소문자 구분은 조건 연산자에 의해 결정됩니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "AppName" } } }

암호화 컨텍스트 키와 값 모두에 대해 대소문자가 구분된 평가가 필요하면kms:EncryptionContextKeys및 KMS:암호화 컨텍스트:컨텍스트 키정책 조건을 동일한 정책 문에 지정하기 대소문자를 구분하는 조건 연산자 (예:StringEquals) 은 항상 조건의 값에 적용됩니다. 암호화 컨텍스트 키 (예:AppName) 의 값은kms:EncryptionContextKeys조건입니다. 암호화 컨텍스트 값 (예:ExampleApp) 는 KMS: 암호화 컨텍스트의 값입니다.컨텍스트 키조건입니다.

예를 들어 다음 예제 키 정책 문은StringEquals연산자는 대소문자를 구분하므로 암호화 컨텍스트 키와 암호화 컨텍스트 값 모두 대소문자를 구분합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "AppName" }, "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

암호화 컨텍스트 조건에 변수 사용

암호화 컨텍스트 쌍의 키와 값은 단순 리터럴 문자열이어야 합니다. 정수나 객체, 또는 완전히 해결되지 않는 어떤 형식도 사용할 수 없습니다. 정수 또는 부동 소수점과 같은 다른 형식을 사용할 경우 AWS KMS는 이를 리터럴 문자열로 해석합니다.

"encryptionContext": { "department": "10103.0" }

그러나 이 값은kms:EncryptionContext:context-key조건 키는IAM 정책 변수. 이러한 정책 변수는 런타임에 요청에 포함된 값을 기반으로 확인됩니다. 예를 들어 aws:CurrentTime 은 요청의 시간으로 확인되고 aws:username은 호출자의 표시 이름으로 확인됩니다.

이러한 정책 변수를 사용하여 암호화 컨텍스트에서 매우 구체적인 정보(예: 호출자의 사용자 이름)를 요구하는 조건을 포함하는 정책 문을 생성할 수 있습니다. 변수를 포함하기 때문에 특정 역할을 수임할 수 있는 모든 사용자에 동일한 정책 문을 사용할 수 있습니다. 사용자마다 따로 정책 문을 작성할 필요가 없습니다.

예를 들어 모든 사용자가 동일한 CMK를 사용하여 데이터를 암호화 및 암호화 해제하는 역할을 수임할 수 있게 하려고 합니다. 그러나 모든 사용자가 직접 암호화한 데이터만 암호화를 해제하도록 허용하려고 합니다. 먼저 AWS KMS에 대한 모든 요청이 키가 user이고 값이 다음과 같은 호출자의 AWS 사용자 이름을 포함하도록 요구하는 것으로 시작합니다.

"encryptionContext": { "user": "bob" }

그런 다음 이 요구 사항을 시행하려면 다음 예제와 같은 정책 문을 사용할 수 있습니다. 이 정책 문은 TestTeam 역할에 CMK를 사용하여 데이터를 암호화 및 암호화 해제할 권한을 부여합니다. 그러나 이 권한은 요청의 암호화 컨텍스트가 "user": "<username>" 쌍을 포함하는 경우에만 유효합니다. 사용자 이름을 표현하기 위해 조건이 aws:username 정책 변수를 사용합니다.

요청이 평가될 때 호출자의 사용자 이름이 조건의 변수를 대체합니다. 따라서 조건은 "bob"에 대해서는 암호화 컨텍스트 "user": "bob"을 요구하고 "alice"에 대해서는 "user": "alice"를 요구합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/TestTeam" }, "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:user": "${aws:username}" } } }

IAM 정책 변수는kms:EncryptionContext:context-key조건 키를 사용합니다. 키에는 변수를 사용할 수 없습니다.

또한 변수에 공급자별 컨텍스트 키를 사용할 수도 있습니다. 이러한 컨텍스트 키는 웹 자격 증명 연동을 사용하여 AWS에 로그인한 사용자를 고유하게 식별합니다.

다른 모든 변수와 마찬가지로 이러한 변수도 실제 암호화 컨텍스트가 아니라 kms:EncryptionContext:context-key 정책 조건에서만 사용할 수 있습니다. 또한 키가 아니라 조건의 값에만 사용할 수 있습니다.

예를 들어 다음 키 정책 문은 이전 것과 비슷합니다. 그러나 조건은 키가 인 암호화 컨텍스트를 요구합니다.sub와 이 값은 Amazon Cognito 사용자 풀에 로그인한 사용자를 고유하게 식별합니다. Amazon Cognito 에서 사용자 및 역할을 식별하는 방법에 대한 자세한 내용은IAM 역할Amazon Cognito 개발자 안내서.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/TestTeam" }, "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:sub": "${cognito-identity.amazonaws.com:sub}" } } }

다음 사항도 참조하세요.

kms:EncryptionContextKeys

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:EncryptionContextKeys

문자열(목록)

다중 값

CreateGrant

Decrypt

Encrypt

GenerateDataKey

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

GenerateDataKeyWithoutPlaintext

ReEncrypt

키 정책 및 IAM 정책

kms:EncryptionContextKeys에 대 한 액세스를 제어 하는 조건 키를대칭 CMK를 기반으로 합니다.암호화 컨텍스트암호화 작업에 대한 요청에. 이 조건 키를 사용하여 암호화 컨텍스트 쌍의 키만 평가합니다. 키와 암호화 컨텍스트의 값을 모두 평가하려면kms:EncryptionContext:context-key조건 키를 사용합니다.

비대칭 CMK를 사용하여 암호화 작업에서 암호화 컨텍스트를 지정할 수 없습니다. AWS KMS에서 사용하는 표준 비대칭 암호화 알고리즘은 암호화 컨텍스트를 지원하지 않습니다.

이것은다중 값 조건 키. 각 API 요청에서 여러 암호화 컨텍스트 쌍을 지정할 수 있습니다.kms:EncryptionContextKeys는 요청의 암호화 컨텍스트 키를 정책의 암호화 컨텍스트 키 집합과 비교합니다. 이러한 집합이 비교되는 방법을 확인하려면ForAnyValue또는ForAllValues정책 조건에서 연산자를 설정합니다. 집합 연산자에 대한 자세한 내용은 단원을 참조하십시오.여러 키 및 값 사용IAM 사용 설명서의.

  • ForAnyValue: 요청에 있는 하나 이상의 암호화 컨텍스트 키가 정책 조건의 암호화 컨텍스트 키와 일치해야 합니다. 다른 암호화 컨텍스트 키는 허용됩니다. 요청에 암호화 컨텍스트가 없으면 조건이 충족되지 않습니다.

  • ForAllValues: 요청의 모든 암호화 컨텍스트 키는 정책 조건의 암호화 컨텍스트 키와 일치해야 합니다. 이 집합 연산자는 암호화 컨텍스트 키를 정책 조건의 컨텍스트 키로 제한합니다. 암호화 컨텍스트 키는 필요하지 않지만 지정되지 않은 암호화 컨텍스트 키는 금지됩니다.

다음 예제 키 정책 명령문은kms:EncryptionContextKeys조건 키를ForAnyValue연산자를 사용합니다. 이 정책 설명은 지정된 작업에 대한 CMK 사용을 허용하지만 요청의 암호화 컨텍스트 쌍 중 하나 이상에 대한AppName키에 관계없이 그 값에 관계없이 키.

예를 들어, 이 주요 정책 문은GenerateDataKey두 개의 암호화 컨텍스트 쌍으로 요청AppName=HelperProject=Alpha첫 번째 암호화 컨텍스트 쌍이 조건을 만족하기 때문입니다. 만있는 요청Project=Alpha또는 암호화 컨텍스트가 없으면 실패합니다.

왜냐하면StringEquals조건 연산은 대소문자를 구분하므로 이 정책 문에는 암호화 컨텍스트 키의 철자와 대소 문자가 필요합니다. 그러나 StringEqualsIgnoreCase과 같은 키 대소문자를 무시하는 조건 연산자를 사용할 수 있습니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "AppName" } } }

뿐만 아니라kms:EncryptionContextKeys조건 키를 사용하여 CMK를 사용하는 암호화 작업에서 암호화 컨텍스트 (모든 암호화 컨텍스트) 가 필요할 수 있습니다.

다음 예제 키 정책 명령문은kms:EncryptionContextKeys조건 키를NULL 조건 연산자를 사용하여 API 요청의 암호화 컨텍스트가 null이 아닌 경우에만 CMK에 대한 액세스를 허용합니다. 이 조건은 암호화 컨텍스트의 키나 값을 확인하지 않습니다. 암호화 컨텍스트가 존재하는지 확인합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContextKeys": false } } }

다음 사항도 참조하세요.

kms:ExpirationModel

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:ExpirationModel

문자열

단일 값

ImportKeyMaterial

키 정책 및 IAM 정책

kms:ExpirationModel조건 키에 대 한 액세스를 제어ImportKeyMaterial값을 기준으로 작업ExpirationModel요청에 파라미터를 포함시킵니다.

ExpirationModel은 가져온 키 자료가 만료되는지 여부를 결정하는 선택적 파라미터입니다. 유효한 값은 KEY_MATERIAL_EXPIRESKEY_MATERIAL_DOES_NOT_EXPIRE이며, 기본값은 KEY_MATERIAL_EXPIRES입니다.

만료 날짜 및 시간은 ValidTo 파라미터의 값에 따라 결정됩니다. ValidTo 파라미터의 값이 ExpirationModel가 아닌 경우에는 KEY_MATERIAL_DOES_NOT_EXPIRE 파라미터가 필요합니다. 또한 kms:ValidTo 조건 키를 사용하여 특정 만료 날짜를 액세스 조건으로 요구할 수도 있습니다.

다음 예제 키 정책 명령문은kms:ExpirationModel조건 키를 사용하여 요청에 키가 포함될 때만 사용자가 CMK로 키 구성 요소를 가져오도록 허용할 수 있습니다.ExpirationModel매개 변수이고 그 값은KEY_MATERIAL_DOES_NOT_EXPIRE.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "StringEquals": { "kms:ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE" } } }

뿐만 아니라kms:ExpirationModel조건 키를 사용하여 키 자료가 만료될 때만 사용자가 키 자료를 가져오도록 허용합니다. 다음 예제 키 정책 명령문은kms:ExpirationModel조건 키를NULL 조건 연산자가 없는 경우에만 사용자가 키 자료를 가져오도록 허용하도록ExpirationModel파라미터. ExpirationModel 기본값은 입니다.KEY_MATERIAL_EXPIRES.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "Null": { "kms:ExpirationModel": true } } }

다음 사항도 참조하세요.

kms:GrantConstraintType

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:GrantConstraintType

문자열

단일 값

CreateGrant

키 정책 및 IAM 정책

이 조건 키를 사용하여CreateGrant의 유형에 따라 작업제약 편집않습니다.

권한 부여를 생성하면 선택적으로 권한 부여 제약을 지정해 특정 암호화 컨텍스트가 있는 경우에만 권한 부여에 의해 허용된 작업을 허용할 수 있습니다. 권한 부여 제약은 EncryptionContextEquals 또는 EncryptionContextSubset, 두 유형 중 하나일 수 있습니다. 이 조건 키를 사용해 요청 제약에 어떤 유형이 포함되었는지 확인할 수 있습니다.

다음 예제 키 정책 명령문은kms:GrantConstraintType조건 키를 사용하여 요청에 포함된 경우에만 사용자가 권한 부여를 생성하도록 허용할 수 있습니다.EncryptionContextEquals제약 제약. 이 예제는 키 정책의 정책 설명을 보여줍니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:GrantConstraintType": "EncryptionContextEquals" } } }

다음 사항도 참조하세요.

kms:GrantIsForAWSResource

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:GrantIsForAWSResource

단일 값

CreateGrant

ListGrants

RevokeGrant

키 정책 및 IAM 정책

에 대 한 사용 권한을 허용 하거나 거부CreateGrant,ListGrants또는RevokeGrant경우에만 작업AWS에 통합된 서비스AWS KMS는 사용자를 대신하여 작업을 호출합니다. 이 정책 조건은 사용자가 이러한 권한 부여 작업을 직접 호출하도록 허용하지 않습니다.

다음 예제 키 정책 명령문은kms:GrantIsForAWSResource조건 키를 사용합니다. 이는 허용합니다.AWS와 통합 된 서비스AWS KMS(예: Amazon EBS) 를 사용하여 지정된 사용자를 대신하여 이 CMK에 대한 권한을 생성할 수 있습니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }

다음 사항도 참조하세요.

kms:GrantOperations

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:GrantOperations

문자열

다중 값

CreateGrant

키 정책 및 IAM 정책

이 조건 키를 사용하여CreateGrant작업을 기반으로부여 작업않습니다. 예를 들어, 사용자가 암호화할 권한은 위임하지만 해독할 권한은 위임하지 않는 권한 부여를 생성하도록 허용할 수 있습니다. 권한 부여에 대한 자세한 내용은 단원을 참조하십시오.권한 부여 사용.

이것은다중 값 조건 키.kms:GrantOperations에서 부여 작업의 집합을 비교 하는CreateGrant요청을 정책의 부여 작업 집합에 보냅니다. 이러한 집합이 비교되는 방법을 확인하려면ForAnyValue또는ForAllValues정책 조건에서 연산자를 설정합니다. 집합 연산자에 대한 자세한 내용은 단원을 참조하십시오.여러 키 및 값 사용IAM 사용 설명서의.

  • ForAnyValue: 요청에서 하나 이상의 부여 작업이 정책 조건의 부여 작업 중 하나와 일치해야 합니다. 기타 권한 부여 작업은 허용됩니다.

  • ForAllValues: 요청의 모든 부여 작업은 정책 조건의 부여 작업과 일치해야 합니다. 이 집합 연산자는 권한 부여 작업을 정책 조건에 지정된 작업으로 제한합니다. 부여 작업은 필요하지 않지만 지정되지 않은 부여 작업은 금지합니다.

    ForAllValues 는 요청에 부여 작업이 없을 때 true를 반환하지만CreateGrant는 허용하지 않습니다. 만약Operations매개 변수가 없거나 null 값을 갖는 경우CreateGrant요청이 실패합니다.

다음 예제 키 정책 명령문은kms:GrantOperations조건 키를 사용하여 권한 부여 작업이Encrypt,ReEncryptTo또는 양쪽 모두일 때 부여에 다른 작업이 포함 된 경우CreateGrant요청이 실패합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Encrypt", "ReEncryptTo" ] } } }

정책 조건에서 집합 연산자를ForAnyValue로 설정하면 정책 설명에 부여의 권한 부여 작업 중 하나 이상이Encrypt또는ReEncryptTo와 같은 다른 부여 작업을 허용 할 수 있지만Decrypt또는ReEncryptFrom.

다음 사항도 참조하세요.

kms:GranteePrincipal

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:GranteePrincipal

문자열

단일 값

CreateGrant

IAM 및 주요 정책

이 조건 키를 사용하여CreateGrant값을 기준으로 작업GranteePrincipal요청에 파라미터를 포함시킵니다. 예를 들면 CreateGrant 요청의 피부여자 보안 주체가 조건문에 지정된 보안 주체와 일치할 때만 사용자에게 CMK 사용 권한을 생성하도록 허용할 수 있습니다.

다음 예제 키 정책 명령문은kms:GranteePrincipal조건 키를 사용하여 권한 부여의 피부여자 보안 주체가LimitedAdminRole.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole" } } }

다음 사항도 참조하세요.

kms:KeyOrigin

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:KeyOrigin

문자열

단일 값

CreateKey

CMK 리소스 작업

IAM 정책

키 정책 및 IAM 정책

kms:KeyOrigin 조건 키는 작업에 의해 작성되거나 작업에 사용된 CMK의 Origin 속성 값에 따라 작업에 대한 액세스를 제어합니다. 그것은 자원 조건 또는 요청 조건으로 작동합니다.

이 조건 키를 사용하여CreateKey값을 기준으로 작업Origin요청에 파라미터를 포함시킵니다. Origin의 유효한 값은 AWS_KMS, AWS_CLOUDHSMEXTERNAL입니다.

예를 들어, 키 재료가 생성될 때만 사용자가 CMK를 생성하도록 허용할 수 있습니다.AWS KMS(AWS_KMS) 에서 키 재질이 생성 된 경우에만AWS CloudHSM클러스터와 연결된사용자 지정 키 스토어(AWS_CLOUDHSM) 또는키 재질을 가져옵니다.에서 외부 소스 (EXTERNAL).

다음 예제 키 정책 명령문은kms:KeyOrigin조건 키를 사용하여 다음과 같은 경우에만 사용자가 CMK를 생성하도록 허용할 수 있습니다.AWS KMS는 키 재질을 만듭니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_KMS" } } }

뿐만 아니라kms:KeyOrigin조건 키를 사용하여 CMK를 사용 또는 관리하는 작업에 대한 액세스를 제어할 수 있습니다.Origin작업에 사용된 CMK의 속성입니다. 작업은 특정 CMK에 대해 승인된 작업인 CMK 리소스 작업이어야 합니다. CMK 리소스 작업을 식별하려면 작업 및 리소스 테이블에서, 해당 작업에 대한 Resources 열에서 CMK 값을 찾습니다.

예를 들어 다음 IAM 정책에서는 보안 주체가 지정된 CMK 리소스 작업을 수행하도록 허용하지만 계정의 사용자 지정 키 스토어에서 생성된 CMK에 대해서만 허용합니다.

{ "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext", "kms:ReEncrypt*" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_CLOUDHSM" } } }

다음 사항도 참조하세요.

kms:MessageType

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:MessageType

문자열

단일 값

Sign

Verify

키 정책 및 IAM 정책

kms:MessageType조건 키에 대 한 액세스를 제어Sign확인값을 기준으로 작업을 수행할 수 있습니다.MessageType요청에 파라미터를 포함시킵니다. MessageType 유효값은 RAWDIGEST입니다.

예를 들어 다음 키 정책 문은 kms:MessageType 조건 키를 사용하여 사용자가 비대칭 CMK를 사용하여 메시지에 서명하도록 허용하지만 메시지 다이제스트는 허용하지 않습니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:Sign", "Resource": "*", "Condition": { "StringEquals": { "kms:MessageType": "RAW" } } }

다음 사항도 참조하세요.

KMS:다중 영역

AWS KMS 조건 키 조건 유형 API 작업 정책 유형

kms:MultiRegion

CreateKey

CMK 리소스 작업

키 정책 및 IAM 정책

이 조건 키를 사용하여 단일 지역 키에만 작업을 허용하거나다중 리전 키. 이kms:MultiRegion조건 키에 대한 액세스를 제어합니다.AWS KMS작업을 CMK 및CreateKey값을 기준으로 작업MultiRegionCMK의 속성. 유효 값은 다음과 같습니다.true(다중 영역) 및false(단일 영역). 모든 CMK에는MultiRegion속성입니다.

예를 들어 다음 IAM 정책 문은kms:MultiRegion조건 키를 사용하여 보안 주체가 단일 영역 키만 만들 수 있습니다.

{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": { "*" }, "Condition": { "Bool": "kms:MultiRegion": false } }

KMS:다중 영역 키 유형

AWS KMS 조건 키 조건 유형 API 작업 정책 유형

kms:MultiRegionKeyType

문자열

CreateKey

CMK 리소스 작업

키 정책 및 IAM 정책

이 조건 키를 사용하여다중 리전 기본 키또는 에만 해당다중 리전 복제본 키. 이kms:MultiRegionKeyType조건 키에 대한 액세스를 제어합니다.AWS KMSCMK에 대한 작업 및CreateKey작업을 기반으로MultiRegionKeyTypeCMK의 속성. 유효 값은 PRIMARYREPLICA입니다. 다중 영역 CMK만MultiRegionKeyType속성입니다.

일반적으로 사용 하 여kms:MultiRegionKeyType조건 키를 사용하여 여러 CMK에 대한 액세스를 제어할 수 있습니다. 그러나 지정된 다중 리전 CMK가 기본 또는 복제본으로 변경될 수 있으므로 특정 다중 리전 CMK가 기본 또는 복제본 키인 경우에만 작업을 허용하려면 키 정책에서 이 조건을 사용할 수 있습니다.

예를 들어 다음 IAM 정책 문은kms:MultiRegionKeyType조건 키를 사용하여 보안 주체가 지정된 AWS 계정 .

{ "Effect": "Allow", "Action": [ "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": { "arn:aws:kms:*:111122223333:key/*" }, "Condition": { "StringEquals": "kms:MultiRegionKeyType": "REPLICA" } }

모든 다중 지역 키에 대한 액세스를 허용하거나 거부하려면 두 값 또는kms:MultiRegionKeyType. 그러나KMS:다중 영역조건 키를 사용하는 것이 좋습니다.

KMS:주 지역

AWS KMS 조건 키 조건 유형 API 작업 정책 유형

kms:PrimaryRegion

문자열(목록)

UpdatePrimaryRegion

키 정책 및 IAM 정책

이 조건 키를 사용하여 대상 리전을업데이트기본 영역작업을 실행합니다. 이들은 AWS 리전 다중 지역 기본 키를 호스팅할 수 있습니다.

kms:PrimaryRegion조건 키에 대 한 액세스를 제어업데이트기본 영역값을 기준으로 작업PrimaryRegion파라미터. 이PrimaryRegion매개 변수는 AWS 리전 에서 변환되는 CMK의다중 리전 복제본 키다중 리전 기본 키. 조건의 값은 하나 이상입니다. AWS 리전 이름 (예:us-east-1또는ap-southeast-2또는 지역 이름 패턴 (예:eu-*

예를 들어 다음 키 정책 문은kms:PrimaryRegion조건 키를 사용하여 보안 주체가 다중 리전 CMK의 기본 리전을 네 개의 지정된 리전 중 하나로 업데이트할 수 있습니다.

{ "Effect": "Allow", "Action": "kms:UpdatePrimaryRegion", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Developer" }, "Resource": "*", "Condition": { "StringEquals": { "kms:PrimaryRegion": [ "us-east-1", "us-west-2", "eu-west-3", "ap-southeast-2" ] } } }

kms:ReEncryptOnSameKey

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:ReEncryptOnSameKey

단일 값

ReEncrypt

키 정책 및 IAM 정책

이 조건 키를 사용해 요청이 원래 암호화에 사용된 것과 동일한 대상 CMK를 지정하는지 여부에 따라 ReEncrypt 작업에 대한 액세스를 제어할 수 있습니다.

예를 들어 다음 키 정책 문은kms:ReEncryptOnSameKey조건 키를 사용하여 대상 CMK가 원래 암호화에 사용된 것과 동일한 경우에만 사용자가 다시 암호화하도록 허용할 수 있습니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:ReEncrypt*", "Resource": "*", "Condition": { "Bool": { "kms:ReEncryptOnSameKey": true } } }

KMS:요청별칭

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:RequestAlias

문자열(목록)

단일 값

암호화 작업

DescribeKey

GetPublicKey

키 정책 및 IAM 정책

이 조건 키를 사용하여 요청이 CMK를 식별하기 위해 특정 별칭을 사용하는 경우에만 작업을 허용할 수 있습니다. 이kms:RequestAlias조건 키는 암호화 작업에 사용되는 CMK에 대한 액세스를 제어하고GetPublicKey또는DescribeKey를 기반으로 합니다.별칭요청에서 해당 CMK를 식별합니다. (이 정책 조건은 영향을 미치지 않습니다.GenerateRandom작업이 CMK 또는 별칭을 사용하지 않기 때문에 작업을 수행합니다.

이 조건은 다음을 지원합니다.속성 기반 액세스 제어(ABAC)AWS KMS를 사용하여 CMK의 태그와 별칭을 기반으로 CMK에 대한 액세스를 제어할 수 있습니다. 태그 및 별칭을 사용하여 정책이나 권한 부여를 변경하지 않고 CMK에 대한 액세스를 허용하거나 거부할 수 있습니다. 자세한 내용은 단원을 참조하십시오용 ABACAC 사용AWS KMS

이 정책 조건에서 별칭을 지정하려면별칭 이름(예:alias/project-alpha또는 별칭 이름 패턴 (예:alias/*test*. 다음을 지정할 수 없습니다.별칭 ARN이 조건 키의 값에.

이 조건을 만족시키기 위해KeyId파라미터는 일치하는 별칭 이름이나 별칭 ARN 이어야 합니다. 요청이 다른조건 키, 동일한 CMK를 식별하더라도 조건을 만족하지 못합니다.

예를 들어 다음 키 정책 문은 보안 주체가GenerateDataKeyCMK에서 작업을 수행할 수 있습니다. 그러나 이것은 값이 경우에만 허용됩니다.KeyId파라미터를 요청alias/finance-key또는 별칭 이름을 포함하는 별칭 ARN (예:arn:aws:kms:us-west-2:111122223333:alias/finance-key.

{ "Sid": "Key policy using a request alias condition", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/developer" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:RequestAlias": "alias/finance-key" } } }

이 조건 키를 사용하여 다음과 같은 별칭 작업에 대한 액세스를 제어할 수 없습니다.CreateAlias또는DeleteAlias. 별칭 작업에 대한 액세스를 제어하는 방법에 대한 자세한 내용은별칭에 대한 액세스 제어.

KMS:리소스 별칭

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:ResourceAliases

문자열(목록)

다중 값 CMK 리소스 작업

IAM 정책만 제공

이 조건 키를 사용하여 CMK에 대한 액세스를 제어할 수 있습니다.별칭CMK와 관련된. 작업은 특정 CMK에 대해 승인된 작업인 CMK 리소스 작업이어야 합니다. CMK 리소스 작업을 식별하려면 작업 및 리소스 테이블에서, 해당 작업에 대한 Resources 열에서 CMK 값을 찾습니다.

별칭은 고유해야 AWS 계정 및 Region을 사용할 수 있지만 이 조건을 사용하면 동일한 리전에 있는 여러 CMK에 대한 액세스를 제어할 수 있습니다 (StringLike비교 연산자) 또는 여러 CMK에 다른 AWS 리전 각 계정의. 자세한 내용은 단원을 참조하십시오용 ABACAC 사용AWS KMS

참고

이KMS:리소스 별칭조건은 CMK가CMK당 별칭할당량. CMK가 이 할당량을 초과하면 CMK를 사용할 수 있는 권한이 있는 보안 주체는kms:ResourceAliasesCMK에 대한 액세스가 거부됩니다.

이 정책 조건에서 별칭을 지정하려면별칭 이름(예:alias/project-alpha또는 별칭 이름 패턴 (예:alias/*test*. 다음을 지정할 수 없습니다.별칭 ARN이 조건 키의 값에. 조건을 충족하려면 작업에 사용된 CMK에 지정된 별칭이 있어야 합니다. 작업 요청에서 CMK가 식별되는지 또는 어떻게 식별되는지는 중요하지 않습니다.

CMK와 연결된 별칭 집합을 정책의 별칭 집합과 비교하는 다중값 조건 키입니다. 이러한 집합이 비교되는 방법을 확인하려면ForAnyValue또는ForAllValues정책 조건에서 연산자를 설정합니다. 집합 연산자에 대한 자세한 내용은 단원을 참조하십시오.여러 키 및 값 사용IAM 사용 설명서의.

  • ForAnyValue: CMK와 연결된 별칭이 하나 이상 정책 조건의 별칭과 일치해야 합니다. 다른 별칭은 허용됩니다. CMK에 별칭이 없으면 조건이 충족되지 않습니다.

  • ForAllValues: CMK와 연결된 모든 별칭은 정책의 별칭과 일치해야 합니다. 이 집합 연산자는 CMK와 연결된 별칭을 정책 조건의 별칭으로 제한합니다. 별칭은 필요하지 않지만 지정되지 않은 별칭을 금지합니다.

예를 들어 다음 IAM 정책 문은 보안 주체가GenerateDataKey지정된 모든 CMK에 대한 작업 AWS 계정 관련되어 있는finance-key별칭을 사용합니다. 영향을 받는 CMK의 주요 정책은 보안 주체의 계정이 이 작업에 사용할 수 있도록 허용해야 합니다. CMK와 연관될 수 있는 여러 별칭 중 하나가alias/finance-key인 경우 조건은ForAnyValue연산자를 사용합니다.

왜냐하면kms:ResourceAliases조건은 요청이 아닌 리소스를 기반으로하며GenerateDataKey와 연결된 모든 CMK에 대해 성공합니다.finance-key요청을 사용하는 경우에도 별칭을키 ID또는키 ARN를 사용하여 CMK를 식별할 수 있습니다.

{ "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": [ "arn:aws:kms:*:111122223333:key/*", "arn:aws:kms:*:444455556666:key/*", ], "Condition": { "ForAnyValue:StringEquals": { "kms:ResourceAliases": "alias/finance-key" } } }

다음 예제 IAM 정책 설명에서는 보안 주체가 CMK를 활성화하거나 비활성화할 수 있도록 허용하지만 CMK의 모든 별칭에”Test.” 이 정책 설명에는 두 가지 조건이 사용됩니다. 조건 단원ForAllValuesset 연산자와 관련된 모든 별칭이CMK“테스트”를 포함합니다. 조건 단원ForAnyValueset 연산자를 사용하려면 CMK에 “Test”가있는 별칭이 하나 이상 있어야합니다. 를 사용하지 않고ForAnyValue조건에서는 이 정책 설명을 통해 보안 주체가 별칭이 없는 CMK를 사용할 수 있습니다.

{ "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:EnableKey", "kms:DisableKey" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": [ { "ForAllValues:StringLike": { "kms:ResourceAliases": "alias/*Test*" } }, { "ForAnyValue:StringLike": { "kms:ResourceAliases": "alias/*Test*" } } ] }

KMS:복제 영역

AWS KMS 조건 키 조건 유형 API 작업 정책 유형

kms:ReplicaRegion

문자열(목록)

ReplicateKey

키 정책 및 IAM 정책

이 조건 키를 사용하여 AWS 리전 를 복제할 수 있는다중 리전 키. 이kms:ReplicaRegion조건 키에 대 한 액세스를 제어복제 키값을 기준으로 작업ReplicaRegion요청에 파라미터를 포함시킵니다. 이 매개 변수는 AWS 리전 새로운복제본 키.

조건의 값은 하나 이상입니다. AWS 리전 이름 (예:us-east-1또는ap-southeast-2또는 이름 패턴 (예:eu-*. 이름 목록은 AWS 리전 그AWS KMS지원하는 방법에 대한 자세한 내용은AWS Key Management Service엔드포인트 및 할당량의AWS일반 참조.

예를 들어 다음 키 정책 문은kms:ReplicaRegion조건 키를 사용하여 보안 주체가복제 키값이 경우에만 작업을 수행할 수 있습니다.ReplicaRegion매개 변수는 지정된 지역 중 하나입니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Administrator" }, "Action": "kms:ReplicateKey" "Resource": "*", "Condition": { "StringEquals": { "kms:ReplicaRegion": { "us-east-1", "eu-west-3", "ap-southeast-2" } } } }

이 조건 키는복제 키작업을 실행합니다. 에 대한 액세스 제어업데이트기본 영역작업에 대한 자세한 내용은KMS:주 지역조건 키를 사용합니다.

kms:RetiringPrincipal

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:RetiringPrincipal

문자열(목록)

단일 값

CreateGrant

키 정책 및 IAM 정책

이 조건 키를 사용하여CreateGrant값을 기준으로 작업RetiringPrincipal요청에 파라미터를 포함시킵니다. 예를 들면 CreateGrant 요청의 RetiringPrincipal이 조건문의 RetiringPrincipal과 일치할 때만 사용자에게 CMK 사용 권한을 생성하도록 허용할 수 있습니다.

다음 예제 키 정책 문은 사용자가 CMK에 대한 권한을 생성하도록 허용합니다. kms:RetiringPrincipal 조건 키는 권한 부여의 중단 주체가 LimitedAdminRole 또는 OpsAdmin 사용자 인 CreateGrant 요청에 대한 권한을 제한합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:RetiringPrincipal": [ "arn:aws:iam::111122223333:role/LimitedAdminRole", "arn:aws:iam::111122223333:user/OpsAdmin" ] } } }

다음 사항도 참조하세요.

kms:SigningAlgorithm

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:SigningAlgorithm

문자열

단일 값

Sign

Verify

키 정책 및 IAM 정책

kms:SigningAlgorithm조건 키를 사용 하 여 액세스를 제어 하는Sign확인값을 기준으로 작업을 수행할 수 있습니다.SigningAlgorithm요청에 파라미터를 포함시킵니다. 이 조건 키는 AWS KMS 외부에서 비대칭 CMK 페어의 퍼블릭 키를 사용하여 서명을 확인하는 경우와 같이 AWS KMS 외부에서 수행되는 작업에는 영향을 주지 않습니다.

다음 예제 키 정책은 요청에 사용된 서명 알고리즘이 RSASSA_PSS_SHA512 같은 RSASSA_PSS 알고리즘인 경우에만 testers 역할을 수임할 수 있는 사용자가 CMK를 사용하여 메시지에 서명하도록 허용합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/testers" }, "Action": "kms:Sign", "Resource": "*", "Condition": { "StringLike": { "kms:SigningAlgorithm": "RSASSA_PSS*" } } }

다음 사항도 참조하세요.

kms:ValidTo

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:ValidTo

타임스탬프

단일 값

ImportKeyMaterial

키 정책 및 IAM 정책

kms:ValidTo조건 키에 대 한 액세스를 제어ImportKeyMaterial값을 기준으로 작업을 수행할 수 있습니다.ValidTo파라미터가 요청에서 가져온 키 자료가 만료되는 시기를 결정합니다. 이 값은 Unix 시간으로 표현됩니다.

기본적으로 ValidTo 파라미터는 ImportKeyMaterial 요청에서 필요합니다. 하지만 ExpirationModel 파라미터의 값이 KEY_MATERIAL_DOES_NOT_EXPIRE이면 ValidTo 파라미터가 유효하지 않습니다. 또한 kms:ExpirationModel 조건 키를 사용하여 ExpirationModel 파라미터 또는 특정 파라미터 값을 요구할 수도 있습니다.

다음 예제 키 정책 문을 사용하면 키 재료를 CMK로 가져올 수 있습니다. kms:ValidTo 조건 키는 ValidTo 값이 1546257599.0 (2018년 12월 31일 11:59:59 PM)보다 작거나 같은 ImportKeyMaterial 요청에 대한 권한을 제한합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "NumericLessThanEquals": { "kms:ValidTo": "1546257599.0" } } }

다음 사항도 참조하세요.

kms:ViaService

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:ViaService

문자열

단일 값

CMK 리소스 작업

키 정책 및 IAM 정책

kms:ViaService 조건 키는 AWS KMS 고객 마스터 키(CMK)의 사용을 지정된 AWS 서비스로부터의 요청으로 제한합니다. 각 kms:ViaService 조건 키에 하나 이상의 서비스를 지정할 수 있습니다. 작업은 특정 CMK에 대해 승인된 작업인 CMK 리소스 작업이어야 합니다. CMK 리소스 작업을 식별하려면 작업 및 리소스 테이블에서, 해당 작업에 대한 Resources 열에서 CMK 값을 찾습니다.

예를 들어 다음 키 정책 문은kms:ViaService조건 키를 사용하여고객 관리형 CMK를 대신해 미국 서부 (오레곤) 지역의 Amazon EC2 또는 Amazon RDS에서 요청을 수신하는 경우에만 지정된 작업에 사용할 수 있도록ExampleUser.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:ListGrants", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "ec2.us-west-2.amazonaws.com", "rds.us-west-2.amazonaws.com" ] } } }

또한 kms:ViaService 조건 키를 사용하여 요청이 특정 서비스에서 이루어지는 경우 CMK를 사용할 권한을 거부할 수도 있습니다. 예를 들어 키 정책에서 다음 정책 문은 kms:ViaService 조건 키를 사용하여 요청이 AWS Lambda에서 ExampleUser 대신 이루어지는 경우 고객 관리형 CMK를 Encrypt 작업에 대해 사용하는 것을 금지합니다.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": [ "kms:Encrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "lambda.us-west-2.amazonaws.com" ] } } }
중요

를 사용할 때kms:ViaService조건 키를 사용하여 보안 주체 대신 요청을 AWS 계정 . 이러한 보안 주체는 다음 권한을 가져야 합니다.

  • CMK 사용 권한. 보안 주체는 서비스가 보안 주체 대신 고객 관리형 CMK를 사용할 수 있도록 이러한 권한을 통합 서비스에 부여해야 합니다. 자세한 내용은 AWS 서비스의 AWS KMS 활용 방식 단원을 참조하십시오.

  • 통합 서비스 사용 권한. 사용자에게 AWS와 통합된 AWS KMS 서비스에 액세스할 수 있는 권한을 부여하는 방법에 대한 세부 정보는 통합 서비스의 설명서를 참조하십시오.

모두AWS관리형 CMK를 사용합니다.kms:ViaService조건 키를 키 정책 문서에 추가합니다. 이 조건은 CMK가 생성된 서비스에서 이루어지는 요청에만 CMK를 사용하도록 허용합니다. 키 정책을 보려면AWS관리되는 CMK의 경우GetKeyPolicy작업을 실행합니다.

kms:ViaService 조건 키는 IAM 및 키 정책 설명에서 유효합니다. 사용자가 지정한 서비스가 AWS KMS와 통합되고 kms:ViaService 조건 키를 지원해야 합니다.

kms:ViaService 조건 키를 지원하는 서비스

다음 표에는AWS와 통합 된 서비스AWS KMS를 사용할 수 있도록kms:ViaService고객 관리형 CMK에서 조건 키를 확인합니다. 이 표에 수록된 서비스는 일부 리전에 제공되지 않을 수 있습니다. 사용.amazonaws.com접미사AWS KMS모든 ViaService 이름AWS파티션을 사용합니다.

참고

이 테이블의 모든 데이터를 보려면 가로 또는 세로로 스크롤해야 할 수도 있습니다.

서비스 이름 AWS KMSViaService Name
AWS App Runner apprunner.AWS_region.amazonaws.com
Amazon AppFlow appflow를 사용합니다.AWS_region.amazonaws.com
Amazon 애플리케이션 마이그레이션 서비스 MGN.AWS_region.amazonaws.com
Amazon Athena athena.AWS_region.amazonaws.com
AWS Audit Manager 감사 관리자를 선택합니다.AWS_region.amazonaws.com
Amazon Aurora rds.AWS_region.amazonaws.com
AWS Backup backup.AWS_region.amazonaws.com
AWS CodeArtifact CodeArtifact.AWS_region.amazonaws.com
Amazon CodeGuru 검토자 코드전문가 검토자AWS_region.amazonaws.com
Amazon Comprehend 이해합니다.AWS_region.amazonaws.com
Amazon Connect connect.AWS_region.amazonaws.com
AWS Database Migration Service (AWS DMS) dms.AWS_region.amazonaws.com
AWS Directory Service directoryservice.AWS_region.amazonaws.com
Amazon DynamoDB dynamodb.AWS_region.amazonaws.com
Amazon EC2 Systems Manager (SSM) ssm.AWS_region.amazonaws.com
Amazon Elastic Block Store(Amazon EBS) ec2.AWS_region.amazonaws.com (EBS only)
Amazon Elastic Container Registry (Amazon ECR) ECRAWS_region.amazonaws.com
Amazon Elastic File System (Amazon EFS) elasticfilesystem.AWS_region.amazonaws.com
Amazon Elastic Kubernetes Service (Amazon EKS) EKS.AWS_region.amazonaws.com
Amazon ElastiCache

조건 키 값에 ViaService 이름을 모두 포함합니다.

  • ElastiCache.AWS_region.amazonaws.com

  • DAX.AWS_region.amazonaws.com

Amazon Elasticsearch Service (Amazon ES) es.AWS_region.amazonaws.com
Amazon FinSpace 핀스페이스AWS_region.amazonaws.com
Amazon Forecast 예측을 사용합니다.AWS_region.amazonaws.com
Amazon FSx fsx.AWS_region.amazonaws.com
AWS Glue glue.AWS_region.amazonaws.com
Amazon HealthLake Healthlake.AWS_region.amazonaws.com
AWS IoT SiteWise IotSiteWise.AWS_region.amazonaws.com
Amazon Kendra KendraAWS_region.amazonaws.com
Amazon Kinesis kinesis.AWS_region.amazonaws.com
Amazon Kinesis Data Firehose - FirehoseAWS_region.amazonaws.com
Amazon Kinesis Video Streams kinesisvideo.AWS_region.amazonaws.com
AWS Lambda lambda.AWS_region.amazonaws.com
Amazon Lex lex.AWS_region.amazonaws.com
AWS License Manager 라이선스 매니저로 이동합니다.AWSws_region.amazonaws.com
Amazon Lookout for Equipment 전망대.AWSws_region.amazonaws.com
Amazon Lookout for Metrics lookoutMetrics.AWSws_region.amazonaws.com
Amazon Lookout for Vision 전망비전입니다.AWSws_region.amazonaws.com
Amazon Managed Blockchain 관리된 블록 체인.AWSws_region.amazonaws.com
Amazon Managed Streaming for Apache Kafka(Amazon MSK) kafka.AWS_region.amazonaws.com
Amazon Managed Workflows for Apache Airflow(MWAA) 공기 흐름.AWSws_region.amazonaws.com
Amazon Monitron 모니터.AWSws_region.amazonaws.com
Amazon MQ MQAWSws_region.amazonaws.com
Amazon Neptune rds.AWS_region.amazonaws.com
Amazon Nimble Studio 민첩한.AWSws_region.amazonaws.com
AWS Proton 양성자.AWSws_region.amazonaws.com
Amazon RDS 성능 개선 도우미 rds.AWS_region.amazonaws.com
Amazon Redshift redshift.AWS_region.amazonaws.com
Amazon Rekognition rekognition.AWSws_region.amazonaws.com
Amazon Relational Database Service (Amazon RDS) rds.AWS_region.amazonaws.com
AWS Secrets Manager secretsmanager.AWS_region.amazonaws.com
Amazon Simple Email Service(Amazon SES) ses.AWS_region.amazonaws.com
Amazon Simple Notification Service (Amazon SNS) sns.AWS_region.amazonaws.com
Amazon Simple Queue Service (Amazon SQS) sqs.AWS_region.amazonaws.com
Amazon Simple Storage Service (Amazon S3) s3.AWS_region.amazonaws.com
AWS Snowball importexport.AWS_region.amazonaws.com
AWS Storage Gateway 스토리지 게이트웨이.AWSws_region.amazonaws.com
AWS Systems Manager Incident Manager ssm-인시던트입니다.AWSws_region.amazonaws.com
AWS Systems Manager Incident Manager연락처 ssm-연락처AWSws_region.amazonaws.com
Amazon Timestream 타임스트림을 사용합니다.AWSws_region.amazonaws.com
Amazon WorkMail workmail.AWS_region.amazonaws.com
Amazon WorkSpaces workspaces.AWS_region.amazonaws.com
AWS X-Ray xray.AWS_region.amazonaws.com

kms:WrappingAlgorithm

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:WrappingAlgorithm

문자열

단일 값

GetParametersForImport

키 정책 및 IAM 정책

이 조건 키는GetParametersForImport값을 기준으로 작업을 수행할 수 있습니다.WrappingAlgorithm요청에 파라미터를 포함시킵니다. 이 조건을 사용하여 보안 주체가 가져오기 프로세스 중에 특정 알고리즘을 사용하여 키 자료를 암호화하도록 요구할 수 있습니다. 다른 래핑 알고리즘을 지정하면 필수 퍼블릭 키 및 가져오기 토큰에 대한 요청이 실패합니다.

다음 예제 키 정책 명령문은kms:WrappingAlgorithm조건 키를 사용하여 예제 사용자에게GetParametersForImport작업을 수행 할 수 있지만RSAES_OAEP_SHA_1래핑 알고리즘. GetParametersForImport 요청의 WrappingAlgorithmRSAES_OAEP_SHA_1이면 작업이 실패합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:GetParametersForImport", "Resource": "*", "Condition": { "StringNotEquals": { "kms:WrappingAlgorithm": "RSAES_OAEP_SHA_1" } } }

다음 사항도 참조하세요.

kms:WrappingKeySpec

AWS KMS 조건 키 조건 유형 값 유형 API 작업 정책 유형

kms:WrappingKeySpec

문자열

단일 값

GetParametersForImport

키 정책 및 IAM 정책

이 조건 키는GetParametersForImport값을 기준으로 작업을 수행할 수 있습니다.WrappingKeySpec요청에 파라미터를 포함시킵니다. 가져 오기 프로세스 중에 공개 키의 특정 유형을 사용하는 사용자를 요구하는 이 조건을 사용할 수 있습니다. 요청에서 다른 키 유형을 지정하면 실패합니다.

WrappingKeySpec 파라미터 값에 사용할 수 있는 값은 RSA_2048뿐이므로 실제로 사용자에게 이 값을 실제로 사용하지 못하도록 할 경우 사용자가 GetParametersForImport 작업을 사용할 수 없게 됩니다.

다음 예제 정책 설명은 kms:WrappingAlgorithm 조건 키를 사용하여 요청의 WrappingKeySpecRSA_2048이 되도록 요구합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:GetParametersForImport", "Resource": "*", "Condition": { "StringEquals": { "kms:WrappingKeySpec": "RSA_2048" } } }

다음 사항도 참조하세요.

AWS KMS의 조건 키AWSNitro Enclaves

AWSNitro Enclaves는 Amazon EC2 기능으로,영토를 사용하여 매우 민감한 데이터를 보호하고 처리할 수 있습니다.AWS KMS는 지원하는 조건 키를 제공합니다.AWSNitro Enclaves. 에 대한 요청이 경우에만 이러한 조건 키가 작동AWS KMS작업은 영토에서 시작됩니다.

호출 할 때kms-decrypt,kms-generate-data-key또는kms-generate-random AWSNitro EnclavesAPI를 사용하는 경우 이러한 API는 해당AWS KMS서명 된 포함 된 매개 변수를 사용 하 여 작업증명 문서에서 가져옵니다. 서명된 증명 문서는 영토의 신원을 증명합니다.AWS KMS.

다음 조건 키를 사용하면 서명된 증명 문서의 내용에 따라 이러한 작업에 대한 사용 권한을 제한할 수 있습니다. 작업을 허용하기 전에AWS KMS는 영토의 증명 문서를 이 문서의 값과 비교합니다.AWS KMS조건 키

KMS:수신자:이미지샤384

AWS KMS 조건 키 조건 유형 값 유형 API 연산 정책 유형

kms:RecipientAttestation:ImageSha384

문자열

단일 값

Decrypt

GenerateDataKey

GenerateRandom

키 정책 및 IAM 정책

kms:RecipientAttestation:ImageSha384조건 키 허용kms-decrypt,kms-generate-data-key, 및kms-generate-random요청에 있는 서명된 증명 문서의 이미지 해시가 조건 키의 값과 일치하는 경우에만 영토에서 요청을 보냅니다. 이ImageSha384값은 증명 문서의 PCR [0] 에 해당합니다. 이 조건 키는 호출할 때만 유효합니다AWS니트로는 영토에서 SDK API를 영토.

예를 들어 다음 키 정책 문은data-processing역할에 대해 CMK를 사용하도록kms-decrypt(암호화 해제),kms-generate-data-key(GenerateDataKey) 및kms-generate-random(GenerateRandom) 작업에 대해 설명합니다. 이kms:RecipientAttestation:ImageSha384조건 키는 요청에 있는 증명 문서의 이미지 해시 값 (PCR [0]) 이 조건의 이미지 해시 값과 일치하는 경우에만 작업을 허용합니다.

요청에 증명 문서가 포함되어 있지 않은 경우 이 조건이 충족되지 않으므로 사용 권한이 거부됩니다.

{ "Sid" : "Enable enclave data processing", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:role/data-processing" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateRandom" ], "Resource" : "*", "Condition": { "StringEqualsIgnoreCase": { "kms:RecipientAttestation:ImageSha384": "9fedcba8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef1abcdef0abcdef1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef99" } } }

KMS:받는 사람 스테이션:PCR <PCR_ID>

AWS KMS 조건 키 조건 유형 값 유형 API 연산 정책 유형

kms:RecipientAttestation:PCR

문자열

단일 값

Decrypt

GenerateDataKey

GenerateRandom

키 정책 및 IAM 정책

kms:RecipientAttestation:PCR<PCR_ID>조건 키 허용kms-decrypt,kms-generate-data-key, 및kms-generate-random요청에 포함된 서명된 증명 문서의 PCR (플랫폼 구성 등록) 이 조건 키의 PCR과 일치하는 경우에만 영토의 요청을 수행할 수 있습니다. 이 조건 키는 호출할 때만 유효합니다AWS니트로는 영토에서 SDK API를 영토.

PCR 값을 지정하려면 다음 형식을 사용합니다. PCR ID를 조건 키 이름에 연결합니다. PCR 값은 최대 96바이트의 소문자 16진수 문자열이어야 합니다.

"kms:RecipientAttestation:PCRPCR_ID": "PCR_value"

예를 들어, 다음 조건 키는 PCR [1] 의 특정 값을 지정합니다. 이 값은 Enclave 및 부트스트랩 프로세스에 사용되는 커널의 해시에 해당합니다.

kms:RecipientAttestation:PCR1: "0x1abcdef2abcdef3abcdef4abcdef5abcdef6abcdef7abcdef8abcdef9abcdef8abcdef7abcdef6abcdef5abcdef4abcdef3abcdef2abcdef1abcdef0abcde"

다음 예제 키 정책 명령문은data-processing역할에 대해 CMK를 사용하도록kms-decrypt(암호화 해제) 작업을 사용합니다.

kms:RecipientAttestation:PCR조건 키는 요청에서 서명된 증명 문서의 PCR1 값이 일치하는 경우에만 작업을 허용합니다.kms:RecipientAttestation:PCR1값을 조건으로 지정합니다. 사용StringEqualsIgnoreCase정책 연산자를 사용하여 PCR 값의 대/소문자를 구분하지 않는 비교를 요구할 수 있습니다.

요청에 증명 문서가 포함되어 있지 않은 경우 이 조건이 충족되지 않으므로 사용 권한이 거부됩니다.

{ "Sid" : "Enable enclave data processing", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:role/data-processing" }, "Action": "kms:Decrypt", "Resource" : "*", "Condition": { "StringEqualsIgnoreCase": { "kms:RecipientAttestation:PCR1": "0x1de4f2dcf774f6e3b679f62e5f120065b2e408dcea327bd1c9dddaea6664e7af7935581474844767453082c6f1586116376cede396a30a39a611b9aad7966c87" } } }