

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

# Amazon EC2 Auto Scaling의 데이터 보호
<a name="ec2-auto-scaling-data-protection"></a>

 AWS [공동 책임 모델](https://aws.amazon.com/compliance/shared-responsibility-model/) Amazon EC2 Auto Scaling의 데이터 보호에 적용됩니다. 이 모델에 설명된 대로 AWS 는 모든를 실행하는 글로벌 인프라를 보호할 책임이 있습니다 AWS 클라우드. 사용자는 이 인프라에 호스팅되는 콘텐츠에 대한 통제 권한을 유지할 책임이 있습니다. 사용하는 AWS 서비스 의 보안 구성과 관리 태스크에 대한 책임도 사용자에게 있습니다. 데이터 프라이버시에 관한 자세한 내용은 [데이터 프라이버시 FAQ](https://aws.amazon.com/compliance/data-privacy-faq/)를 참조하세요. 유럽의 데이터 보호에 대한 자세한 내용은 *AWS 보안 블로그*의 [AWS 공동 책임 모델 및 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 블로그 게시물을 참조하세요.

데이터 보호를 위해 자격 증명을 보호하고 AWS 계정 AWS IAM Identity Center 또는 AWS Identity and Access Management (IAM)를 사용하여 개별 사용자를 설정하는 것이 좋습니다. 이렇게 하면 개별 사용자에게 자신의 직무를 충실히 이행하는 데 필요한 권한만 부여됩니다. 또한 다음과 같은 방법으로 데이터를 보호하는 것이 좋습니다.
+ 각 계정에 다중 인증(MFA)을 사용합니다.
+ SSL/TLS를 사용하여 AWS 리소스와 통신합니다. TLS 1.2는 필수이며 TLS 1.3을 권장합니다.
+ 를 사용하여 API 및 사용자 활동 로깅을 설정합니다 AWS CloudTrail. CloudTrail 추적을 사용하여 AWS 활동을 캡처하는 방법에 대한 자세한 내용은 *AWS CloudTrail 사용 설명서*의 [ CloudTrail 추적 작업을 참조하세요](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html).
+ 내부의 모든 기본 보안 제어와 함께 AWS 암호화 솔루션을 사용합니다 AWS 서비스.
+ Amazon S3에 저장된 민감한 데이터를 검색하고 보호하는 데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용합니다.
+ 명령줄 인터페이스 또는 API를 AWS 통해에 액세스할 때 FIPS 140-3 검증 암호화 모듈이 필요한 경우 FIPS 엔드포인트를 사용합니다. 사용 가능한 FIPS 엔드포인트에 대한 자세한 내용은 [연방 정보 처리 표준(FIPS) 140-3](https://aws.amazon.com/compliance/fips/)을 참조하세요.

고객의 이메일 주소와 같은 기밀 정보나 중요한 정보는 태그나 **이름** 필드와 같은 자유 형식 텍스트 필드에 입력하지 않는 것이 좋습니다. 여기에는 Amazon EC2 Auto Scaling 또는 기타 AWS 서비스 에서 콘솔 AWS CLI, API 또는 AWS SDKs를 사용하여 작업하는 경우가 포함됩니다. 이름에 사용되는 태그 또는 자유 형식 텍스트 필드에 입력하는 모든 데이터는 청구 또는 진단 로그에 사용될 수 있습니다. 외부 서버에 URL을 제공할 때 해당 서버에 대한 요청을 검증하기 위해 자격 증명을 URL에 포함해서는 안 됩니다.

Amazon EC2 인스턴스를 시작할 때 사용자 데이터를 해당 인스턴스에 전달하여 인스턴스가 부팅될 때 추가 구성을 할 수 있는 옵션이 있습니다. 또한 인스턴스로 전달되는 사용자 데이터에 기밀 또는 민감한 정보를 절대 넣지 않는 것이 좋습니다.

## AWS KMS keys 를 사용하여 Amazon EBS 볼륨 암호화
<a name="encryption"></a>

 AWS KMS keys를 사용하여 클라우드에 저장된 Amazon EBS 볼륨 데이터를 암호화하도록 Auto Scaling 그룹을 구성할 수 있습니다. Amazon EC2 Auto Scaling은 AWS 관리형 키와 고객 관리형 키를 지원하여 데이터를 암호화합니다. 시작 구성을 사용할 때는 고객 관리형 키를 지정하는 `KmsKeyId` 옵션을 사용할 수 없습니다. 고객 관리형 키를 지정하려면 시작 템플릿을 대신 사용하세요. 자세한 내용은 [Auto Scaling 그룹에 대한 시작 템플릿 생성](create-launch-template.md) 단원을 참조하십시오. AWS KMS 암호화 키를 생성, 저장 및 관리하는 방법에 대한 자세한 내용은 [AWS Key Management Service 개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)를 참조하세요.

시작 템플릿 또는 시작 구성을 설정하기 전에 EBS 지원 AMI에서 고객 관리형 키를 구성하거나 기본적으로 암호화를 사용하여 생성한 새 EBS 볼륨 및 스냅샷 사본의 암호화를 적용할 수도 있습니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [EBS 지원 AMI로 암호화 사용](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html) 및 *Amazon EBS 사용 설명서*의 [기본적으로 암호화](https://docs.aws.amazon.com/ebs/latest/userguide/encryption-by-default.html)를 참조하세요.

**참고**  
암호화에 고객 관리형 키를 사용할 때 Auto Scaling 인스턴스를 시작하는 데 필요한 키 정책을 설정하는 방법에 대한 자세한 설명은 [암호화된 볼륨에 사용하는 데 필요한 AWS KMS 키 정책](key-policy-requirements-EBS-encryption.md) 섹션을 참조하세요.

## 관련 리소스
<a name="data-protection-related-resources"></a>

Amazon EBS에서 제공하는 데이터 보호 지침은 *Amazon EBS 사용 설명서*의 [Amazon Elastic Block Store의 데이터 보호](https://docs.aws.amazon.com/ebs/latest/userguide/data-protection.html)를 참조하세요.

# 암호화된 볼륨에 사용하는 데 필요한 AWS KMS 키 정책
<a name="key-policy-requirements-EBS-encryption"></a>

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

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

**참고**  
Amazon EC2 Auto Scaling은 기본 AWS 관리형 키 를 사용하여 계정의 암호화된 볼륨을 보호하는 데 추가 승인이 필요하지 않습니다.

**Contents**
+ [개요](#overview)
+ [키 정책 구성](#configuring-key-policies)
+ [예 1: 고객 관리형 키에 대한 액세스를 허용하는 키 정책 섹션](#policy-example-cmk-access)
+ [예 2: 고객 관리형 키에 대한 교차 계정 액세스를 허용하는 키 정책 섹션](#policy-example-cmk-cross-account-access)
+ [AWS KMS 콘솔에서 키 정책 편집](#eding-key-policies-console)

## 개요
<a name="overview"></a>

Amazon EC2 Auto Scaling이 인스턴스를 시작할 때 Amazon EBS 암호화에 다음을 사용할 AWS KMS keys 수 있습니다.
+ [AWS 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) - Amazon EBS에서 생성, 소유 및 관리하는 계정의 암호화 키입니다. 이 키는 새 계정을 위한 기본 암호화 키입니다. AWS 관리형 키 는 고객 관리형 키를 지정하지 않는 한 암호화에 사용됩니다.
+ [고객 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) - 사용자가 생성, 소유 및 관리하는 사용자 지정 암호화 키입니다. 자세한 정보는 *AWS Key Management Service 개발자 안내서*의 [키 생성](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)을 참조하세요.

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

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

## 키 정책 구성
<a name="configuring-key-policies"></a>

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

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

Amazon EC2 Auto Scaling에서 사용하려면 키 정책에 최소한 두 개의 정책 명령문을 추가해야 합니다.
+ 첫 번째 명령문을 사용하면 `Principal` 요소에 지정된 IAM 자격 증명에서 CMK를 직접 사용하도록 할 수 있습니다. 여기에는 키에 대해 AWS KMS `Encrypt`, `Decrypt`, `ReEncrypt*``GenerateDataKey*`, 및 `DescribeKey` 작업을 수행할 수 있는 권한이 포함됩니다.
+ 두 번째 문은 `Principal` 요소에 지정된 IAM 자격 증명이 `CreateGrant` 작업을 사용하여 AWS KMS 또는 다른 보안 주체와 통합된에 자체 권한의 하위 집합을 위임 AWS 서비스 하는 권한 부여를 생성하도록 허용합니다. 이를 통해 사용자는 키를 사용하여 사용자 대신 암호화된 리소스를 생성할 수 있습니다.

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

다음 각 예에서 키 ID 또는 서비스 연결 역할의 이름과 같이 바꿔야 하는 인수는 *사용자 자리표시자 텍스트*로 표시됩니다. 대부분의 경우 서비스 연결 역할의 이름을 Amazon EC2 Auto Scaling 서비스 연결 역할의 이름으로 대체할 수 있습니다.

자세한 정보는 다음 자료를 참조하세요.
+ 를 사용하여 키를 생성하려면 [create-key](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-key.html)를 AWS CLI참조하세요.
+ 를 사용하여 키 정책을 업데이트하려면 [put-key-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/put-key-policy.html)를 AWS CLI참조하세요.
+ 키 ID와 Amazon 리소스 이름(ARN)을 찾으려면 *AWS Key Management Service 개발자 안내서*의 [키 ID 및 ARN 찾기](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html)를 참조하세요.
+ Amazon EC2 Auto Scaling 서비스 연결 역할에 대한 자세한 정보는 [Amazon EC2 Auto Scaling의 서비스 연결 역할](autoscaling-service-linked-role.md)(을)를 참조하세요.
+ Amazon EBS 암호화 및 KMS에 대한 자세한 내용은 *Amazon EBS 사용 설명서* 및 [AWS Key Management Service 개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)의 [Amazon EBS 암호화](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html)를 참조하세요.

## 예 1: 고객 관리형 키에 대한 액세스를 허용하는 키 정책 섹션
<a name="policy-example-cmk-access"></a>

고객 관리형 키의 키 정책에 다음 두 정책 명령문을 추가하여 예제 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: 고객 관리형 키에 대한 교차 계정 액세스를 허용하는 키 정책 섹션
<a name="policy-example-cmk-cross-account-access"></a>

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": "*"
   }
   ```

1. 그런 다음, Auto Scaling 그룹을 생성하려는 계정에서 관련 권한을 적절한 서비스 연결 역할에 위임하는 권한 부여를 생성합니다. 권한 부여의 `Grantee Principal` 요소는 적절한 서비스 연결 역할의 ARN입니다. `key-id`는 키의 ARN입니다.

   다음은 계정 *111122223333*의 **AWSServiceRoleForAutoScaling**이라는 서비스 연결 역할에 계정 *444455556666*의 고객 관리형 키의 사용 권한을 부여하는 [create-grant](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-grant.html) CLI 명령의 예입니다.

   ```
   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 정책에서는 계정 *111122223333*의 IAM 자격 증명(사용자 또는 역할)이 계정 *444455556666*의 고객 관리형 키에 대한 권한 부여를 생성하도록 허용합니다.

------
#### [ JSON ]

****  

   ```
   {
     "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"
       }
     ]
   }
   ```

------

   다른 AWS 계정에서 KMS 키에 대한 권한 부여 생성에 대한 자세한 정보는 *AWS Key Management Service 개발자 안내서*의 [AWS KMS의 권한 부여](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)를 참조하세요.
**중요**  
피부여자 보안 주체로 지정된 서비스 연결 역할 이름은 기존 역할의 이름이어야 합니다. 권한 부여를 생성한 후 Amazon EC2 Auto Scaling에서 지정된 KMS 키를 사용할 수 있도록 허용하려면 서비스 연결 역할을 삭제했다가 다시 생성하지 마세요.

## AWS KMS 콘솔에서 키 정책 편집
<a name="eding-key-policies-console"></a>

이전 섹션의 예에서는 키 정책을 변경하는 유일한 방법인 키 정책에 명령문을 추가하는 방법을 보여줍니다. 키 정책을 변경하는 가장 쉬운 방법은 키 정책에 콘솔 AWS KMS 의 기본 보기를 사용하고 IAM 자격 증명(사용자 또는 역할)을 적절한 키 정책에 대한 *키 사용자* 중 하나로 만드는 것입니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*[의 AWS Management Console 기본 보기 사용을](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to-console-default-view) 참조하세요.

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