암호화된 볼륨과 함께 사용하는 데 필요한 AWS KMS 키 정책 - Amazon EC2 Auto Scaling

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

암호화된 볼륨과 함께 사용하는 데 필요한 AWS KMS 키 정책

Amazon EC2 Auto Scaling은 서비스 연결 역할을 사용하여 다른 에 권한을 위임합니다 AWS 서비스. Amazon EC2 Auto Scaling 서비스 연결 역할은 미리 정의되어 있으며 Amazon EC2 Auto Scaling이 AWS 서비스 사용자를 대신하여 다른 를 호출하는 데 필요한 권한을 포함합니다. 사전 정의된 권한에는 에 대한 액세스도 포함됩니다 AWS 관리형 키. 그러나, 해당 권한에는 이러한 키를 완전히 제어할 수 있는 고객 관리형 키에 대한 액세스 권한은 포함되어 있지 않습니다.

이 주제에서는 Amazon EBS 암호화를 위한 고객 관리형 키를 지정할 때 Auto Scaling 인스턴스를 시작하는 데 필요한 키 정책을 설정하는 방법을 설명합니다.

참고

Amazon EC2 Auto Scaling은 계정에서 암호화된 볼륨을 보호하기 위해 기본값을 사용하는 AWS 관리형 키 데 추가 권한이 필요하지 않습니다.

개요

Amazon EC2 Auto Scaling이 인스턴스를 시작할 때 Amazon EBS 암호화에 다음을 사용할 AWS KMS keys 수 있습니다.

  • AWS 관리형 키 – Amazon이 EBS 생성, 소유 및 관리하는 계정의 암호화 키입니다. 이 키는 새 계정을 위한 기본 암호화 키입니다. AWS 관리형 키 는 고객 관리형 키를 지정하지 않는 한 암호화에 사용됩니다.

  • 고객 관리형 키 - 생성, 소유 및 관리하는 사용자 지정 암호화 키입니다. 자세한 정보는 AWS Key Management Service 개발자 안내서키 생성을 참조하세요.

    참고: 키는 대칭이어야 합니다. AmazonEBS은 비대칭 고객 관리형 키를 지원하지 않습니다.

암호화된 볼륨을 지정하는 시작 템플릿 또는 암호화된 스냅샷을 생성하거나 기본적으로 암호화를 활성화할 때 고객 관리형 키를 구성합니다.

키 정책 구성

KMS 키에는 Amazon EC2 Auto Scaling이 고객 관리형 키로 암호화된 Amazon EBS 볼륨으로 인스턴스를 시작할 수 있도록 허용하는 키 정책이 있어야 합니다.

이 페이지의 예제를 사용하여 Amazon EC2 Auto Scaling이 고객 관리형 키에 액세스할 수 있도록 키 정책을 구성합니다. 키를 생성할 때 또는 나중에 고객 관리형 키의 키 정책을 수정할 수 있습니다.

Amazon EC2 Auto Scaling 을 사용하려면 최소한 두 개의 정책 문을 키 정책에 추가해야 합니다.

  • 첫 번째 문을 사용하면 Principal 요소에 지정된 IAM 자격 증명이 고객 관리형 키를 직접 사용할 수 있습니다. 여기에는 키에 대해 AWS KMS Encrypt, Decrypt, ReEncrypt*GenerateDataKey*, 및 DescribeKey 작업을 수행할 수 있는 권한이 포함됩니다.

  • 두 번째 문을 사용하면 Principal 요소에 지정된 IAM 자격 증명이 CreateGrant 작업을 사용하여 AWS KMS 또는 다른 보안 주체와 통합된 에 자체 권한의 하위 집합을 위임 AWS 서비스 하는 권한을 생성할 수 있습니다. 이를 통해 사용자는 키를 사용하여 사용자 대신 암호화된 리소스를 생성할 수 있습니다.

키 정책에 새 정책 명령문을 추가할 경우 정책의 기존 섹션을 변경하지 마세요.

다음 각 예제에서 키 ID 또는 서비스 연결 역할의 이름과 같이 교체해야 하는 인수는 로 표시됩니다.user placeholder text. 대부분의 경우 서비스 연결 역할의 이름을 Amazon EC2 Auto Scaling 서비스 연결 역할의 이름으로 바꿀 수 있습니다.

자세한 정보는 다음 자료를 참조하십시오.

예 1: 고객 관리형 키에 대한 액세스를 허용하는 키 정책 섹션

