AWS KMS의 ABAC - AWS Key Management Service

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

AWS KMS의 ABAC

속성 기반 액세스 제어(ABAC)는 속성을 기반으로 권한을 정의하는 권한 부여 전략입니다. AWS KMS는 KMS 키와 연결된 태그 및 별칭을 기반으로 고객 관리 키에 대한 액세스를 제어할 수 있도록 하여 ABAC를 지원합니다. AWS KMS에서 ABAC를 활성화하는 태그 및 별칭 조건 키는 정책을 편집하거나 권한 부여를 관리하지 않고도 보안 주체가 KMS 키를 사용할 수 있도록 권한을 부여하는 강력하고 유연한 방법을 제공합니다. 그러나 보안 주체에 실수로 액세스가 허용되거나 거부되지 않도록 이러한 기능을 주의해서 사용해야 합니다.

ABAC를 사용하는 경우 태그 및 별칭 관리 권한이 이제 액세스 제어 권한이라는 점에 유의하십시오. 태그 또는 별칭에 따라 달라지는 정책을 배포하기 전에 모든 KMS 키의 기존 태그와 별칭을 알고 있어야 합니다. 별칭을 추가, 삭제 및 업데이트하거나 키에 태그를 지정하고 태그를 해제할 때 합리적인 예방 조치를 취해야 합니다. 태그와 별칭을 관리할 수 있는 권한을 필요한 보안 주체에게만 부여하고 관리할 수 있는 태그와 별칭을 제한합니다.

참고

AWS KMS에 ABAC를 사용하는 경우 보안 주체에게 태그 및 별칭을 관리할 수 있는 권한을 부여하는 데 주의해야 합니다. 태그 또는 별칭을 변경하면 KMS 키에 대한 사용 권한을 허용하거나 거부할 수 있습니다. 키 정책을 변경하거나 권한 부여를 생성할 권한이 없는 키 관리자는 태그 또는 별칭을 관리할 권한이 있는 경우 KMS 키에 대한 액세스를 제어할 수 있습니다.

태그 및 별칭 변경으로 KMS 키 인증에 영향을 미치는 데 최대 5분이 소요될 수 있습니다. 최근 변경 사항은 권한 부여에 영향을 미치기 전에 API 작업에서 볼 수 있습니다.

별칭을 기반으로 KMS 키에 대한 액세스를 제어하려면 조건 키를 사용해야 합니다. 별칭을 사용하여 정책문의 Resource 요소에서 KMS 키를 나타낼 수 없습니다. 별칭이 Resource 요소에 나타나면 정책문이 연결된 KMS 키가 아니라 별칭에 적용됩니다.

자세히 알아보기

AWS KMS에 대한 ABAC 조건 키

태그 및 별칭을 기반으로 KMS 키에 대한 액세스 권한을 부여하려면 키 정책 또는 IAM 정책에서 다음 조건 키를 사용합니다.

ABAC 조건 키 설명 정책 유형 AWS KMS 작업
aws:ResourceTag KMS 키의 태그(키 및 값)가 정책의 태그 (키 및 값) 또는 태그 패턴과 일치합니다. IAM 정책만 KMS 키 리소스 작업 2
aws:RequestTag/tag-key 요청의 태그(키 및 값)가 정책의 태그(키 및 값) 또는 태그 패턴과 일치합니다. 주요 정책 및 IAM 정책1 TagResource, UntagResource
aws:TagKeys 요청의 태그 키가 정책의 태그 키와 일치합니다. 주요 정책 및 IAM 정책1 TagResource, UntagResource
kms:ResourceAliases KMS 키와 연결된 별칭은 정책의 별칭 또는 별칭 패턴과 일치합니다. IAM 정책만 KMS 키 리소스 작업 2
kms:RequestAlias 요청의 KMS 키를 나타내는 별칭은 정책의 별칭 또는 별칭 패턴과 일치합니다. 주요 정책 및 IAM 정책1 암호화 작업, DescribeKey, GetPublicKey

1키 정책에서 사용할 수 있는 모든 조건 키는 IAM 정책에서도 사용할 수 있지만 키 정책에서 허용하는 경우에만 가능합니다.

