다중 리전 키에 대한 액세스 제어 - AWS Key Management Service

다중 리전 키에 대한 액세스 제어

다중 리전 키를 사용하면 규정 준수, 재해 복구 및 백업 시나리오에서 단일 리전 키를 사용할 수 있습니다. 그러나 다중 리전 키의 보안 속성은 단일 리전 키의 보안 속성과 크게 다르기 때문에 다중 리전 키의 생성, 관리 및 사용을 승인할 때는 주의를 기울이는 것이 좋습니다.

참고

Resource 필드에 와일드카드 문자가 있는 기존 IAM 정책문은 단일 리전 키와 다중 리전 키 모두에 적용됩니다. 단일 리전 KMS 키 또는 다중 리전 키로 제한하려면 kms:MultiRegion 조건 키를 사용합니다.

단일 리전으로 충분할 경우 권한 부여 도구를 사용하여 다중 리전 키를 생성 및 사용할 수 없게 할 수 있습니다. 보안 주체가 다중 리전 키를 필요로 하는 AWS 리전에만 복제하도록 허용합니다. 다중 리전 키에 대한 사용 권한을 필요로 하는 보안 주체와 해당 키가 필요한 작업에 대해서만 부여합니다.

키 정책, IAM 정책 및 권한 부여를 사용하여 IAM 보안 주체가 AWS 계정에서 다중 리전 키를 관리하고 사용하도록 허용할 수 있습니다. 각 다중 리전 키는 고유한 키 ARN 및 키 정책을 가진 독립적인 리소스입니다. 각 키에 대한 키 정책을 설정 및 유지 관리하고 신규 및 기존 IAM 정책이 권한 부여 전략을 구현하는지 확인해야 합니다.

다중 리전 키에 대한 인증 기본 사항

다중 리전 키에 대한 주요 정책 및 IAM 정책을 설계할 때는 다음 원칙을 고려하십시오.

  • 키 정책 — 각 다중 리전 키는 독립적인 KMS 키 리소스이며 자체 키 정책이 있습니다. 관련된 다중 리전 키 집합의 각 키에 동일하거나 다른 키 정책을 적용할 수 있습니다. 키 정책은 다중 리전 키의 공유 속성아닙니다. AWS KMS는 관련된 다중 리전 키 간에 키 정책을 복사하거나 동기화하지 않습니다.

    AWS KMS 콘솔에서 복제 키를 생성할 때 콘솔은 편의상 기본 키의 현재 키 정책을 표시합니다. 이 키 정책을 사용하거나 편집하거나 삭제하고 바꿀 수 있습니다. 그러나 기본 키 정책을 변경하지 않고 수락하더라도 AWS KMS는 정책을 동기화하지 않습니다. 예를 들어, 기본 키의 키 정책을 변경하는 경우 복제 키의 키 정책은 동일하게 유지됩니다.

  • 기본 키 정책CreateKeyReplicateKey 작업을 사용하여 다중 리전 키를 생성하는 경우 요청에 키 정책을 지정하지 않는 한 기본 키 정책이 적용됩니다. 이는 단일 리전 키에 적용되는 기본 키 정책과 동일합니다.

  • IAM 정책 — 모든 KMS 키와 마찬가지로 IAM 정책을 사용하여 키 정책에서 허용하는 경우에만 다중 리전 키에 대한 액세스를 제어할 수 있습니다. IAM 정책은 기본적으로 모든 AWS 리전에 적용됩니다. 그러나 aws:RequestedRegion과 같은 조건 키를 사용하여 특정 리전으로 권한을 제한할 수 있습니다.

    기본 및 복제본 키를 만들려면 보안 주체는 키가 생성된 리전에 적용되는 IAM 정책에 kms:CreateKey 권한이 있어야 합니다.

  • 권한 부여 — AWS KMS 권한 부여는 리전별로 다릅니다. 각 권한 부여는 하나의 KMS 키에 대한 권한을 허용합니다. 권한 부여를 사용하여 다중 리전 기본 키 또는 복제본 키에 대한 사용 권한을 허용할 수 있습니다. 그러나 다중 리전 키와 관련된 경우에도 단일 권한 부여를 사용하여 여러 KMS 키에 대한 사용 권한을 허용할 수는 없습니다.

  • 키 ARN — 각 다중 리전 키에는 고유 키 ARN이 있습니다. 관련된 다중 리전 키의 키 ARN은 파티션, 계정 및 키 ID는 같지만 리전은 다릅니다.

    특정 다중 리전 키에 IAM 정책문을 적용하려면 해당 키 ARN 또는 해당 리전을 포함하는 키 ARN 패턴을 사용합니다. IAM 정책문을 모든 관련 다중 리전 키에 적용하려면 다음 예시에서와 같이 ARN의 리전 요소에 와일드카드 문자(*)를 사용합니다.

    { "Effect": "Allow", "Action": [ "kms:Describe*", "kms:List*" ], "Resource": { "arn:aws:kms:*::111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab" } }

    AWS 계정의 모든 다중 리전 키에 정책문을 적용하려면 kms:MultiRegion 정책 조건 또는 고유한 mrk- 접두사를 포함하는 키 ID 패턴을 사용할 수 있습니다.

  • 서비스 연결 역할 — 다중 리전 기본 키를 만드는 보안 주체는 iam:CreateServiceLinkedRole 권한이 있어야 합니다.

    관련 다중 리전 키의 공유 속성을 동기화하기 위해 AWS KMS는 IAM 서비스 연결 역할을 맡습니다. AWS KMS는 다중 리전 기본 키를 생성할 때마다 AWS 계정에 서비스 연결 역할을 생성합니다. (역할이 존재하는 경우 AWS KMS는 유해한 영향을 미치지 않습니다.) 역할은 모든 리전에서 유효합니다. AWS KMS가 서비스 연결 역할을 생성(또는 재생성)하도록 허용하려면 다중 리전 기본 키를 생성하는 보안 주체에게 iam:CreateServiceLinkedRole 권한이 있어야 합니다.