고객 관리형 키의 키 정책에 다음 두 정책 문을 추가하여 예제를 키에 대한 액세스가 허용되는 적절한 서비스 연결 역할ARN의 ARN 로 바꿉니다. 이 예제에서는 정책 섹션에 고객 관리형 키를 사용할 수 있는 AWSServiceRoleForAutoScaling 권한이라는 서비스 연결 역할에 부여됩니다.

{ "Sid": "Allow service-linked role use of the customer managed key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }

예 2: 고객 관리형 키에 대한 교차 계정 액세스를 허용하는 키 정책 섹션

Auto Scaling 그룹과 다른 계정에 고객 관리형 키를 생성하는 경우 키에 대한 크로스 계정 액세스를 허용하는 키 정책과 함께 권한 부여를 사용해야 합니다.

다음 순서로 완료해야 하는 두 단계가 있습니다.

  1. 먼저 고객 관리형 키의 키 정책에 다음 두 가지 정책 문을 추가합니다. 예제를 다른 계정ARN의 ARN 로 바꿉니다.111122223333 Auto Scaling 그룹을 생성 AWS 계정 하려는 의 실제 계정 ID를 사용합니다. 이렇게 하면 지정된 계정의 IAM 사용자 또는 역할에 다음 CLI 명령을 사용하여 키에 대한 권한을 생성할 수 있는 권한을 부여할 수 있습니다. 그러나, 이것만으로는 사용자에게 키에 대한 액세스 권한이 부여되지 않습니다.

    { "Sid": "Allow external account 111122223333 use of the customer managed key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
    { "Sid": "Allow attachment of persistent resources in external account 111122223333", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "kms:CreateGrant" ], "Resource": "*" }
  2. 그런 다음, Auto Scaling 그룹을 생성하려는 계정에서 관련 권한을 적절한 서비스 연결 역할에 위임하는 권한 부여를 생성합니다. 권한 부여의 Grantee Principal 요소는 적절한 서비스 연결 역할ARN의 입니다. key-id 는 키ARN의 입니다.

    다음은 계정에서 라는 서비스 연결 역할을 제공하는 create-grant CLI 명령의 예입니다AWSServiceRoleForAutoScaling.111122223333 계정에서 고객 관리형 키를 사용할 수 있는 권한 444455556666.

    aws kms create-grant \ --region us-west-2 \ --key-id arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d \ --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling \ --operations "Encrypt" "Decrypt" "ReEncryptFrom" "ReEncryptTo" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "DescribeKey" "CreateGrant"

    이 명령이 성공하려면 요청을 하는 사용자에게 CreateGrant 작업에 대한 권한이 있어야 합니다.

    다음 예제 IAM 정책은 계정의 IAM 자격 증명(사용자 또는 역할)을 허용합니다.111122223333 계정에서 고객 관리형 키에 대한 권한 부여 생성 444455556666.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreationOfGrantForTheKMSKeyinExternalAccount444455556666", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" } ] }

    다른 에서 KMS 키에 대한 권한 부여를 생성하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 에서 권한 부여 AWS KMS를 AWS 계정참조하세요.

    중요

    피부여자 보안 주체로 지정된 서비스 연결 역할 이름은 기존 역할의 이름이어야 합니다. 권한 부여를 생성한 후 권한 부여가 Amazon EC2 Auto Scaling이 지정된 KMS 키를 사용하도록 허용하도록 하려면 서비스 연결 역할을 삭제하고 다시 생성하지 마십시오.

AWS KMS 콘솔에서 키 정책 편집

이전 섹션의 예에서는 키 정책을 변경하는 유일한 방법인 키 정책에 명령문을 추가하는 방법을 보여줍니다. 키 정책을 변경하는 가장 쉬운 방법은 키 정책에 콘솔 AWS KMS 의 기본 뷰를 사용하고 적절한 키 정책에 대한 키 사용자 중 한 명을 IAM 자격 증명(사용자 또는 역할)으로 만드는 것입니다. 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS Management Console 기본 보기 사용을 참조하세요.

중요

주의할 점이 있습니다. 콘솔의 기본 보기 정책 문에는 고객 관리형 키에 대한 작업을 수행할 AWS KMS Revoke 수 있는 권한이 포함되어 있습니다. 계정의 고객 관리형 키에 대한 AWS 계정 액세스 권한을 부여하고 이 권한을 부여한 권한을 실수로 취소한 경우 외부 사용자는 더 이상 암호화된 데이터 또는 데이터를 암호화하는 데 사용된 키에 액세스할 수 없습니다.