기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS KMS 조건 키
AWS KMS 키 정책 및 IAM 정책에 사용할 수 있는 조건 키 세트를 제공합니다. 이러한 조건 키는 에만 해당됩니다 AWS KMS. 예를 들어 kms:EncryptionContext:context-key
조건 키를 사용하여 대칭 암호화 키에 대한 액세스를 제어할 때 특정 암호화 컨텍스트를 요구할 수 있습니다. KMS
API작업 요청 조건
많은 AWS KMS 조건 키는 AWS KMS 작업 요청의 파라미터 값을 기반으로 KMS 키에 대한 액세스를 제어합니다. 예를 들어 CreateKey
요청의 KeySpec
파라미터 값이 다음과 같은 경우에만 CreateKey작업 사용을 허용하도록 IAM 정책에 kms: KeySpec condition 키를 사용할 수 있습니다. RSA_4096
이 유형의 조건은 파라미터의 기본값을 사용하는 경우와 같이 요청에 파라미터가 나타나지 않는 경우에도 작동합니다. 예를 들어 kms: KeySpec condition 키를 사용하면 KeySpec
파라미터 값이 기본값인 경우에만 사용자가 CreateKey
작업을 사용하도록 허용할 수 있습니다. SYMMETRIC_DEFAULT
이 조건은 KeySpec
파라미터 값이 SYMMETRIC_DEFAULT
인 요청과 KeySpec
파라미터가 없는 요청을 허용합니다.
작업에 사용되는 KMS 키의 API 조건
일부 AWS KMS 조건 키는 작업에 사용되는 키의 속성을 기반으로 작업에 대한 액세스를 제어할 수 있습니다. KMS 예를 들어 kms: KeyOrigin 조건을 사용하여 보안 주체가 해당 키인 경우에만 보안 주체가 KMS 키를 GenerateDataKey호출하도록 허용할 수 있습니다. Origin
KMS AWS_KMS
이러한 방식으로 조건 키를 사용할 수 있는지 확인하려면 조건 키의 설명을 참조하십시오.
작업은 KMS키 리소스 작업, 즉 특정 키에 대해 승인된 작업이어야 합니다. KMS KMS주요 리소스 작업을 식별하려면 작업 및 리소스 테이블에서 해당 작업의 Resources
열에 있는 값을 찾으십시오. KMS key
예를 들어 특정 키 리소스에 대해 승인되지 않은 작업에 이 유형의 조건 KMS 키를 사용하면 조건을 충족할 수 없으므로 권한이 유효하지 않습니다. ListKeys ListKeys
작업 승인에 관련된 KMS 주요 리소스도 없고 KeySpec
속성도 없습니다.
다음 항목에서는 각 AWS KMS 조건 키에 대해 설명하고 정책 구문을 보여주는 예제 정책 설명을 포함합니다.
조건 키와 함께 집합 연산자 사용
정책 조건에서 요청의 태그 집합과 정책의 태그 집합과 같은 두 값 집합을 비교할 때는 두 집합을 비교하는 AWS 방법을 알아야 합니다. IAM이를 위해 두 개의 집합 연산자를 정의합니다. ForAnyValue
ForAllValues
세트 연산자는 세트 연산자를 필요로 하는 다중값 조건 키(multi-valued condition keys)에만 사용합니다. 단일 값 조건 키(single-valued condition keys)에는 집합 연산자를 사용하지 마세요. 항상 정책문을 프로덕션 환경에서 사용하기 전에 철저히 테스트합니다.
조건 키는 단일 값이거나 다중 값입니다. AWS KMS 조건 키가 단일 값인지 다중 값인지 확인하려면 조건 키 설명의 값 유형 열을 참조하십시오.
-
단일 값 조건 키는 권한 부여 컨텍스트(요청 또는 리소스)에서 최대 하나의 값을 갖습니다. 예를 들어 각 API 호출은 AWS 계정하나에서만 발생할 수 있으므로 CallerAccountkms:는 단일 값 조건 키입니다. 단일 값 조건 키(single-valued condition keys)에는 집합 연산자를 사용하지 마세요.
-
다중 값 조건 키는 권한 부여 컨텍스트(요청 또는 리소스)에서 여러 값을 갖습니다. 예를 들어 각 KMS 키에 여러 별칭이 있을 수 있으므로 kms:는 여러 값을 가질 ResourceAliases 수 있습니다. 다중값 조건 키에는 집합 연산자가 필요합니다.
단일 값 조건 키와 다중값 조건 키의 차이는 정책 조건의 값 수가 아니라 권한 부여 컨텍스트의 값 수에 따라 달라집니다.
주의
단일 값 조건 키와 함께 집합 연산자를 사용하면 지나치게 허용 (또는 지나치게 제한적인) 정책문을 만들 수 있습니다. 집합 연산자는 다중값 조건 키(multi-valued condition keys)에만 사용합니다.
kms:EncryptionContext: 컨텍스트 키 또는 aws:RequestTag/tag-key
조건 키를 사용하여 ForAllValues
집합 연산자를 포함하는 정책을 만들거나 업데이트하면 다음 오류 메시지가 반환됩니다. 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.
ForAnyValue
및 ForAllValues
세트 연산자에 대한 자세한 내용은 사용 설명서의 다중 키 및 값 사용을 참조하십시오. IAM 단일 값 조건의 ForAllValues
집합 연산자를 사용할 때의 위험에 대한 자세한 내용은 사용 설명서의 IAM 보안 경고 — ForAllValues 단일 값 키 사용을 참조하십시오.
주제
- kms: BypassPolicyLockoutSafetyCheck
- kms: CallerAccount
- kms: CustomerMasterKeySpec (더 이상 사용되지 않음)
- kms: CustomerMasterKeyUsage (더 이상 사용되지 않음)
- kms: DataKeyPairSpec
- kms: EncryptionAlgorithm
- kmsEncryptionContext: 컨텍스트 키
- kms: EncryptionContextKeys
- kms: ExpirationModel
- kms: GrantConstraintType
- kms: GrantIsFor AWSResource
- kms: GrantOperations
- kms: GranteePrincipal
- kms: KeyAgreementAlgorithm
- kms: KeyOrigin
- kms: KeySpec
- kms: KeyUsage
- kms: MacAlgorithm
- kms: MessageType
- kms: MultiRegion
- kms: MultiRegionKeyType
- kms: PrimaryRegion
- kms: ReEncryptOnSameKey
- kms: RequestAlias
- kms: ResourceAliases
- kms: ReplicaRegion
- kms: RetiringPrincipal
- kms: RotationPeriodInDays
- kms: ScheduleKeyDeletionPendingWindowInDays
- kms: SigningAlgorithm
- kms: ValidTo
- kms: ViaService
- kms: WrappingAlgorithm
- kms: WrappingKeySpec
kms: BypassPolicyLockoutSafetyCheck
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
부울 |
단일 값 |
|
IAM 정책만 해당 키 정책 및 IAM 정책 |
kms:BypassPolicyLockoutSafetyCheck
조건 키는 요청의 BypassPolicyLockoutSafetyCheck
파라미터 값을 기반으로 CreateKey및 PutKeyPolicy작업에 대한 액세스를 제어합니다.
다음 예제 IAM 정책 설명은 요청의 BypassPolicyLockoutSafetyCheck
매개변수 값이 다음과 같을 때 KMS 키 생성 권한을 거부하여 사용자가 정책 잠금 안전 검사를 우회하지 못하도록 합니다. CreateKey
true.
{ "Effect": "Deny", "Action": [ "kms:CreateKey", "kms:PutKeyPolicy" ], "Resource": "*", "Condition": { "Bool": { "kms:BypassPolicyLockoutSafetyCheck": true } } }
또한 IAM 정책 또는 키 정책에서 kms:BypassPolicyLockoutSafetyCheck
조건 키를 사용하여 작업에 대한 액세스를 제어할 수 있습니다. PutKeyPolicy
키 정책의 다음 예제 정책 설명은 사용자가 키 정책을 변경할 때 정책 잠금 안전 검사를 우회하지 못하도록 합니다. KMS
명시적 Deny
를 사용하는 대신에, 이 정책문에서는 Null 조건 연산자와 Allow
를 함께 사용하여 요청에 BypassPolicyLockoutSafetyCheck
파라미터가 포함되지 않을 때만 액세스를 허용합니다. 이 파라미터를 사용하지 않는 경우 기본값은 false
입니다. 이와 같이 강도가 조금 낮은 정책문은 극히 드문 경우지만 우회가 필요할 경우 재정의할 수 있습니다.
{ "Effect": "Allow", "Action": "kms:PutKeyPolicy", "Resource": "*", "Condition": { "Null": { "kms:BypassPolicyLockoutSafetyCheck": true } } }
참고 항목
kms: CallerAccount
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
KMS주요 자원 운영 사용자 지정 키 스토어 작업 |
키 정책 및 IAM 정책 |
이 조건 키를 사용해 AWS 계정의 모든 ID(사용자와 역할)에 대한 액세스를 허용하거나 거부할 수 있습니다. 키 정책에서 Principal
요소를 이용해 정책문이 적용될 자격 증명을 지정합니다. Principal
요소에 대한 구문은 AWS 계정의 모든 자격 증명을 지정하는 방법을 제공하지 않지만, 하지만 이 조건 키를 모든 AWS ID를 지정하는 Principal
요소와 결합하면 이러한 효과를 얻을 수 있습니다.
이를 사용하여 모든 KMS키 리소스 작업, 즉 특정 KMS 키를 사용하는 모든 AWS KMS 작업에 대한 액세스를 제어할 수 있습니다. KMS주요 리소스 작업을 식별하려면 작업 및 리소스 테이블에서 해당 작업의 Resources
열에 있는 값을 찾으십시오. KMS key
사용자 지정 키 스토어를 관리하는 작업에도 유효합니다.
예를 들어 다음 키 정책문은 kms:CallerAccount
조건 키를 사용하는 방법을 보여줍니다. 이 정책은 AWS 관리형 키 Amazon용 주요 정책에 포함되어 EBS 있습니다. 모든 AWS ID를 지정하는 Principal
요소와 kms:CallerAccount
조건 키를 결합하여 111122223333의 모든 ID에 대한 액세스를 효과적으로 허용합니다. AWS 계정 Amazon을 통해 들어오는 요청만 허용하여 권한을 추가로 제한하는 추가 AWS KMS 조건 키 (kms:ViaService
) 가 포함되어 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 (더 이상 사용되지 않음)
kms:CustomerMasterKeySpec
조건 키는 더 이상 사용되지 않습니다. 대신 kms: 조건 키를 사용하세요. KeySpec
kms:CustomerMasterKeySpec
및 kms:KeySpec
조건 키는 같은 방식으로 작동하며, 이름만 다릅니다. kms:KeySpec
을 사용할 것을 권장합니다. 하지만 주요 변경 사항을 방지하기 위해 에서는 두 조건 키를 모두 AWS KMS 지원합니다.
kms: CustomerMasterKeyUsage (더 이상 사용되지 않음)
kms:CustomerMasterKeyUsage
조건 키는 더 이상 사용되지 않습니다. 대신 kms: 조건 키를 사용하세요. KeyUsage
kms:CustomerMasterKeyUsage
및 kms:KeyUsage
조건 키는 같은 방식으로 작동하며, 이름만 다릅니다. kms:KeyUsage
을 사용할 것을 권장합니다. 하지만 주요 변경 사항을 방지하기 위해 에서는 두 조건 키를 모두 AWS KMS 지원합니다.
kms: DataKeyPairSpec
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 요청의 KeyPairSpec
파라미터 값을 기반으로 GenerateDataKeyPair및 GenerateDataKeyPairWithoutPlaintext작업에 대한 액세스를 제어할 수 있습니다. 예를 들어 사용자가 특정 유형의 데이터 키 페어만 생성하도록 허용할 수 있습니다.
다음 예제 키 정책 설명에서는 kms:DataKeyPairSpec
조건 키를 사용하여 사용자가 키를 사용하여 RSA 데이터 KMS 키 쌍만 생성할 수 있도록 허용합니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:DataKeyPairSpec": "RSA*" } } }
참고 항목
kms: EncryptionAlgorithm
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
kms:EncryptionAlgorithm
조건 키를 사용하여 작업에 사용되는 암호화 알고리즘을 기반으로 암호화 작업에 대한 액세스를 제어할 수 있습니다. 암호화, 암호 해독 및 ReEncrypt작업의 경우 요청의 EncryptionAlgorithm매개변수 값을 기반으로 액세스를 제어합니다. 데이터 키 및 데이터 키 페어를 생성하는 작업의 경우 데이터 키를 암호화하는 데 사용되는 암호화 알고리즘을 기반으로 액세스를 제어합니다.
이 조건 키는 외부에서 수행되는 비대칭 키 쌍의 KMS 공개 키를 사용하여 암호화하는 것과 같이 외부에서 수행되는 작업에는 영향을 주지 않습니다. AWS KMS AWS KMS
EncryptionAlgorithm 요청의 파라미터
사용자가 KMS 키와 함께 특정 암호화 알고리즘만 사용할 수 있도록 하려면 Deny
효과가 있는 정책 설명과 StringNotEquals
조건 연산자를 사용하십시오. 예를 들어, 다음 예제 키 정책 설명에서는 요청의 암호화 알고리즘이 키와 함께 사용되는 비대칭 암호화 알고리즘인 경우를 제외하고 ExampleRole
역할을 수임할 수 있는 보안 주체가 지정된 암호화 작업에 이 KMS 키를 사용하는 것을 금지합니다. RSAES_OAEP_SHA_256
RSA KMS
사용자가 특정 암호화 알고리즘을 사용할 수 있도록 허용하는 정책 설명과 달리, 이와 같이 이중 음수가 포함된 정책 설명은 이 KMS 키에 대한 다른 정책 및 권한 부여를 통해 이 역할이 다른 암호화 알고리즘을 사용하는 것을 허용하지 못하도록 합니다. 이 키 정책 Deny
설명의 내용은 Allow
영향을 미치는 모든 키 정책 또는 IAM 정책보다 우선하며 이 KMS 키와 해당 보안 주체에 대한 모든 부여보다 우선합니다.
{ "Sid": "Allow only one encryption algorithm with this asymmetric KMS key", "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
조건 키를 사용하여 데이터 키 및 데이터 키 페어를 생성하는 작업에 대한 액세스도 제어할 수 있습니다. 이러한 작업에는 대칭 암호화 KMS 키와 알고리즘만 사용됩니다. SYMMETRIC_DEFAULT
예를 들어 이 IAM 정책은 보안 주체를 대칭 암호화로 제한합니다. 요청에 지정되거나 작업에 사용된 암호화 알고리즘이 _인 경우를 제외하고 암호화 작업 시 예제 계정의 모든 KMS 키에 대한 액세스를 거부합니다. SYMMETRIC DEFAULT GenerateDataKey*
권한에 GenerateDataKey, GenerateDataKeyWithoutPlaintextGenerateDataKeyPair, 및 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" } } }
참고 항목
kmsEncryptionContext: 컨텍스트 키
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
kms:EncryptionContext:context-key
조건 키를 사용하여 암호화 작업 요청의 암호화 컨텍스트를 기반으로 대칭 암호화 KMS키에 대한 액세스를 제어할 수 있습니다. 이 조건 키를 사용하여 암호화 컨텍스트 페어의 키와 값을 평가합니다. 키나 값에 관계없이 암호화 컨텍스트 키만 평가하거나 암호화 컨텍스트를 요구하려면 kms: EncryptionContextKeys condition 키를 사용하십시오.
참고
비대칭 KMS 키나 키를 사용하는 암호화 작업에서는 암호화 컨텍스트를 지정할 수 없습니다. HMAC KMS 비대칭 알고리즘 및 MAC 알고리즘은 암호화 컨텍스트를 지원하지 않습니다.
kms:EncryptionContext: 컨텍스트 키 조건 키를 사용하려면 다음을 대체하십시오.context-key
암호화 컨텍스트 키가 있는 자리 표시자 교체하십시오.context-value
플레이스홀더를 암호화 컨텍스트 값으로 입력합니다.
"kms:EncryptionContext:
context-key
": "context-value
"
예를 들어, 다음 조건 키는 키가 AppName
이고 값이 ExampleApp
(AppName =
ExampleApp
)인 암호화 컨텍스트를 지정합니다.
"kms:EncryptionContext:AppName": "ExampleApp"
이것은 단일 값 조건 키입니다. 조건 키의 키는 특정 암호화 컨텍스트 키(context-key)입니다. 각 API 요청에 여러 암호화 컨텍스트 쌍을 포함할 수 있지만 지정된 컨텍스트 키가 있는 암호화 컨텍스트 쌍에는 값이 하나만 있을 수 있습니다. 예를 들어, kms:EncryptionContext:Department
조건 키는 Department
키가 있는 암호화 컨텍스트 페어에만 적용되며 Department
키가 있는 지정된 암호화 컨텍스트 페어에는 하나의 값만 있을 수 있습니다.
kms:EncryptionContext:context-key
조건 키와 함께 집합 연산자를 사용하지 마십시오. Allow
작업, kms:EncryptionContext:context-key
조건 키 및 ForAllValues
집합 연산자를 사용하여 정책문을 생성하는 경우 조건은 암호화 컨텍스트가 없는 요청과 정책 조건에 지정되지 않은 암호화 컨텍스트 페어가 있는 요청을 허용합니다.
주의
단일 값 조건 키(single-valued condition keys)에는 ForAnyValue
또는 ForAllValues
집합 연산자를 사용하지 마세요. 이러한 집합 연산자는 필요한 값을 요구하지 않고 금지하려는 값을 허용하는 정책 조건을 만들 수 있습니다.
kms:EncryptionContext: context-key를 사용하여 ForAllValues
집합 연산자를 포함하는 정책을 생성하거나 업데이트하면 다음 오류 메시지가 반환됩니다. 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.
특정 암호화 컨텍스트 페어를 요구하려면 StringEquals
연산자와 함께 kms:EncryptionContext:context-key
조건 키를 사용하세요.
다음 예제 키 정책 설명에서는 요청의 암호화 컨텍스트에 해당 쌍이 포함된 경우에만 역할을 수임할 수 있는 보안 GenerateDataKey
주체가 요청에 KMS 키를 사용할 수 있도록 허용합니다. 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: context-key와 를 모두 사용하십시오. kms:EncryptionContextKeys 다음 키 정책문은 kms:EncryptionContext:AppName
조건을 사용하여 요청에 AppName=ExampleApp
암호화 컨텍스트 페어를 요구합니다. 또한 ForAllValues
집합 연산자와 함께 kms:EncryptionContextKeys
조건 키를 사용하여 AppName
암호화 컨텍스트 키만 허용합니다.
ForAllValues
집합 연산자는 요청의 암호화 컨텍스트 키를 AppName
으로 제한합니다. ForAllValues
집합 연산자가 있는 kms:EncryptionContextKeys
조건이 정책문에서 단독으로 사용된 경우 이 집합 연산자는 암호화 컨텍스트가 없는 요청을 허용합니다. 그러나 요청에 암호화 컨텍스트가 없으면 kms:EncryptionContext:AppName
조건이 실패합니다. ForAllValues
설정 연산자에 대한 자세한 내용은 사용 설명서의 다중 키 및 값 사용을 참조하십시오. IAM
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KeyUsers" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" }, "ForAllValues:StringEquals": { "kms:EncryptionContextKeys": [ "AppName" ] } } }
이 조건 키를 사용하여 특정 작업의 키에 대한 액세스를 거부할 수도 있습니다. KMS 다음 예제 키 정책 설명은 요청의 암호화 컨텍스트에 암호화 컨텍스트 쌍이 포함된 경우 Deny
효과를 사용하여 보안 주체가 KMS 키를 사용하지 못하도록 합니다. 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 설명서의 여러 키 또는 값으로 조건 만들기를 참조하십시오.
참고
이 항목의 이전 버전에서는 kms:EncryptionContext: 컨텍스트 키 조건 키와 함께 ForAnyValue
및 ForAllValues
설정 연산자를 사용하는 정책 설명을 표시했습니다. 단일 값 조건 키와 함께 집합 연산자를 사용하면 암호화 컨텍스트가 없고 지정되지 않은 암호화 컨텍스트 페어가 없는 요청을 허용하는 정책이 생성될 수 있습니다.
예를 들어, Allow
효과가 있는 정책 조건, ForAllValues
집합 연산자 및 "kms:EncryptionContext:Department": "IT"
조건 키가 암호화 컨텍스트를 "Department=IT" 페어로 제한하지 않습니다. 암호화 컨텍스트가없는 요청과 지정되지 않은 암호화 컨텍스트 쌍을 사용하는 요청(예: Stage=Restricted
)을 허용합니다.
정책을 검토하여 kms:: context-key를 사용하는 모든 조건에서 집합 연산자를 제거하세요. EncryptionContext 이 형식의 정책을 생성하거나 업데이트하려는 시도는 OverlyPermissiveCondition
예외와 함께 실패합니다. 오류를 해결하려면 집합 연산자를 삭제합니다.
여러 암호화 컨텍스트 쌍을 요구하려면 동일한 조건의 쌍을 나열합니다. 다음 예제 키 정책문에는 두 개의 암호화 컨텍스트 쌍인 Department=IT
와 Project=Alpha
가 필요합니다. 조건마다 키 (kms:EncryptionContext:Department
및kms: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: context-key와 정책 설명문을 모두 사용하십시오. kms:EncryptionContextKeys 다음 키 정책 설명에서는 kms:EncryptionContext: context-key 조건을 사용하여 AND 쌍을 모두 포함하는 암호화 컨텍스트를 요구합니다. Department=IT
Project=Alpha
ForAllValues
집합 연산자와 함께 kms:EncryptionContextKeys
조건 키를 사용하여 Department
및 Project
암호화 컨텍스트 키만 허용합니다.
ForAllValues
집합 연산자는 요청의 암호화 컨텍스트 키를 Department
및 Project
으로 제한합니다. 조건에서 이 집합 연산자만 사용하는 경우 이 집합 연산자는 암호화 컨텍스트가 없는 요청을 허용하지만 이 구성에서는 kms:: context-key가 이 조건의 kms:EncryptionContext: context-key가 실패합니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Department": "IT", "kms:EncryptionContext:Project": "Alpha" }, "ForAllValues:StringEquals": { "kms:EncryptionContextKeys": [ "Department", "Project" ] } } }
여러 암호화 컨텍스트 쌍을 금지할 수도 있습니다. 다음 예제 키 정책 설명에서는 요청의 암호화 컨텍스트에 a 또는.pair가 포함된 경우 Deny
효과를 사용하여 보안 주체가 KMS 키를 사용하지 못하도록 합니다. Stage=Restricted
Stage=Production
동일한 키(kms:EncryptionContext:Stage
)에 대한 여러 값(Restricted
및 Production
)은 암시적으로 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:
접두사와 다음으로 구성된 조건 키는
대체는 대소문자를 구분하지 않습니다. 이 조건을 사용하는 정책은 조건 키의 두 요소의 대소문자를 검사하지 않습니다. 값의 대소문자 구분, 즉 컨텍스트 키
대체는 정책 조건 연산자에 의해 결정됩니다.문맥-값
예를 들어 다음 정책 명령문은 대문자 사용에 관계없이 암호화 컨텍스트에 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 policy 조건에 대소문자를 구분하는 조건 연산자 (예:) 를 사용하십시오. StringEquals
이 정책 조건에서는 암호화 컨텍스트 키가 이 정책 조건의 값이기 때문에 대소문자 구분은 조건 연산자에 의해 결정됩니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "AppName" } } }
암호화 컨텍스트 키와 값 모두에 대해 대소문자를 구분하여 평가하도록 하려면 동일한 정책 설명에서 kms:EncryptionContextKeys
및 kms:EncryptionContext: 컨텍스트 키 정책 조건을 함께 사용하십시오. 대소문자를 구분하는 조건 연산자(예: StringEquals
)는 항상 조건의 값에 적용됩니다. 암호화 컨텍스트 키(예: AppName
)는 kms:EncryptionContextKeys
조건의 값입니다. 암호화 컨텍스트 값 (예:ExampleApp
) 은 kms:: 컨텍스트 키 조건의 값입니다. EncryptionContext
예를 들어, 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
은 호출자의 표시 이름으로 확인됩니다.
이러한 정책 변수를 사용하여 암호화 컨텍스트에서 매우 구체적인 정보(예: 호출자의 사용자 이름)를 요구하는 조건을 포함하는 정책 문을 생성할 수 있습니다. 변수를 포함하기 때문에 특정 역할을 수임할 수 있는 모든 사용자에 동일한 정책 문을 사용할 수 있습니다. 사용자마다 따로 정책 문을 작성할 필요가 없습니다.
역할을 맡을 수 있는 모든 사용자가 동일한 KMS 키를 사용하여 데이터를 암호화하고 복호화하기를 원하는 상황을 생각해 보십시오. 그러나 모든 사용자가 직접 암호화한 데이터만 암호화를 해제하도록 허용하려고 합니다. 먼저 모든 요청에 다음과 같이 키가 user
있고 값이 호출자의 AWS 사용자 이름인 암호화 컨텍스트를 AWS KMS 포함하도록 요구하는 것부터 시작하십시오.
"encryptionContext": { "user": "bob" }
그런 다음 이 요구 사항을 시행하려면 다음 예제와 같은 정책 문을 사용할 수 있습니다. 이 정책 설명문은 키를 사용하여 데이터를 암호화하고 해독할 수 있는 권한을 TestTeam
역할에 부여합니다. KMS 그러나 이 권한은 요청의 암호화 컨텍스트가 "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
키에는 변수를 사용할 수 없습니다.
또한 변수에 공급자별 컨텍스트 키를 사용할 수도 있습니다. 이러한 컨텍스트 키는 웹 ID 페더레이션을 사용하여 AWS 로그인한 사용자를 고유하게 식별합니다.
다른 모든 변수와 마찬가지로 이러한 변수도 실제 암호화 컨텍스트가 아니라 kms:EncryptionContext:context-key
정책 조건에서만 사용할 수 있습니다. 또한 키가 아니라 조건의 값에만 사용할 수 있습니다.
예를 들어 다음 키 정책 문은 이전 것과 비슷합니다. 그러나 조건은 키가 sub
이고 값이 Amazon Cognito 사용자 풀에 로그인한 사용자를 고유하게 식별하는 암호화 컨텍스트를 요구합니다. Amazon Cognito에서 사용자 및 역할을 식별하는 방법에 대한 자세한 내용은 Amazon Cognito 개발자 안내서의 IAM역할을 참조하십시오.
{ "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오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
문자열(목록) |
다중 값 |
|
키 정책 및 IAM 정책 |
kms:EncryptionContextKeys
조건 키를 사용하여 암호화 작업 요청의 암호화 컨텍스트를 기반으로 대칭 암호화 KMS 키에 대한 액세스를 제어할 수 있습니다. 이 조건 키를 사용하여 각 암호화 컨텍스트 페어의 키만 평가하십시오. 암호화 컨텍스트의 키와 값을 평가하려면 이 kms:EncryptionContext:context-key
조건 키를 사용합니다.
비대칭 KMS 키나 키를 사용하여 암호화 작업에서 암호화 컨텍스트를 지정할 수 없습니다. HMAC KMS 비대칭 알고리즘 및 MAC 알고리즘은 암호화 컨텍스트를 지원하지 않습니다.
참고
이는 다중 값 조건 키입니다. 각 API 요청에서 여러 암호화 컨텍스트 쌍을 지정할 수 있습니다. kms:EncryptionContextKeys
요청의 암호화 컨텍스트 키를 정책의 암호화 컨텍스트 키 세트와 비교합니다. 이러한 집합이 비교되는 방법을 확인하려면 정책 조건에서 ForAnyValue
또는 ForAllValues
연산자를 제공해야 합니다. 집합 연산자에 대한 자세한 내용은 사용 설명서의 IAM다중 키 및 값 사용을 참조하십시오.
-
ForAnyValue
: 요청에 있는 하나 이상의 암호화 컨텍스트 키가 정책 조건의 암호화 컨텍스트 키와 일치해야 합니다. 다른 암호화 컨텍스트 키가 허용됩니다. 요청에 암호화 컨텍스트가 없는 경우 조건이 충족되지 않습니다. -
ForAllValues
: 요청의 모든 암호화 컨텍스트 키는 정책 조건의 암호화 컨텍스트 키와 일치해야 합니다. 이 집합 연산자는 암호화 컨텍스트 키를 정책 조건의 컨텍스트 키로 제한합니다. 암호화 컨텍스트 키는 필요하지 않지만 지정되지 않은 암호화 컨텍스트 키는 금지됩니다.
다음 예제 키 정책 명령문에서 kms:EncryptionContextKeys
조건 키를 ForAnyValue
집합 연산자와 함께 사용합니다. 이 정책 설명문은 지정된 작업에 KMS 키를 사용할 수 있도록 허용하지만, 해당 값에 관계없이 요청의 암호화 컨텍스트 쌍 중 하나 이상이 AppName
키를 포함하는 경우에만 가능합니다.
예를 들어, 이 키 정책문은 첫 번째 암호화 컨텍스트 페어가 조건을 충족하기 때문에 두 개의 암호화 컨텍스트 페어(AppName=Helper
및 Project=Alpha
)가 있는 GenerateDataKey
요청을 허용합니다. 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
조건 키를 사용하여 해당 키를 사용하는 암호화 작업에서 암호화 컨텍스트 (모든 암호화 컨텍스트) 를 요구할 수 있습니다. KMS
다음 예제 키 정책 설명은 Null kms:EncryptionContextKeys
조건 연산자와 함께 조건 키를 사용하여 API 요청의 암호화 컨텍스트가 null이 아닌 경우에만 KMS 키에 대한 액세스를 허용합니다. 이 조건은 암호화 컨텍스트의 키나 값을 확인하지 않습니다. 암호화 컨텍스트가 존재하는지 확인합니다.
{ "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오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
kms:ExpirationModel
조건 키는 요청의 ExpirationModel파라미터 값을 기반으로 ImportKeyMaterial작업에 대한 액세스를 제어합니다.
ExpirationModel
은 가져온 키 자료가 만료되는지 여부를 결정하는 선택적 파라미터입니다. 유효한 값은 KEY_MATERIAL_EXPIRES
및 KEY_MATERIAL_DOES_NOT_EXPIRE
이며, 기본값은 KEY_MATERIAL_EXPIRES
입니다.
만료 날짜 및 시간은 ValidTo매개변수 값에 따라 결정됩니다. ValidTo
파라미터의 값이 ExpirationModel
가 아닌 경우에는 KEY_MATERIAL_DOES_NOT_EXPIRE
파라미터가 필요합니다. kms: ValidTo condition 키를 사용하여 액세스 조건으로 특정 만료 날짜를 요구할 수도 있습니다.
다음 예제 정책 설명에서는 kms:ExpirationModel
조건 키를 사용하여 요청에 ExpirationModel
파라미터가 KEY_MATERIAL_DOES_NOT_EXPIRE
포함되어 있고 해당 값이 1인 경우에만 사용자가 KMS 키 구성 요소를 키로 가져올 수 있도록 허용합니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "StringEquals": { "kms:ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE" } } }
또한 kms:ExpirationModel
조건 키를 사용하여 사용자가 키 구성 요소가 만료된 경우에만 키 구성 요소를 가져오도록 할 수 있습니다. 다음다음 예제 키 정책 문은 Null 조건 연산자와 함께 kms:ExpirationModel
조건 키를 사용하여 요청에 ExpirationModel
파라미터가 없는 경우에만 사용자가 키 구성 요소를 가져올 수 있도록 합니다. 의 기본값은 ExpirationModel 입니다KEY_MATERIAL_EXPIRES
.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "Null": { "kms:ExpirationModel": true } } }
참고 항목
kms: GrantConstraintType
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 요청의 권한 부여 제약 유형에 따라 CreateGrant작업에 대한 액세스를 제어할 수 있습니다.
권한 부여를 생성하면 선택적으로 권한 부여 제약을 지정해 특정 암호화 컨텍스트가 있는 경우에만 권한 부여에 의해 허용된 작업을 허용할 수 있습니다. 권한 부여 제약은 EncryptionContextEquals
또는 EncryptionContextSubset
, 두 유형 중 하나일 수 있습니다. 이 조건 키를 사용해 요청 제약에 어떤 유형이 포함되었는지 확인할 수 있습니다.
중요
이 필드에 기밀 또는 민감한 정보를 포함하지 마십시오. 이 필드는 CloudTrail 로그 및 기타 출력에 일반 텍스트로 표시될 수 있습니다.
다음 예제 키 정책 문은 kms:GrantConstraintType
조건 키를 사용해 요청에 EncryptionContextEquals
권한 부여 제약이 포함된 경우에만 사용자가 권한 부여를 생성하도록 허용합니다. 이 예제는 키 정책의 정책 설명을 보여줍니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:GrantConstraintType": "EncryptionContextEquals" } } }
참고 항목
kms: GrantIsFor AWSResource
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
부울 |
단일 값 |
|
키 정책 및 IAM 정책 |
와 통합된AWS 서비스가
다음 예제 키 정책 문은 kms:GrantIsForAWSResource
조건 키를 사용합니다. 이를 통해 EBS Amazon과 AWS KMS통합된 AWS 서비스에서 지정된 보안 주체를 대신하여 이 KMS 키에 대한 권한을 부여할 수 있습니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }
참고 항목
kms: GrantOperations
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
다중 값 |
|
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 요청의 권한 부여 CreateGrant작업을 기반으로 작업에 대한 액세스를 제어할 수 있습니다. 예를 들어, 사용자가 암호화할 권한은 위임하지만 해독할 권한은 위임하지 않는 권한 부여를 생성하도록 허용할 수 있습니다. 권한 부여에 대한 자세한 내용은 권한 부여 사용을 참조하세요.
이는 다중 값 조건 키입니다. kms:GrantOperations
는 CreateGrant
요청의 승인 작업 세트를 정책의 승인 작업 세트와 비교합니다. 이러한 집합이 비교되는 방법을 확인하려면 정책 조건에서 ForAnyValue
또는 ForAllValues
연산자를 제공해야 합니다. 집합 연산자에 대한 자세한 내용은 사용 IAM 설명서의 다중 키 및 값 사용을 참조하십시오.
-
ForAnyValue
: 요청의 모든 권한 부여 작업은 정책 조건의 부여 작업과 일치해야 합니다. 기타 권한 부여 작업이 허용됩니다. -
ForAllValues: 요청의 모든 권한 부여 작업은 정책 조건의 권한 부여 작업과 일치해야 합니다. 이 집합 연산자는 권한 부여 작업을 정책 조건에 지정된 작업으로 제한합니다. 어떠한 권한 부여 작업도 필요하지 않지만 지정되지 않은 권한 부여 작업은 금지합니다.
ForAllValues 요청에 권한 부여 작업이 없지만
CreateGrant
허용하지는 않는 경우에도 true를 반환합니다. 만약Operations
파라미터가 없거나 null 값을 갖는 경우CreateGrant
요청이 실패합니다.
다음 예제 키 정책 문은 kms:GrantOperations
조건 키를 사용하여 권한 부여 작업이 Encrypt
, ReEncryptTo
또는 둘 다인 경우에만 사용자가 권한 부여를 생성할 수 있도록 합니다. 권한 부여에 다른 작업이 포함된 경우 CreateGrant
요청이 실패합니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Encrypt", "ReEncryptTo" ] } } }
정책 조건의 집합 연산자를 ForAnyValue
로 변경하면 정책문에서 권한 부여의 권한 부여 작업 중 하나 이상이 Encrypt
또는 ReEncryptTo
여야 하지만 Decrypt
또는 ReEncryptFrom
과 같은 다른 권한 부여 작업은 허용합니다.
참고 항목
kms: GranteePrincipal
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
IAM 및 키 정책 |
이 조건 키를 사용하여 요청의 GranteePrincipal파라미터 값을 기반으로 CreateGrant작업에 대한 액세스를 제어할 수 있습니다. 예를 들어 CreateGrant
요청의 부여된 보안 주체가 조건문에 지정된 보안 주체와 일치하는 경우에만 KMS 키를 사용하도록 권한 부여를 생성할 수 있습니다.
수혜자 보안 주체를 지정하려면 보안 AWS 주체의 Amazon 리소스 이름 (ARN) 을 사용하십시오. 유효한 보안 주체에는 사용자, 역할 AWS 계정, 연동 IAM 사용자, 위임된 IAM 역할 사용자 등이 포함됩니다. 주도자 ARN 구문에 대한 도움말은 사용 설명서를 참조하십시오 IAMARNs. IAM
다음 예제 키 정책 설명은 권한 부여의 피부여자 보안 주체가 다음과 같은 경우에만 kms:GranteePrincipal
조건 KMS 키를 사용하여 키에 대한 권한 부여를 생성합니다. LimitedAdminRole
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole" } } }
참고 항목
kms: KeyAgreementAlgorithm
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
kms:KeyAgreementAlgorithm
조건 키를 사용하여 요청의 KeyAgreementAlgorithm
파라미터 값을 기반으로 DeriveSharedSecret작업에 대한 액세스를 제어할 수 있습니다. 에 대한 KeyAgreementAlgorithm
유효한 값은 뿐입니다ECDH
.
예를 들어, 다음 키 정책 설명에서는 kms:KeyAgreementAlgorithm
조건 키를 사용하여 그렇지 DeriveSharedSecret 않은 경우 에 대한 모든 액세스를 거부합니다KeyAgreementAlgorithm
. ECDH
{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:DeriveSharedSecret", "Resource": "*", "Condition": { "StringNotEquals": { "kms:KeyAgreementAlgorithm": "ECDH" } } }
참고 항목
kms: KeyOrigin
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
KMS주요 자원 운영 |
IAM정책 키 정책 및 IAM 정책 |
kms:KeyOrigin
조건 키는 작업에 의해 생성되거나 작업에 사용되는 KMS 키의 Origin
속성 값을 기반으로 작업에 대한 액세스를 제어합니다. 그것은 리소스 조건 또는 요청 조건으로 작동합니다.
이 조건 키를 사용하여 요청의 Origin 매개변수 값을 기반으로 CreateKey작업에 대한 액세스를 제어할 수 있습니다. Origin
의 유효한 값은 AWS_KMS
, AWS_CLOUDHSM
및 EXTERNAL
입니다.
예를 들어 () 에서 KMS 키 구성 요소가 생성된 경우, 사용자 지정 키 저장소 AWS KMS (AWS_KMS
) 와 연결된 AWS CloudHSM 클러스터에서 키 구성 요소가 생성된 경우 또는 외부 소스 (AWS_CLOUDHSM
EXTERNAL
) 에서 키 구성 요소를 가져온 경우에만 키를 생성할 수 있습니다.
다음 예제 키 정책 설명은 키 구성 요소를 생성할 때만 kms:KeyOrigin
조건 KMS 키를 사용하여 키를 AWS KMS 생성합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_KMS" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "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:KeyOrigin
조건 키를 사용하여 작업에 사용된 키의 Origin
속성에 따라 KMS 키를 사용하거나 관리하는 작업에 대한 액세스를 제어할 수 있습니다. KMS 작업은 KMS키 리소스 작업, 즉 특정 KMS 키에 대해 승인된 작업이어야 합니다. KMS주요 리소스 작업을 식별하려면 작업 및 리소스 테이블에서 해당 작업의 Resources
열에 있는 값을 찾으십시오. KMS key
예를 들어 다음 IAM 정책은 보안 주체가 지정된 KMS 키 리소스 작업을 수행할 수 있도록 허용하지만 사용자 지정 KMS 키 저장소에서 만든 계정의 키만 수행할 수 있습니다.
{ "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: KeySpec
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
KMS주요 자원 운영 |
IAM정책 키 정책 및 IAM 정책 |
kms:KeySpec
조건 키는 작업에 의해 생성되거나 작업에 사용되는 KMS 키의 KeySpec
속성 값을 기반으로 작업에 대한 액세스를 제어합니다.
IAM정책에서 이 조건 키를 사용하여 CreateKey
요청의 KeySpec파라미터 값을 기반으로 CreateKey작업에 대한 액세스를 제어할 수 있습니다. 예를 들어 이 조건을 사용하여 사용자가 대칭 암호화 KMS 키만 생성하거나 키만 생성하도록 허용할 수 있습니다. HMAC KMS
다음 예제 IAM 정책 설명에서는 kms:KeySpec
조건 키를 사용하여 보안 주체가 비대칭 키만 RSA 생성할 수 있도록 허용합니다. KMS 이 권한은 요청의 KeySpec
이 RSA_
로 시작하는 경우에만 유효합니다.
{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringLike": { "kms:KeySpec": "RSA_*" } } }
또한 kms:KeySpec
조건 키를 사용하여 작업에 사용된 키의 KeySpec
속성에 따라 KMS 키를 사용하거나 관리하는 작업에 대한 액세스를 제어할 수 있습니다. KMS 작업은 KMS키 리소스 작업, 즉 특정 KMS 키에 대해 승인된 작업이어야 합니다. KMS주요 리소스 작업을 식별하려면 작업 및 리소스 테이블에서 해당 작업의 Resources
열에 있는 값을 찾으십시오. KMS key
예를 들어 다음 IAM 정책은 보안 주체가 지정된 KMS 키 리소스 작업을 수행할 수 있도록 허용하지만 계정의 대칭 암호화 KMS 키만 사용할 수 있습니다.
{ "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeySpec": "SYMMETRIC_DEFAULT" } } }
참고 항목
kms: KeyUsage
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
KMS주요 자원 운영 |
IAM정책 키 정책 및 IAM 정책 |
kms:KeyUsage
조건 키는 작업에 의해 생성되거나 작업에 사용되는 KMS 키의 KeyUsage
속성 값을 기반으로 작업에 대한 액세스를 제어합니다.
이 조건 키를 사용하여 요청의 KeyUsage파라미터 값을 기반으로 CreateKey작업에 대한 액세스를 제어할 수 있습니다. 의 유효한 KeyUsage
값은ENCRYPT_DECRYPT
,SIGN_VERIFY
,GENERATE_VERIFY_MAC
, KEY_AGREEMENT
입니다.
예를 들어 KeyUsage
가 ENCRYPT_DECRYPT
있는 경우에만 KMS 키를 생성하고, 일 때는 사용자 권한을 거부할 수 있습니다. KeyUsage
SIGN_VERIFY
다음 예제 IAM 정책 설명은 kms:KeyUsage
조건 키를 사용하여 키가 있는 경우에만 KMS 키를 생성합니다. KeyUsage
ENCRYPT_DECRYPT
{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeyUsage": "ENCRYPT_DECRYPT" } } }
또한 kms:KeyUsage
조건 키를 사용하여 작업의 키 KeyUsage
속성에 따라 KMS 키를 사용하거나 관리하는 작업에 대한 액세스를 제어할 수 있습니다. KMS 작업은 KMS키 리소스 작업, 즉 특정 KMS 키에 대해 승인된 작업이어야 합니다. KMS주요 리소스 작업을 식별하려면 작업 및 리소스 테이블에서 해당 작업의 Resources
열에 있는 값을 찾으십시오. KMS key
예를 들어, 다음 IAM 정책은 보안 주체가 서명 및 확인에 사용되는 계정의 키만 사용하여 지정된 KMS KMS 키 리소스 작업을 수행할 수 있도록 허용합니다.
{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyUsage": "SIGN_VERIFY" } } }
참고 항목
kms: MacAlgorithm
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
kms:MacAlgorithm
조건 키를 사용하여 요청의 MacAlgorithm
파라미터 값을 기반으로 GenerateMac및 VerifyMac작업에 대한 액세스를 제어할 수 있습니다.
다음 예제 키 정책은 요청의 MAC 알고리즘이 HMAC_SHA_384
또는 인 경우에만 testers
역할을 수임할 수 있는 사용자가 HMAC KMS 키를 사용하여 HMAC 태그를 생성하고 확인하도록 허용합니다HMAC_SHA_512
. 이 정책은 각각 고유한 조건을 가진 두 개의 별도의 정책 문을 사용합니다. 단일 조건문에 둘 이상의 MAC 알고리즘을 지정하는 경우 조건에 따라 둘 중 하나 대신 두 알고리즘이 모두 필요합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/testers" }, "Action": [ "kms:GenerateMac", "kms:VerifyMac" ], "Resource": "*", "Condition": { "StringEquals": { "kms:MacAlgorithm": "HMAC_SHA_384" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/testers" }, "Action": [ "kms:GenerateMac", "kms:VerifyMac" ], "Resource": "*", "Condition": { "StringEquals": { "kms:MacAlgorithm": "HMAC_SHA_512" } } } ] }
참고 항목
kms: MessageType
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
kms:MessageType
조건 키는 요청의 MessageType
파라미터 값을 기반으로 서명 및 확인 작업에 대한 액세스를 제어합니다. MessageType
유효값은 RAW
및 DIGEST
입니다.
예를 들어 다음 키 정책 설명에서는 kms:MessageType
조건 키를 사용하여 메시지에 서명하지만 메시지 다이제스트는 사용하지 않고 비대칭 KMS 키를 사용하여 메시지에 서명합니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:Sign", "Resource": "*", "Condition": { "StringEquals": { "kms:MessageType": "RAW" } } }
참고 항목
kms: MultiRegion
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
부울 |
단일 값 |
KMS주요 자원 운영 |
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 단일 리전 키 또는 다중 리전 키에서만 작업을 허용할 수 있습니다. kms:MultiRegion
조건 키는 키 AWS KMS 작업 및 KMS 키 MultiRegion
속성 값을 기반으로 CreateKey작업에 대한 액세스를 제어합니다. KMS 유효 값은 true
(다중 리전) 및 false
(단일 리전)입니다. 모든 KMS 키에는 MultiRegion
속성이 있습니다.
예를 들어 다음 IAM 정책 설명에서는 kms:MultiRegion
조건 키를 사용하여 보안 주체가 단일 지역 키만 만들 수 있도록 허용합니다.
{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "Bool": { "kms:MultiRegion": false } } }
kms: MultiRegionKeyType
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
KMS주요 자원 운영 |
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 다중 리전 기본 키 또는 다중 리전 복제본 키에서만 작업을 허용할 수 있습니다. kms:MultiRegionKeyType
조건 키는 키 AWS KMS 작업 및 KMS 키 MultiRegionKeyType
속성에 KMS 따라 CreateKey작업에 대한 액세스를 제어합니다. 유효 값은 PRIMARY
와 REPLICA
입니다. 다중 리전 키에만 MultiRegionKeyType
속성이 있습니다.
일반적으로 IAM 정책에서 kms:MultiRegionKeyType
조건 키를 사용하여 여러 KMS 키에 대한 액세스를 제어합니다. 그러나 지정된 다중 리전 키가 기본 또는 복제본으로 변경될 수 있으므로 특정 다중 리전 키가 기본 또는 복제본 키인 경우에만 작업을 허용하려면 키 정책에서 이 조건을 사용할 수 있습니다.
예를 들어 다음 IAM 정책 설명에서는 kms:MultiRegionKeyType
조건 키를 사용하여 보안 주체가 지정된 다중 지역 복제 키에 대해서만 키 삭제를 예약하고 취소할 수 있도록 허용합니다. AWS 계정
{ "Effect": "Allow", "Action": [ "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "StringEquals": { "kms:MultiRegionKeyType": "REPLICA" } } }
모든 다중 지역 키에 대한 액세스를 허용하거나 거부하려면 kms:MultiRegionKeyType
와 함께 두 값 또는 null 값을 모두 사용할 수 있습니다. 하지만 이 용도로는 kms: MultiRegion 조건 키를 사용하는 것이 좋습니다.
kms: PrimaryRegion
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
문자열(목록) |
단일 값 |
|
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 UpdatePrimaryRegion작업의 대상 지역을 제한할 수 있습니다. 이들은 다중 지역 기본 키를 AWS 리전 호스팅할 수 있습니다.
kms:PrimaryRegion
조건 키는 PrimaryRegion
파라미터 값을 기반으로 UpdatePrimaryRegion작업에 대한 액세스를 제어합니다. PrimaryRegion
파라미터는 AWS 리전 기본으로 승격되는 다중 지역 복제 키의 이름을 지정합니다. 조건 값은 or와 같은 하나 이상의 AWS 리전 us-east-1
이름이거나 ap-southeast-2
다음과 같은 지역 이름 패턴입니다. eu-*
예를 들어 다음 키 정책 문은 kms:PrimaryRegion
조건 키를 사용하여 보안 주체가 다중 리전 키의 기본 리전을 지정된 4개의 리전 중 하나로 업데이트할 수 있습니다.
{ "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오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
부울 |
단일 값 |
|
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 요청에서 원래 암호화에 사용된 것과 동일한 대상 KMS 키를 지정하는지 여부에 따라 ReEncrypt작업에 대한 액세스를 제어할 수 있습니다.
예를 들어 다음 키 정책 설명에서는 대상 키가 원래 암호화에 사용된 것과 동일한 경우에만 kms:ReEncryptOnSameKey
조건 KMS 키를 사용하여 다시 암호화합니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:ReEncrypt*", "Resource": "*", "Condition": { "Bool": { "kms:ReEncryptOnSameKey": true } } }
kms: RequestAlias
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
문자열(목록) |
단일 값 |
키 정책 및 IAM 정책 |
요청에서 특정 별칭을 사용하여 키를 식별하는 경우에만 이 조건 KMS 키를 사용하여 작업을 허용할 수 있습니다. kms:RequestAlias
조건 키는 암호화 작업에 사용되거나 요청에서 해당 KMS 키를 식별하는 별칭을 DescribeKey 기반으로 사용된 KMS 키에 대한 액세스를 제어합니다. GetPublicKey
(GenerateRandom작업에서 KMS 키나 별칭을 사용하지 않으므로 이 정책 조건은 작업에 영향을 주지 않습니다.)
이 조건은 KMS 키의 태그와 별칭을 기반으로 키에 AWS KMS대한 액세스를 제어할 수 있는 속성 기반 액세스 제어 (ABAC) 를 지원합니다. KMS 태그와 별칭을 사용하여 정책이나 권한을 변경하지 않고도 KMS 키에 대한 액세스를 허용하거나 거부할 수 있습니다. 세부 정보는 AWS KMS의 ABAC을 참조하세요.
이 정책 조건에서 별칭을 지정하려면 별칭 이름(예: alias/project-alpha
) 또는 별칭 이름 패턴(예: alias/*test*
)을 사용합니다. 이 조건 키의 ARN 값에는 별칭을 지정할 수 없습니다.
이 조건을 충족하려면 요청의 KeyId
매개 변수 값이 일치하는 별칭 이름 또는 별칭이어야 합니다. ARN 요청에서 다른 키 식별자를 사용하는 경우 동일한 키를 식별하더라도 조건을 충족하지 않습니다. KMS
예를 들어 다음 키 정책 설명을 사용하면 보안 주체가 키에 대한 GenerateDataKey작업을 호출할 수 있습니다. KMS 그러나 이는 요청의 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" } } }
이 조건 키를 사용하여 또는 같은 별칭 작업에 대한 액세스를 제어할 수 없습니다. CreateAliasDeleteAlias 별칭 작업에 대한 액세스 제어와 관련된 자세한 내용은 별칭에 대한 액세스 제어 섹션을 참조하세요.
kms: ResourceAliases
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
문자열(목록) |
다중 값 | KMS주요 자원 운영 |
IAM 정책만 해당 |
이 조건 키를 사용하면 키와 연결된 별칭을 기반으로 KMS 키에 대한 액세스를 제어할 수 있습니다. KMS 작업은 KMS키 리소스 작업, 즉 특정 KMS 키에 대해 승인된 작업이어야 합니다. KMS주요 리소스 작업을 식별하려면 작업 및 리소스 테이블에서 해당 작업의 Resources
열에 있는 값을 찾으십시오. KMS key
이 조건은 에서 속성 기반 액세스 제어 (ABAC) 를 지원합니다. AWS KMS를 사용하면 키에 할당된 태그와 KMS 키와 연결된 별칭을 기반으로 KMS 키에 대한 액세스를 제어할 수 있습니다. ABAC KMS 태그와 별칭을 사용하여 정책이나 권한을 변경하지 않고도 KMS 키에 대한 액세스를 허용하거나 거부할 수 있습니다. 세부 정보는 AWS KMS의 ABAC을 참조하세요.
별칭은 한 AWS 계정 및 지역에서 고유해야 하지만 이 조건을 사용하면 StringLike
비교 연산자를 사용하여 같은 지역의 여러 KMS 키에 대한 액세스를 제어하거나 계정마다 다른 AWS 리전 여러 KMS 키에 대한 액세스를 제어할 수 있습니다.
참고
kms: ResourceAliases 조건은 KMS 키가 키 할당량당 별칭을 준수하는 경우에만 유효합니다. KMS KMS키가 이 할당량을 초과할 경우 kms:ResourceAliases
조건에 따라 키 사용 권한을 부여받은 보안 주체는 KMS 키에 대한 액세스가 거부됩니다. KMS
이 정책 조건에서 별칭을 지정하려면 별칭 이름(예: alias/project-alpha
) 또는 별칭 이름 패턴(예: alias/*test*
)을 사용합니다. 이 조건 키의 ARN 값에는 별칭을 지정할 수 없습니다. 조건을 충족하려면 작업에 사용되는 KMS 키에 지정된 별칭이 있어야 합니다. 작업 요청에서 KMS 키를 식별하는지 여부 또는 식별 방법은 중요하지 않습니다.
이는 키와 관련된 별칭 집합을 정책의 별칭 집합과 비교하는 다중값 조건 KMS 키입니다. 이러한 집합이 비교되는 방법을 확인하려면 정책 조건에서 ForAnyValue
또는 ForAllValues
연산자를 제공해야 합니다. 집합 연산자에 대한 자세한 내용은 사용 설명서의 다중 키 및 값 사용을 참조하십시오. IAM
-
ForAnyValue: KMS 키와 관련된 별칭이 하나 이상 정책 조건의 별칭과 일치해야 합니다. 다른 별칭은 허용됩니다. KMS키에 별칭이 없으면 조건이 충족되지 않는 것입니다.
-
ForAllValues: KMS 키와 관련된 모든 별칭은 정책의 별칭과 일치해야 합니다. 이 집합 연산자는 KMS 키와 관련된 별칭을 정책 조건의 별칭으로 제한합니다. 별칭은 필요하지 않지만 지정되지 않은 별칭을 금지합니다.
예를 들어 다음 IAM 정책 설명을 사용하면 보안 주체가 finance-key
별칭과 연결된 지정된 KMS 키에 대해 GenerateDataKey작업을 AWS 계정 호출할 수 있습니다. (또한 영향을 받는 KMS 키의 키 정책은 보안 주체의 계정이 이 작업에 키를 사용할 수 있도록 허용해야 합니다.) 조건에서는 KMS 키와 연관될 수 있는 여러 별칭 중 하나가 인 경우 조건이 충족되었음을 나타내기 위해 ForAnyValue
설정 연산자를 사용합니다. alias/finance-key
kms:ResourceAliases
조건은 요청이 아닌 리소스를 기반으로 하기 때문에 요청에서 키 ID 또는 키를 사용하여 KMS 키를 식별하더라도 finance-key 별칭과 관련된 모든 키에 대한 호출은 GenerateDataKey 성공합니다. ARN KMS
{ "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 정책 설명에서는 보안 주체가 키의 모든 별칭에 "“이 포함된 경우에만 KMS 키를 활성화 및 비활성화할 수 있습니다. KMS Test
이 정책 설명에는 두 가지 조건이 사용됩니다. ForAllValues
set 연산자의 조건에 따라 KMS 키와 관련된 모든 별칭에는 “Test”가 포함되어야 합니다. ForAnyValue
집합 연산자의 조건에 따라 KMS 키에 “Test”라는 별칭이 하나 이상 있어야 합니다. ForAnyValue
조건이 없었다면 이 정책 설명을 통해 보안 주체는 별칭이 없는 KMS 키를 사용할 수 있었을 것입니다.
{ "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: ReplicaRegion
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
문자열(목록) |
단일 값 |
|
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 보안 주체가 다중 지역 키를 복제할 수 있는 범위를 제한할 수 있습니다. AWS 리전 kms:ReplicaRegion
조건 키는 요청의 ReplicaRegion파라미터 값을 기반으로 ReplicateKey작업에 대한 액세스를 제어합니다. 이 파라미터는 새 복제본 키에 대한 AWS 리전
을 지정합니다.
조건 값은 하나 이상의 AWS 리전 이름 (예: or) us-east-1
이거나 ap-southeast-2
이름 패턴 (예: or) eu-*
입니다. AWS 리전 AWS KMS 지원하는 이름 목록은 의 AWS Key Management Service 엔드포인트 및 할당량을 참조하십시오. AWS 일반 참조
예를 들어 다음 키 정책 설명에서는 kms:ReplicaRegion
조건 키를 사용하여 ReplicaRegion
매개 변수 값이 지정된 지역 중 하나인 경우에만 보안 주체가 ReplicateKey작업을 호출할 수 있도록 허용합니다.
{ "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" ] } } }
이 조건 키는 작업에 대한 액세스만 제어합니다. ReplicateKey UpdatePrimaryRegion작업에 대한 액세스를 제어하려면 kms: PrimaryRegion 조건 키를 사용합니다.
kms: RetiringPrincipal
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
문자열(목록) |
단일 값 |
|
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 요청의 RetiringPrincipal파라미터 값을 기반으로 CreateGrant작업에 대한 액세스를 제어할 수 있습니다. 예를 들어 CreateGrant
요청의 내용이 조건문의 내용과 일치하는 경우에만 KMS 키를 사용하도록 권한 부여를 RetiringPrincipal
생성할 수 있습니다. RetiringPrincipal
사용 중지되는 보안 주체를 지정하려면 보안 AWS 주체의 Amazon 리소스 이름 (ARN) 을 사용하십시오. 유효한 보안 주체에는 사용자, 역할 AWS 계정, 연동 IAM 사용자, 위임된 IAM 역할 사용자 등이 포함됩니다. 주도자 ARN 구문에 대한 도움말은 사용 설명서를 참조하십시오 IAMARNs. IAM
다음 예제 키 정책 설명을 통해 사용자는 키에 대한 권한 부여를 생성할 수 있습니다. KMS kms:RetiringPrincipal
조건 키는 권한 부여의 은퇴 주체가 있는 CreateGrant
요청으로 권한을 제한합니다. LimitedAdminRole
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:RetiringPrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole" } } }
참고 항목
kms: RotationPeriodInDays
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
숫자 |
단일 값 |
|
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 보안 주체가 요청 RotationPeriodInDays
파라미터에 지정할 수 있는 값을 제한할 수 있습니다. EnableKeyRotation
는 각 자동 키 교체 날짜 사이의 일 수를 RotationPeriodInDays
지정합니다. AWS KMS 순환 기간을 90일에서 2560일 사이로 지정할 수 있지만 kms:RotationPeriodInDays
조건 키를 사용하여 최소 순환 기간을 유효 범위 내로 적용하는 등 순환 기간을 추가로 제한할 수 있습니다.
예를 들어, 다음 키 정책 설명에서는 순환 기간이 180일 이하인 경우 kms:RotationPeriodInDays
조건 키를 사용하여 보안 주체가 키 순환을 활성화하지 못하도록 합니다.
{ "Effect": "Deny", "Action": "kms:EnableKeyRotation", "Principal": "*", "Resource": "*", "Condition" : { "NumericLessThanEquals" : { "kms:RotationPeriodInDays" : "180" } } }
kms: ScheduleKeyDeletionPendingWindowInDays
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
숫자 |
단일 값 |
|
키 정책 및 IAM 정책 |
이 조건 키를 사용하여 보안 주체가 요청 PendingWindowInDays
파라미터에 지정할 수 있는 값을 제한할 수 있습니다. ScheduleKeyDeletion
는 PendingWindowInDays
키를 삭제하기 전에 AWS KMS 대기할 일 수를 지정합니다. AWS KMS 대기 기간을 7일에서 30일 사이로 지정할 수 있지만 kms:ScheduleKeyDeletionPendingWindowInDays
조건 키를 사용하여 최소 대기 기간을 유효 범위 내로 적용하는 등 대기 기간을 추가로 제한할 수 있습니다.
예를 들어 다음 키 정책 문은 kms:ScheduleKeyDeletionPendingWindowInDays
조건 키를 사용하여 대기 기간이 21일 이하인 경우 보안 주체가 키 삭제 일정을 잡을 수 없도록 합니다.
{ "Effect": "Deny", "Action": "kms:ScheduleKeyDeletion", "Principal": "*", "Resource": "*", "Condition" : { "NumericLessThanEquals" : { "kms:ScheduleKeyDeletionPendingWindowInDays" : "21" } } }
kms: SigningAlgorithm
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
kms:SigningAlgorithm
조건 키를 사용하여 요청의 SigningAlgorithm매개변수 값을 기반으로 서명 및 확인 작업에 대한 액세스를 제어할 수 있습니다. 이 조건 키는 외부에서 수행되는 비대칭 키 KMS 쌍의 공개 키로 서명을 확인하는 등 외부에서 수행되는 작업에는 영향을 주지 않습니다. AWS KMS AWS KMS
다음 예제 키 정책은 요청에 사용된 서명 알고리즘이 RSASSA _ PSS 알고리즘인 경우에만 testers
역할을 수임할 수 있는 사용자가 KMS 키를 사용하여 메시지에 서명할 수 있도록 허용합니다 (예: RSASSA_PSS_SHA512
{ "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오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
Timestamp |
단일 값 |
|
키 정책 및 IAM 정책 |
kms:ValidTo
조건 키는 요청의 ValidTo파라미터 값에 따라 ImportKeyMaterial작업에 대한 액세스를 제어하며, 이 값에 따라 가져온 키 자료의 만료 시기가 결정됩니다. 이 값은 Unix 시간
기본적으로 ValidTo
파라미터는 ImportKeyMaterial
요청에서 필요합니다. 그러나 파라미터 값이 인 경우 해당 ExpirationModelValidTo
파라미터는 KEY_MATERIAL_DOES_NOT_EXPIRE
유효하지 않습니다. kms: ExpirationModel condition 키를 사용하여 ExpirationModel
매개변수 또는 특정 매개변수 값을 요구할 수도 있습니다.
다음 예제 정책 설명을 통해 사용자는 키 자료를 키로 가져올 수 있습니다KMS. kms:ValidTo
조건 키는 ValidTo
값이 1546257599.0
(2018년 12월 31일 11:59:59 PM)보다 작거나 같은 ImportKeyMaterial
요청에 대한 권한을 제한합니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "NumericLessThanEquals": { "kms:ValidTo": "1546257599.0" } } }
참고 항목
kms: ViaService
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
KMS주요 자원 운영 |
키 정책 및 IAM 정책 |
kms:ViaService
조건 키는 키 사용을 지정된 AWS 서비스의 요청으로 제한합니다. KMS 각 kms:ViaService
조건 키에 하나 이상의 서비스를 지정할 수 있습니다. 작업은 KMS키 리소스 작업, 즉 특정 KMS 키에 대해 승인된 작업이어야 합니다. KMS주요 리소스 작업을 식별하려면 작업 및 리소스 테이블에서 해당 작업의 Resources
열에 있는 값을 찾으십시오. KMS key
예를 들어, 다음 키 정책 설명에서는 kms:ViaService
조건 키를 사용하여 미국 서부 (오레곤) 지역의 Amazon EC2 RDS 또는 Amazon에서 요청을 보내는 경우에만 고객 관리 키를 지정된 작업에 사용할 수 있도록 허용합니다. ExampleRole
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "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
조건 키를 사용하여 KMS 키 사용 권한을 거부할 수도 있습니다. 예를 들어 키 정책에서 다음 정책 문은 kms:ViaService
조건 키를 사용하여 요청이 AWS Lambda 에서 ExampleRole
대신 이루어지는 경우 고객 관리형 키를 Encrypt
작업에 대해 사용하는 것을 금지합니다.
{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Encrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "lambda.us-west-2.amazonaws.com" ] } } }
중요
kms:ViaService
조건 키를 사용할 경우 서비스가 AWS 계정의 보안 주체 대신 요청을 생성합니다. 이러한 보안 주체는 다음 권한을 가져야 합니다.
-
KMS키 사용 권한. 보안 주체는 서비스가 보안 주체 대신 고객 관리형 키를 사용할 수 있도록 이러한 권한을 통합 서비스에 부여해야 합니다. 자세한 정보는 AWS 서비스의 AWS KMS 활용 방식 섹션을 참조하세요.
-
통합 서비스 사용 권한. 와 AWS KMS통합되는 AWS 서비스에 대한 액세스 권한을 사용자에게 부여하는 방법에 대한 자세한 내용은 통합 서비스 설명서를 참조하십시오.
모든 AWS 관리형 키는 키 정책 문서에서 kms:ViaService
조건 키를 사용합니다. 이 조건에서는 KMS 키를 생성한 서비스에서 오는 요청에만 KMS 키를 사용할 수 있습니다. 의 키 정책을 보려면 GetKeyPolicy작업을 사용하십시오. AWS 관리형 키
kms:ViaService
조건 키는 키 정책 설명에서 IAM 유효합니다. 사용자가 지정한 서비스가 AWS KMS와 통합kms:ViaService
조건 키를 지원해야 합니다.
kms:ViaService
조건 키를 지원하는 서비스
다음 표에는 고객 관리 키의 조건 키와 AWS KMS 통합되고 kms:ViaService
조건 키 사용을 지원하는 AWS 서비스가 나열되어 있습니다. 이 표의 서비스는 일부 지역에서는 제공되지 않을 수 있습니다. 모든 AWS 파티션에서 AWS KMS ViaService 이름의 .amazonaws.com
접미사를 사용하세요.
참고
이 테이블의 모든 데이터를 보려면 가로 또는 세로로 스크롤해야 할 수도 있습니다.
서비스 이름 | AWS KMS ViaService 이름 |
---|---|
AWS App Runner | apprunner. |
AWS AppFabric | appfabric. |
아마존 AppFlow | appflow. |
AWS Application Migration Service | mgn. |
Amazon Athena | athena. |
AWS Audit Manager | auditmanager. |
Amazon Aurora | rds. |
AWS Backup | backup. |
AWS Backup 게이트웨이 | backup-gateway. |
아마존 베드락 모델 카피 | bedrock. |
Amazon Chime SDK | chimevoiceconnector. |
AWS CodeArtifact | codeartifact. |
아마존 CodeGuru 리뷰어 | codeguru-reviewer. |
Amazon Comprehend | comprehend. |
Amazon Connect | connect. |
Amazon Connect Customer Profiles | profile. |
Amazon Q in Connect | wisdom. |
AWS Database Migration Service (AWS DMS) | dms. |
AWS Directory Service | directoryservice. |
Amazon DynamoDB | dynamodb. |
Amazon DocumentDB | docdb-elastic. |
Amazon EC2 Systems Manager (SSM) | ssm. |
아마존 엘라스틱 블록 스토어 (아마존EBS) | ec2. (EBS전용) |
아마존 엘라스틱 컨테이너 레지스트리 (아마존ECR) | ecr. |
아마존 엘라스틱 파일 시스템 (아마존EFS) | elasticfilesystem. |
아마존 ElastiCache |
조건 키 값에 두 ViaService 이름을 모두 포함하십시오.
|
AWS Elemental MediaTailor | mediatailor. |
AWS 엔티티 해상도 | entityresolution. |
아마존 EventBridge | events. |
Amazon FinSpace | finspace. |
Amazon Forecast | forecast. |
아마존 FSx | fsx. |
AWS Glue | glue. |
AWS Ground Station | groundstation. |
아마존 GuardDuty | malware-protection. |
AWS HealthLake | healthlake. |
AWS IoT SiteWise | iotsitewise. |
Amazon Kendra | kendra. |
Amazon Keyspaces(Apache Cassandra용) | cassandra. |
Amazon Kinesis | kinesis. |
Amazon Data Firehose | firehose. |
Amazon Kinesis Video Streams | kinesisvideo. |
AWS Lambda | lambda. |
Amazon Lex | lex. |
AWS License Manager | license-manager. |
Amazon Location Service | geo. |
Amazon Lookout for Equipment | lookoutequipment. |
Amazon Lookout for Metrics | lookoutmetrics. |
Amazon Lookout for Vision | lookoutvision. |
Amazon Macie | macie. |
AWS Mainframe Modernization | m2. |
AWS Mainframe Modernization 애플리케이션 테스트 | apptest. |
Amazon Managed Blockchain | managedblockchain. |
아파치 Kafka용 아마존 매니지드 스트리밍 (아마존) MSK | kafka. |
아파치 에어플로우용 Amazon 관리형 워크플로 () MWAA | airflow. |
Amazon MemoryDB | memorydb. |
Amazon Monitron | monitron. |
Amazon MQ | mq. |
Amazon Neptune | rds. |
Amazon Nimble Studio | nimble. |
AWS HealthOmics | omics. |
아마존 OpenSearch 서비스 | es. ,
aoss. |
AWS Proton | proton. |
아마존 퀀텀 레저 데이터베이스 (아마존QLDB) | qldb. |
Amazon RDS Performance Insights | rds. |
Amazon Redshift | redshift. |
Amazon Redshift 쿼리 편집기 V2 | sqlworkbench. |
Amazon Redshift Serverless | redshift-serverless. |
Amazon Rekognition | rekognition. |
아마존 관계형 데이터베이스 서비스 (아마존RDS) | rds. |
Amazon 복제 데이터 스토어 | ards. |
아마존 SageMaker | sagemaker. |
AWS Secrets Manager | secretsmanager. |
Amazon Security Lake | securitylake. |
아마존 심플 이메일 서비스 (아마존SES) | ses. |
아마존 심플 알림 서비스 (아마존SNS) | sns. |
아마존 심플 큐 서비스 (아마존SQS) | sqs. |
Amazon Simple Storage Service(S3) | s3. |
AWS Snowball | importexport. |
AWS Step Functions | states. |
AWS Storage Gateway | storagegateway. |
AWS Systems Manager Incident Manager | ssm-incidents. |
AWS Systems Manager Incident Manager 연락처 | ssm-contacts. |
Amazon Timestream | timestream. |
Amazon Translate | translate. |
AWS Verified Access | verified-access. |
아마존 WorkMail | workmail. |
아마존 WorkSpaces | workspaces. |
아마존 WorkSpaces 씬 클라이언트 | thinclient. |
아마존 WorkSpaces 웹 | workspaces-web. |
AWS X-Ray | xray. |
kms: WrappingAlgorithm
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
이 조건 키는 요청의 WrappingAlgorithm파라미터 값을 기반으로 GetParametersForImport작업에 대한 액세스를 제어합니다. 이 조건을 사용하여 보안 주체가 가져오기 프로세스 중에 특정 알고리즘을 사용하여 키 자료를 암호화하도록 요구할 수 있습니다. 다른 래핑 알고리즘을 지정하면 필수 퍼블릭 키 및 가져오기 토큰에 대한 요청이 실패합니다.
다음 예제 키 정책문에서는 kms:WrappingAlgorithm
조건 키를 사용하여 GetParametersForImport
작업을 호출할 수 있는 사용자 권한을 부여하지만, RSAES_OAEP_SHA_1
래핑 알고리즘을 사용하지 못하도록 합니다. GetParametersForImport
요청의 WrappingAlgorithm
이 RSAES_OAEP_SHA_1
이면 작업이 실패합니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:GetParametersForImport", "Resource": "*", "Condition": { "StringNotEquals": { "kms:WrappingAlgorithm": "RSAES_OAEP_SHA_1" } } }
참고 항목
kms: WrappingKeySpec
AWS KMS 조건 키 | 조건 유형 | 값 유형 | API오퍼레이션 | 정책 유형 |
---|---|---|---|---|
|
String |
단일 값 |
|
키 정책 및 IAM 정책 |
이 조건 키는 요청의 WrappingKeySpec파라미터 값을 기반으로 GetParametersForImport작업에 대한 액세스를 제어합니다. 가져 오기 프로세스 중에 공개 키의 특정 유형을 사용하는 사용자를 요구하는 이 조건을 사용할 수 있습니다. 요청에서 다른 키 유형을 지정하면 실패합니다.
WrappingKeySpec
파라미터 값에 사용할 수 있는 값은 RSA_2048
뿐이므로 실제로 사용자에게 이 값을 실제로 사용하지 못하도록 할 경우 사용자가 GetParametersForImport
작업을 사용할 수 없게 됩니다.
다음 예제 정책 설명은 kms:WrappingAlgorithm
조건 키를 사용하여 요청의 WrappingKeySpec
이 RSA_4096
이 되도록 요구합니다.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:GetParametersForImport", "Resource": "*", "Condition": { "StringEquals": { "kms:WrappingKeySpec": "RSA_4096" } } }
참고 항목