

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

# 암호화된 Amazon SQS 대기열 구독을 사용하여 Amazon SNS Amazon SQS 주제 암호화 설정
<a name="sns-enable-encryption-for-topic-sqs-queue-subscriptions"></a>

주제에 대해 서버 측 암호화(SSE)를 활성화하여 데이터를 보호할 수 있습니다. Amazon SNS가 암호화된 Amazon SQS 대기열로 메시지를 전송하도록 허용하려면 Amazon SQS 대기열과 연결된 고객 관리형 키에는 AWS KMS API 작업 `GenerateDataKey` 및 `Decrypt`에 Amazon SNS 서비스 보안 주체에 액세스 권한을 부여하는 정책 명령문이 있어야 합니다. SSE 사용에 관한 자세한 정보는 [서버 측 암호화를 사용한 Amazon SNS 데이터 보안](sns-server-side-encryption.md)에서 확인하세요.

이 주제에서는 AWS Management Console을 사용하여 암호화된 Amazon SQS 대기열이 구독하는 Amazon SNS 주제에 대해 SSE를 활성화하는 방법을 설명합니다.

## 1단계: 사용자 지정 KMS 키 생성
<a name="create-custom-cmk"></a>

1. 최소한 `AWSKeyManagementServicePowerUser` 정책이 있는 사용자로 [AWS KMS 콘솔](https://console.aws.amazon.com/kms/) 에 로그인합니다.

1. **Create key(키 생성)**를 선택합니다.

1. 대칭 암호화 KMS 키를 생성하려면 **키 유형(Key type)**에 **대칭(Symmetric)**을 선택합니다.

    AWS KMS 콘솔에서 비대칭 KMS 키를 생성하는 방법에 대한 자세한 내용은 [비대칭 KMS 키 생성(콘솔)](https://docs.aws.amazon.com/kms/latest/developerguide/asymm-create-key.html#create-asymmetric-keys-console)을 참조하세요.

1. **키 사용(Key usage)**에서 **암호화 및 해독(Encrypt and decrypt)** 옵션이 선택됩니다.

   MAC 코드를 생성 및 확인하는 KMS 키를 생성하는 방법에 대한 자세한 내용은 [HMAC KMS 키 생성](https://docs.aws.amazon.com/kms/latest/developerguide/hmac-create-key.html)을 참조하세요.

   **고급 옵션**에 대한 자세한 내용은 [특수 용도 키](https://docs.aws.amazon.com/kms/latest/developerguide/key-types.html)를 참조하세요.

1. **다음**을 선택합니다.

1. KMS 키의 별칭을 입력합니다. 별칭은 **aws/**로 시작할 수 없습니다. **aws/** 접두사는 Amazon Web Services에서 예약하여 계정 AWS 관리형 키 에서 나타냅니다.
**참고**  
별칭을 추가, 삭제 또는 업데이트하면 KMS 키에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 [AWS KMS의 ABAC](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) 및 [별칭을 사용하여 KMS 키에 대한 액세스 제어](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#hmac-key-concept)를 참조하세요.

   별칭은 KMS 키를 식별하는 데 사용할 수 있는 표시 이름입니다. 보호하고자 하는 데이터의 유형 또는 KMS 키와 함께 사용할 애플리케이션을 나타내는 별칭을 선택하는 것이 좋습니다.

    AWS Management Console에서 KMS 키를 생성할 때 별칭이 필요합니다. 이들은 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업을 사용할 때 선택 사항입니다.

1. (선택 사항) KMS 키에 대한 설명을 입력합니다.

   [키 상태](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)가 `Pending Deletion` 또는 `Pending Replica Deletion`이 아닌 한 지금 설명을 추가하거나 언제든지 설명을 업데이트할 수 있습니다. 기존 고객 관리형 키의 설명을 추가, 변경 또는 삭제하려면 [에서 설명을 편집](https://docs.aws.amazon.com/kms/latest/developerguide/editing-keys.html) AWS Management Console 하거나 [UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html) 작업을 사용합니다.

1. (선택 사항) 태그 키와 태그 값(선택)을 입력합니다. KMS 키에 두 개 이상의 태그를 추가하려면 **태그 추가(Add tag)**를 선택합니다.
**참고**  
KMS 키에 태그를 지정하거나 해제하면 KMS 키에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 [AWS KMS의 ABAC](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) 및 [태그를 사용하여 KMS 키에 대한 액세스 제어](https://docs.aws.amazon.com/kms/latest/developerguide/tag-authorization.html)를 참조하세요.

    AWS 리소스에 태그를 추가하면 AWS 는 태그별로 집계된 사용량 및 비용이 포함된 비용 할당 보고서를 생성합니다. KMS 키에 대한 액세스를 제어하는 데에도 태그를 사용할 수 있습니다. KMS 키 태그 지정에 대한 자세한 내용은 [키 태그 지정](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html) 및 [AWS KMS의 ABAC](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html)를 참조하세요.

1. **다음**을 선택합니다.

1. KMS 키를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다.
**참고**  
이 키 정책은이 KMS 키를 AWS 계정 완전히 제어합니다. 계정 관리자가 IAM 정책을 사용하여 KMS 키를 관리할 수 있는 권한을 다른 보안 주체에게 부여하도록 허용합니다. 자세한 내용은 [기본 키 정책](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html)을 참조하세요.  
   
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 IAM 사용 설명서의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.

1. (선택 사항) 선택한 IAM 사용자와 역할이 페이지 하단의 **키 삭제** 섹션에서 이 KMS 키를 삭제하지 못하도록 하려면 **키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key)** 확인란의 선택을 취소합니다.

1. **다음**을 선택합니다.

1. [암호화 작업](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations)에서 키를 사용할 수 있는 IAM 사용자 및 역할을 선택합니다. **다음**을 선택합니다.

1. **Review and edit key policy(키 정책 검토 및 편집)** 페이지에서 다음 문을 키 정책에 추가한 다음 **완료**를 선택합니다.

   ```
   {
       "Sid": "Allow Amazon SNS to use this key",
       "Effect": "Allow",
       "Principal": {
           "Service": "sns.amazonaws.com"
       },
       "Action": [
           "kms:Decrypt",
           "kms:GenerateDataKey*"
       ],
       "Resource": "*"
   }
   ```

새 고객 관리형 키가 키 목록에 나타납니다.

## 2단계: 암호화된 Amazon SNS 주제 생성
<a name="create-encrypted-topic"></a>

1. [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/home)에 로그인합니다.

1. 탐색 창에서 **주제(Topics)**를 선택합니다.

1. **주제 생성**을 선택합니다.

1. **새로운 주제 생성** 페이지에서 **이름**에 주제 이름을 입력하고(예: `MyEncryptedTopic`) **주제 생성**을 선택합니다.

1. **암호화** 섹션을 확장하고 다음을 수행합니다.

   1. **Enable server-side encryption(서버 측 암호화 활성화)**을 선택합니다.

   1. 고객 관리형 키를 지정합니다. 자세한 내용은 [주요 용어](sns-server-side-encryption.md#sse-key-terms) 섹션을 참조하세요.

      각 고객 관리 키 유형에 대해 **설명**, **계정** 및 고객 관리형 키 **ARN**이 표시됩니다.
**중요**  
해당 고객 관리형 키의 소유자가 아니거나 `kms:ListAliases` 및 `kms:DescribeKey` 권한이 없는 계정으로 로그인하는 경우 Amazon SNS 콘솔에서 해당 고객 관리형 키에 대한 정보를 볼 수 없습니다.  
고객 관리형 키의 소유자에게 이 권한을 부여해 달라고 요청해야 합니다. 자세한 정보는 *AWS Key Management Service 개발자 안내서*의 [AWS KMS API 권한: 작업 및 리소스 참조](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html)를 참조하세요.

   1. **고객 관리형 키**에서 [이전에 생성한](#create-custom-cmk) **MyCustomKey**를 선택한 다음, **서버 측 암호화 활성화**를 선택합니다.

1. **변경 사항 저장**을 선택합니다.

   주제에 대해 SSE가 활성화되고 **MyTopic** 페이지가 표시됩니다.

   주제의 **암호화** 상태, AWS **계정**, **고객 관리형 키**, 고객 관리형 키 **ARN** 및 **설명**이 **암호화** 탭에 표시됩니다.

암호화된 새 주제가 주제 목록에 나타납니다.

## 3단계: 암호화된 Amazon SQS 대기열 생성 및 구독
<a name="create-encrypted-queue"></a>

1. [Amazon SQS 콘솔](https://console.aws.amazon.com/sqs/)에 로그인합니다.

1. **새로운 대기열 생성**을 선택합니다.

1. **새로운 대기열 생성** 페이지에서 다음을 수행합니다.

   1. **대기열 이름**을 입력합니다(예: `MyEncryptedQueue1`).

   1. **표준 대기열**을 선택하고 **대기열 구성**을 선택합니다.

   1. **SSE 사용**을 선택합니다.

   1. **AWS KMS key**의 경우 [이전에 생성한](#create-custom-cmk) **MyCustomKey**를 선택한 다음, **대기열 생성**을 선택합니다.

1. 두 번째 대기열(예 `MyEncryptedQueue2`)을 만들려면 프로세스를 반복합니다.

   암호화된 새 대기열이 대기열 목록에 나타납니다.

1. Amazon SQS 콘솔에서 `MyEncryptedQueue1` 및 `MyEncryptedQueue2`를 선택하고, **대기열 작업**, **대기열에서 SNS 주제 구독**을 선택합니다.

1. **주제 구독** 대화 상자의 **주제 선택**에서 **MyEncryptedTopic**을 선택한 다음 **구독**을 선택합니다.

   암호화된 주제에 대한 암호화된 대기열의 구독은 **주제 구독 결과** 대화 상자에 표시됩니다.

1. **확인**을 선택합니다.

## 4단계: 암호화된 주제에 메시지 게시
<a name="publish-to-encrypted-topic"></a>

1. [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/home)에 로그인합니다.

1. 탐색 창에서 **주제(Topics)**를 선택합니다.

1. 주제 목록에서 **MyEncryptedTopic**을 선택하고 **메시지 게시**를 선택합니다.

1. **메시지 게시** 페이지에서 다음을 수행합니다.

   1. (선택 사항) **메시지 세부 정보** 섹션에서 **제목**을 입력합니다(예: `Testing message publishing`).

   1. **메시지 본문** 섹션에서 메시지 본문을 입력합니다(예: `My message body is encrypted at rest.`).

   1. **메시지 게시**를 선택합니다.

메시지가 구독 암호화 대기열에 게시됩니다.

## 5단계: 메시지 전송 확인
<a name="verify-message-delivery"></a>

1. [Amazon SQS 콘솔](https://console.aws.amazon.com/sqs/)에 로그인합니다.

1. 대기열 목록에서 **MyEncryptedQueue1**을 선택한 다음 **Send and receive messages**(메시지 보내기 및 받기)를 선택합니다.

1. **Send and receive messages in MyEncryptedQueue1**(MyEncryptedQueue1에서 메시지 보내기 및 받기) 페이지에서 **Poll for messages**(메시지폴링)를 선택합니다.

   [이전에 보낸](#publish-to-encrypted-topic) 메시지가 표시됩니다.

1. 메시지를 보려면 **추가 정보**를 선택합니다.

1. 모두 마친 후에는 **닫기**를 선택합니다.

1. **MyEncryptedQueue2**에 대해 이 프로세스를 반복합니다.