아마존 SQS 키 관리 - Amazon Simple Queue Service

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

아마존 SQS 키 관리

Amazon은 SQS 다음과 통합됩니다. AWS Key Management Service (KMS) 는 서버 측 암호화를 위한 KMS키를 관리합니다 (). SSE SSE정보 및 키 관리 정의는 을 Amazon의 저장 중 암호화 SQS 참조하십시오. SQSAmazon은 KMS 키를 사용하여 메시지를 암호화하고 복호화하는 데이터 키를 검증하고 보호합니다. 다음 섹션에서는 Amazon SQS 서비스의 KMS 키 및 데이터 키 사용에 대한 정보를 제공합니다.

구성 AWS KMS 권한

모든 KMS 키에는 키 정책이 있어야 합니다. 의 키 정책은 수정할 수 없다는 점에 유의하십시오. AWS 아마존의 관리 KMS 키SQS. 이 KMS 키의 정책에는 SQS Amazon을 사용할 권한이 있는 계정의 모든 보안 주체에 대한 암호화된 대기열을 사용할 수 있는 권한이 포함됩니다.

고객 관리 KMS 키의 경우 각 대기열 생산자 및 소비자에 대한 권한을 추가하도록 키 정책을 구성해야 합니다. 이렇게 하려면 KMS 키 정책에서 생산자와 소비자를 사용자로 지정해야 합니다. 에 대한 자세한 내용은 AWS KMS 권한은 을 참조하십시오. AWS KMS 리소스 및 운영 또는 AWS KMS API내 권한 참조 AWS Key Management Service 개발자 가이드.

또는 암호화된 메시지를 생성하고 소비하는 보안 주체에 할당된 IAM 정책에 필요한 권한을 지정할 수도 있습니다. 자세한 내용은 다음과 같은 정책 사용을 IAM 참조하십시오. AWS KMS의 AWS Key Management Service 개발자 가이드.

참고

Amazon으로 보내고 SQS Amazon에서 수신할 수 있는 글로벌 권한을 구성할 수 있지만 AWS KMS 정책 Resource 섹션에서 특정 지역의 전체 ARN KMS 키의 이름을 명시적으로 지정해야 합니다. IAM

다음에 대한 권한을 구성하십시오. KMS AWS 서비스

몇 가지 AWS 서비스는 Amazon SQS 대기열로 이벤트를 전송할 수 있는 이벤트 소스 역할을 합니다. 이러한 이벤트 소스가 암호화된 대기열과 함께 작동하도록 하려면 고객 관리형 KMS 키를 생성하고 서비스에서 필요한 기능을 사용할 수 있는 권한을 키 정책에 추가해야 합니다. AWS KMS API메서드. 권한을 구성하려면 다음 단계를 수행합니다.

주의

Amazon SQS 메시지 암호화를 위한 KMS 키를 변경할 때는 이전 키로 암호화된 기존 메시지가 해당 KMS 키로 암호화된 상태로 유지된다는 점에 유의하십시오. 이러한 메시지를 해독하려면 이전 KMS 키를 유지하고 키 정책이 SQS Amazon에 권한을 부여하는지 확인해야 합니다. kms:GenerateDataKey 새 메시지를 암호화하기 위해 새 KMS 키로 업데이트한 후에는 이전 키를 삭제하거나 비활성화하기 전에 이전 KMS 키로 암호화된 기존 메시지를 모두 처리하고 대기열에서 제거해야 합니다. KMS

  1. 고객 관리 KMS 키를 생성하세요. 자세한 내용은 에서 키 생성을 참조하십시오. AWS Key Management Service 개발자 안내서.

  2. 허용하려면 AWS 서비스 이벤트 소스에서 kms:GenerateDataKey API 메서드를 사용할 수 있도록 KMS 키 정책에 다음 명령문을 추가합니다.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey" ], "Resource": "*" }] }

    위의 예에서 “service”를 이벤트 소스의 서비스 이름으로 바꿉니다. 이벤트 소스에는 다음 서비스가 포함됩니다.

    이벤트 소스 서비스 이름
    아마존 CloudWatch 이벤트 events.amazonaws.com
    Amazon S3 이벤트 알림 s3.amazonaws.com
    아마존 SNS 주제 구독 sns.amazonaws.com
  3. KMS키를 사용하여 기존 SSE 대기열을 구성합니다. ARN

  4. 암호화된 대기열을 이벤트 소스에 제공하십시오. ARN

구성 AWS KMS 생산자를 위한 권한

데이터 키 재사용 기간이 만료되면 생산자가 다음 통화를 SendMessage 하거나 SendMessageBatch 통화를 트리거합니다. kms:GenerateDataKey 제작자에게 키에 대한 kms:GenerateDataKey 권한이 있어야 합니다. KMS

제작자 IAM 정책에 다음 설명을 추가하십시오. 키 리소스와 큐 리소스에 올바른 ARN 값을 사용해야 한다는 점을 잊지 마세요.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

구성 AWS KMS 소비자를 위한 권한

데이터 키 재사용 기간이 만료되면 다음에 소비자가 ReceiveMessage를 호출했을 때 kms:Decrypt 호출도 트리거되며, 이는 새 데이터 키를 사용하기 전에 이 데이터 키의 무결성을 확인하기 위한 것입니다. 따라서 소비자는 지정된 대기열의 메시지를 암호화하는 데 사용되는 모든 KMS 키에 대한 kms:Decrypt 권한을 가지고 있어야 합니다. 대기열이 데드레터 대기열 역할을 하는 경우 소비자는 소스 대기열의 메시지를 암호화하는 데 사용되는 모든 KMS 키에 대한 kms:Decrypt 권한도 가져야 합니다. 소비자 IAM 정책에 다음 설명을 추가하십시오. 키 리소스와 큐 리소스에 올바른 ARN 값을 사용해야 한다는 점을 기억하십시오.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