2KMS 키 리소스 작업은 특정 KMS 키에 대해 권한이 부여된 작업입니다. KMS 키 리소스 작업을 식별하려면 AWS KMS 권한 테이블에서 작업의 Resources 열에서 KMS 키 값을 찾습니다.

예를 들어 이러한 조건 키를 사용하여 다음 정책을 생성할 수 있습니다.

  • 특정 별칭 또는 별칭 패턴이 있는 KMS 키를 사용할 수 있는 권한을 허용하는 kms:ResourceAliases가 포함된 IAM 정책. 이는 태그에 의존하는 정책과 약간 다릅니다. 정책에서 별칭 패턴을 사용할 수 있지만 각 별칭은 AWS 계정 및 리전에서 고유해야 합니다. 이렇게 하면 정책 설명에 KMS 키의 키 ARN을 나열하지 않고 선택한 KMS 키 집합에 정책을 적용할 수 있습니다. 집합에서 KMS 키를 추가하거나 제거하려면 KMS 키의 별칭을 변경합니다.

  • 보안 주체가 Encrypt 작업에서 KMS 키를 사용하도록 허용하지만 Encrypt 요청이 해당 별칭을 사용하여 KMS 키를 식별하는 경우에만 허용하는 kms:RequestAlias가 포함된 키 정책.

  • 특정 태그 키 및 태그 값과 함께 KMS 키를 사용할 수 있는 권한을 거부하는 aws:ResourceTag/tag-key가 포함된 IAM 정책. 이렇게 하면 정책문에 KMS 키의 키 ARN을 나열하지 않고 선택한 KMS 키 집합에 정책을 적용할 수 있습니다. KMS 키를 집합에서 추가하거나 제거하려면 KMS 키에 태그를 지정하거나 태그를 해제합니다.

  • 보안 주체가 "Purpose"="Test" KMS 키 태그만 삭제할 수 있도록 허용하는 aws:RequestTag/tag-key가 포함된 IAM 정책.

  • Restricted 태그 키로 KMS 키에 태그를 지정하거나 태그를 해제할 수 있는 권한을 거부하는 aws:TagKeys가 포함된 IAM 정책.

ABAC는 액세스 관리를 유연하고 확장 가능하게 합니다. 예를 들어 aws:ResourceTag/tag-key 조건 키를 사용하여 KMS 키에 Purpose=Test 태그가 있는 경우에만 보안 주체가 지정된 작업에 KMS 키를 사용하도록 허용하는 IAM 정책을 생성할 수 있습니다. 이 정책은 AWS 계정의 모든 리전에 있는 모든 KMS 키에 적용됩니다.

사용자 또는 역할에 연결된 경우 다음 IAM 정책은 보안 주체가 지정된 작업에 대해 Purpose=Test 태그가 있는 모든 기존 KMS 키를 사용할 수 있도록 허용합니다. 새 KMS 키 또는 기존 KMS 키에 대한 액세스를 제공하기 위해 정책을 변경할 필요가 없습니다. Purpose=Test 태그를 KMS 키에 지정하기만 하면 됩니다. 마찬가지로 Purpose=Test 태그가 있는 KMS 키에서 이 액세스 권한을 제거하려면 태그를 편집하거나 삭제합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "StringEquals": { "aws:ResourceTag/Purpose": "Test" } } } ] }

그러나 이 기능을 사용하는 경우 태그와 별칭을 관리할 때는 주의해야 합니다. 태그 또는 별칭을 추가, 변경 또는 삭제하면 실수로 KMS 키에 대한 액세스를 허용하거나 거부할 수 있습니다. 키 정책을 변경하거나 권한 부여를 생성할 권한이 없는 키 관리자는 태그 및 별칭을 관리할 권한이 있는 경우 KMS 키에 대한 액세스를 제어할 수 있습니다. 이 위험을 완화하기 위해 별칭태그 관리 권한을 제한하는 것이 좋습니다. 예를 들어, 선택된 보안 주체만 Purpose=Test 태그를 관리하도록 허용할 수 있습니다. 자세한 내용은 별칭을 사용하여 KMS 키에 대한 액세스 제어태그를 사용하여 KMS 키에 대한 액세스 제어 섹션을 참조하세요.