다중 리전 키 관리자 및 사용자 권한 부여

다중 리전 키를 만들고 관리하는 보안 주체는 기본 및 복제본 리전에서 다음 사용 권한이 필요합니다.

  • kms:CreateKey

  • kms:ReplicateKey

  • kms:UpdatePrimaryRegion

  • iam:CreateServiceLinkedRole

기본 키 생성

다중 리전 기본 키를 생성하려면 보안 주체에게 기본 키의 리전에서 유효한 IAM 정책에 kms:CreateKeyiam:CreateServiceLinkedRole 권한이 필요합니다. 이러한 사용 권한이 있는 보안 주체는 사용자가 권한을 제한하지 않는 한 단일 리전 및 다중 리전 키를 만들 수 있습니다.

iam:CreateServiceLinkedRole 권한을 통해 AWS KMS는 AWSServiceRoleForKeyManagementServiceMultiRegionKeys 역할을 생성하여 관련 다중 리전 키의 공유 속성을 동기화할 수 있습니다.

예를 들어, 이 IAM 정책은 보안 주체가 모든 유형의 KMS 키를 만들 수 있도록 허용합니다.

{ "Version": "2012-10-17", "Statement":{ "Action": [ "kms:CreateKey", "iam:CreateServiceLinkedRole" ], "Effect":"Allow", "Resource":"*" } }

다중 리전 기본 키를 만들 수 있는 권한을 허용하거나 거부하려면 kms:MultiRegion 조건 키를 사용합니다. 유효 값은 true(다중 리전 키) 또는 false(단일 리전 키)입니다. 예를 들어 다음 IAM 정책문은 보안 주체가 다중 리전 키를 생성하지 못하도록 방지하기 위해 kms:MultiRegion 조건 키와 함께 Deny 작업을 사용합니다.

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

키 복제

다중 리전 복제본 키를 생성하려면 보안 주체는 다음 권한을 필요로 합니다.

이러한 권한을 허용할 때는 주의해야 합니다. 보안 주체는 KMS 키와 사용 권한을 부여하는 키 정책을 만들 수 있습니다. kms:ReplicateKey 권한은 또한 AWS KMS 내의 리전 경계를 넘어 키 구성 요소의 이전을 허용합니다.

다중 리전 키를 복제할 수 있는 AWS 리전를 제한하려면 kms:ReplicaRegion 조건 키를 사용합니다. 그것은 단지 kms: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" ] } } }

기본 리전 업데이트

인증된 보안 주체는 복제본 키를 기본 키로 변환하여 이전 기본 키를 복제본으로 변경할 수 있습니다. 이 작업을 기본 리전 업데이트라고 합니다. 기본 리전을 업데이트하려면 보안 주체에게 두 리전 모두에서 kms:UpdatePrimaryRegion 권한이 필요합니다. 키 정책 또는 IAM 정책에서 이러한 권한을 제공할 수 있습니다.

  • kms:UpdatePrimaryRegion(기본 키에서). 이 권한은 기본 키 리전에서 유효해야 합니다.

  • kms:UpdatePrimaryRegion(복제 키에서). 이 권한은 복제 키 리전에서 유효해야 합니다.

예를 들어 다음 키 정책은 관리자 역할을 수임할 수 있는 사용자에게 KMS 키의 기본 리전을 업데이트할 수 있는 권한을 부여합니다. 이 KMS 키는 이 작업에서 기본 키 또는 복제 키일 수 있습니다.

{ "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Administrator" }, "Action": "kms:UpdatePrimaryRegion" }

기본 키를 호스팅할 수 있는 AWS 리전를 제한하려면 kms:PrimaryRegion 조건 키를 사용합니다. 예를 들어 다음 IAM 정책문은 보안 주체가 AWS 계정에 있는 다중 리전 키의 기본 리전을 업데이트하도록 허용하지만 새 기본 리전이 지정된 리전 중 하나인 경우에만 가능합니다.