구성 AWS KMS 대리인 보호가 혼동되는 권한

주요 정책 명세서의 주요 내용이 다음과 같은 경우 AWS 서비스 보안 주체의 경우 aws:SourceArn또는 aws:SourceAccount글로벌 조건 키를 사용하여 혼동되는 부정 시나리오를 방지할 수 있습니다. 이러한 조건 키를 사용하려면 값을 암호화되는 리소스의 Amazon 리소스 이름 (ARN) 으로 설정합니다. 리소스에 ARN 대해 모르는 경우 aws:SourceAccount 대신 사용하십시오.

이 KMS 주요 정책에서는 111122223333 계정별로 소유된 서비스의 특정 리소스가 Amazon SSE 사용 중에 발생하는 요청 DecryptGenerateDataKey 조치를 KMS 요청할 수 SQS 있습니다.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "<replaceable>service</replaceable>.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:service::111122223333:resource" ] } } }] }

SSE활성화된 Amazon SQS 대기열을 사용하는 경우 다음 서비스가 지원됩니다. aws:SourceArn

  • 아마존 SNS

  • Amazon S3

  • CloudWatch 이벤트

  • AWS Lambda

  • CodeBuild

  • Amazon Connect Customer Profiles

  • AWS Auto Scaling

  • Amazon Chime

데이터 키 재사용 기간 이해

데이터 키 재사용 기간은 Amazon이 동일한 데이터 키를 재사용할 SQS 수 있는 최대 기간을 정의합니다. 데이터 키 재사용 기간이 종료되면 Amazon은 새 데이터 키를 SQS 생성합니다. 재사용 기간에 대한 다음 지침에 유의하십시오.

  • 재사용 기간이 짧을수록 보안은 향상되지만 호출은 더 많아집니다. AWS KMS이로 인해 프리 티어 범위를 초과하여 요금이 부과될 수 있습니다.

  • 데이터 키는 암호화 및 암호 해독에 대해 별도로 캐시되지만 재사용 기간은 데이터 키의 두 복사본 모두에 적용됩니다.

  • 현재는 SQS:SendMessageSQS:SendMessageBatch 작업 중에는 해당 KMS:GenerateDataKey 권한만 사용됩니다. kms:Decrypt권한은 SQS:ReceiveMessage 작업 중에만 사용됩니다.

  • 교장 (AWS 계정 또는 사용자는 데이터 키를 공유하지 않습니다. 즉, 고유한 보안 주체가 보낸 메시지는 항상 고유한 데이터 키를 받습니다. 따라서 에 대한 통화량은 AWS KMS 데이터 키 재사용 기간 동안 사용 중인 고유 보안 주체 수의 배수입니다.

추정 AWS KMS 비용

비용을 예측하고 비용을 더 잘 이해하기 위해 AWS 빌, 아마존이 당신의 KMS 키를 얼마나 자주 SQS 사용하는지 알고 싶을 수도 있습니다.

참고

다음 공식을 통해 예상 비용을 쉽게 파악할 수 있지만 Amazon의 분산된 특성 때문에 실제 비용은 더 높을 수 SQS 있습니다.

대기열당 API 요청 수 (R) 를 계산하려면 다음 공식을 사용하십시오.

R = (B / D) * (2 * P + C)

여기서 B는 청구 기간(초)입니다.

D데이터 키 재사용 기간(초)입니다.

PAmazon SQS 대기열로 보내는 프로덕션 주체의 수입니다.

CAmazon SQS 대기열에서 수신하는 소비 보안 주체의 수입니다.

중요

일반적으로, 생산 보안 주체에서 발생하는 비용이 소비 보안 주체의 두 배입니다. 자세한 내용은 데이터 키 재사용 기간 이해 단원을 참조하십시오.

생산자와 소비자의 사용자가 서로 다른 경우, 비용이 증가합니다.

다음은 계산 예제입니다. 정확한 가격 정보는 다음을 참조하십시오. AWS Key Management Service 가격 책정.

예 1: 개수 계산 AWS KMS API보안 주체 2명과 대기열 1개에 대한 호출

이 예에서는 다음과 같이 가정합니다.

  • 청구 기간은 1월 1일부터 31일까지입니다(2,678,400초).

  • 데이터 키 재사용 기간은 5분(300초)로 설정되어 있습니다.

  • 대기열은 1개입니다.

  • 생산 보안 주체 1개와 소비 보안 주체 1개가 있습니다.

(2,678,400 / 300) * (2 * 1 + 1) = 26,784

예 2: 개수 계산 AWS KMS API여러 생산자 및 소비자 통화 및 대기열 2개

이 예에서는 다음과 같이 가정합니다.

  • 청구 기간은 2월 1일부터 28일까지입니다(2,419,200초).

  • 데이터 키 재사용 기간은 24시간(86,400초)으로 설정되어 있습니다.

  • 대기열은 2개입니다.

  • 첫 번째 대기열에 생산 보안 주체 3개와 소비 보안 주체 1개가 있습니다.

  • 두 번째 대기열에 생산 보안 주체 5개와 소비 보안 주체 2개가 있습니다.

(2,419,200 / 86,400 * (2 * 3 + 1)) + (2,419,200 / 86,400 * (2 * 5 + 2)) = 532

AWS KMS errors

Amazon에서 SQS 일할 때 AWS KMS오류가 발생할 수 있습니다. 아래 참조에서 이러한 오류와 문제 해결 방법을 설명합니다.