태그 또는 별칭?

AWS KMS는 태그 및 별칭이 있는 ABAC를 지원합니다. 두 옵션 모두 유연하고 확장 가능한 액세스 제어 전략을 제공하지만 서로 약간 다릅니다.

특정 AWS 사용 패턴에 따라 태그를 사용하거나 별칭을 사용하기로 결정할 수 있습니다. 예를 들어 대부분의 관리자에게 이미 태그 사용 권한을 부여한 경우 별칭을 기반으로 권한 부여 전략을 제어하는 것이 더 쉬울 수 있습니다. 또는 KMS 키당 별칭 할당량에 근접한 경우 태그 기반 권한 부여 전략을 선호할 수 있습니다.

일반적으로 다음과 같은 이점이 있습니다.

태그 기반 액세스 제어의 이점

  • 다른 유형의 AWS 리소스에 대해 동일한 권한 부여 메커니즘있습니다.

    동일한 태그 또는 태그 키를 사용하여 Amazon Relational Database Service(RDS) 클러스터, Amazon Elastic Block Store(Amazon EBS) 볼륨 및 KMS 키와 같은 여러 리소스 유형에 대한 액세스를 제어할 수 있습니다. 이 기능을 사용하면 기존의 역할 기반 액세스 제어보다 유연한 여러 가지 권한 부여 모델을 사용할 수 있습니다.

  • KMS 키 그룹에 대한 액세스 권한을 부여합니다.

    태그를 사용하여 동일한 AWS 계정 및 리전의 KMS 키 그룹에 대한 액세스를 관리할 수 있습니다. 선택한 KMS 키에 동일한 태그 또는 태그 키를 할당합니다. 그런 다음 태그 또는 태그 키를 기반으로 유지 관리가 간편한 정책 설명을 만듭니다. 인증 그룹에서 KMS 키를 추가하거나 제거하려면 태그를 추가하거나 제거하십시오. 정책을 편집할 필요가 없습니다.

별칭 기반 액세스 제어의 이점

  • 별칭을 기반으로 암호화 작업에 대한 액세스 권한을 부여합니다.

    aws:RequestTag/tag-key를 비롯해 속성에 대한 대부분의 요청 기반 정책 조건은 속성을 추가, 편집 또는 삭제하는 작업에만 영향을 미칩니다. 그러나 kms:RequestAlias 조건 키는 요청에서 KMS 키를 식별하는 데 사용되는 별칭을 기반으로 암호화 작업에 대한 액세스를 제어합니다. 예를 들어 보안 주체에게 Encrypt 작업에서 KMS 키를 사용할 수 있는 권한을 부여할 수 있지만 KeyId 매개 변수의 값이 alias/restricted-key-1인 경우에만 가능합니다. 이 조건을 충족하려면 다음 사항이 모두 필요합니다.

    • KMS 키는 해당 별칭과 연결되어 있어야 합니다.

    • 요청은 별칭을 사용하여 KMS 키를 식별해야 합니다.

    • 보안 주체는 kms:RequestAlias 조건에 따라 KMS 키를 사용할 수 있는 권한이 있어야 합니다.

    이는 애플리케이션에서 일반적으로 별칭 이름이나 별칭 ARN을 사용하여 KMS 키를 참조하는 경우에 특히 유용합니다.

  • 매우 제한된 권한을 제공합니다.

    별칭은 AWS 계정 및 리전에 고유해야 합니다. 따라서 보안 주체에 별칭을 기반으로 KMS 키에 대한 액세스 권한을 부여하는 것이 태그를 기반으로 액세스 권한을 부여하는 것보다 훨씬 더 제한적일 수 있습니다. 별칭과 달리 동일한 계정 및 리전에 있는 여러 KMS 키에 태그를 할당할 수 있습니다. 원하는 경우 alias/test*와 같은 별칭 패턴을 사용하여 보안 주체에게 동일한 계정 및 리전의 KMS 키 그룹에 대한 액세스 권한을 부여할 수 있습니다. 그러나 특정 별칭에 대한 액세스를 허용하거나 거부하면 KMS 키에 대한 매우 엄격한 제어가 가능합니다.