{ "Effect": "Allow", "Action": "kms:UpdatePrimaryRegion", "Resource": { "arn:aws:kms:*:111122223333:key/*" }, "Condition": { "StringEquals": { "kms:PrimaryRegion": [ "us-west-2", "sa-east-1", "ap-southeast-1" ] } } }

다중 리전 키 사용 및 관리

기본적으로 AWS 계정 및 리전에서 KMS 키를 사용하고 관리할 권한이 있는 보안 주체는 다중 리전 키를 사용하고 관리할 수 있는 권한도 있습니다. 그러나 kms:MultiRegion 조건 키를 사용하여 단일 리전 키만 허용하거나 다중 리전 키만 허용할 수 있습니다. 또는 kms:MultiRegionKeyType 조건 키를 사용하여 다중 리전 기본 키만 허용하거나 복제본 키만 허용합니다. 두 조건 키는 CreateKey 작업 및 기존 KMS 키를 사용하는 모든 작업(예: Encrypt 또는 EnableKey)에 대한 액세스를 제어합니다.

다음 예제 IAM 정책문은 kms:MultiRegion 조건 키를 사용하여 보안 주체가 다중 리전 키를 사용하거나 관리하지 못하도록 합니다.

{ "Effect": "Deny", "Action": "kms:*", "Resource": "*", "Condition": { "Bool": "kms:MultiRegion": true } }

이 예제 IAM 정책문은 kms:MultiRegionKeyType 조건을 사용하여 보안 주체가 다중 리전 복제본 키에 대해서만 키 삭제를 예약하고 취소할 수 있도록 허용합니다.

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

AWS KMS가 다중 리전 키를 동기화하도록 승인

다중 리전 키를 지원하기 위해 AWS KMS는 IAM 서비스 연결 역할을 사용합니다. 이 역할은 AWS KMS에게 공유 속성을 동기화하는 데 필요한 권한을 부여합니다. AWS CloudTrail 로그에서 AWS KMS 동기화 공유 속성을 기록하는 SynchronizeMultiRegionKey CloudTrail 이벤트를 볼 수 있습니다.

다중 리전 키에 대한 서비스 연결 역할

서비스 연결 역할은 사용자를 대신해 다른 AWS 서비스를 호출할 수 있는 권한을 한 AWS 서비스에 제공하는 IAM 역할입니다. 이 역할은 복잡한 IAM 정책을 생성 및 유지 관리할 필요 없이 여러 통합 AWS 서비스의 기능을 손쉽게 사용할 수 있도록 설계되었습니다.

다중 리전 키의 경우 AWS KMS는 AWSKeyManagementServiceMultiRegionKeysServiceRolePolicy 정책을 사용하여 AWSServiceRoleForKeyManagementServiceMultiRegionKeys 서비스 연결 역할을 생성합니다. 이 정책은 역할에 kms:SynchronizeMultiRegionKey 권한을 부여하여 다중 리전 키의 공유 속성을 동기화할 수 있도록 합니다.

AWSServiceRoleForKeyManagementServiceMultiRegionKeys 서비스 연결 역할은 mrk.kms.amazonaws.com만 신뢰하기 때문에, AWS KMS만 이 서비스 연결 역할을 수임할 수 있습니다. 이 역할은 AWS KMS가 다중 리전 공유 속성을 동기화하는 데 필요한 작업으로 제한됩니다. 이렇게 해도 AWS KMS에 어떤 추가 권한도 부여되지 않습니다. 예를 들어 AWS KMS는 KMS 키를 생성, 복제 또는 삭제할 수 있는 권한이 없습니다.

AWS 서비스가 서비스 연결 역할을 사용하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 서비스 연결 역할 사용을 참조하십시오.

서비스 연결 역할 생성

역할이 아직 없는 경우 다중 리전 키를 생성할 때 AWS KMS가 자동으로 AWS 계정에서 AWSServiceRoleForKeyManagementServiceMultiRegionKeys 서비스 연결 역할을 생성합니다. 사용자는 이러한 서비스 연결 역할을 직접 생성하거나 다시 생성할 수 없습니다.

서비스 연결 역할 설명 편집

AWSServiceRoleForKeyManagementServiceMultiRegionKeys 서비스 연결 역할에서 역할 이름 또는 정책문을 편집할 수 없지만, 역할 설명은 편집이 가능합니다. 지침은 IAM 사용 설명서서비스 연결 역할 편집 단원을 참조하십시오.

서비스 연결 역할 삭제

AWS KMS는 AWS 계정에서 AWSServiceRoleForKeyManagementServiceMultiRegionKeys 서비스 연결 역할을 삭제할 수 없습니다. 그러나, AWS 계정 및 리전에 다중 리전 키가 없는 경우 AWS KMS는 AWSServiceRoleForKeyManagementServiceMultiRegionKeys 역할을 맡거나 권한을 사용하지 않습니다.