기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다음 섹션에서는 AWS Key Management Service (AWS KMS)의 관리형 키 작업에 대해 설명합니다.
참고
Amazon SNS는 대칭 암호화 KMS 키만 지원합니다. 다른 유형의 KMS 키를 사용하여 서비스 리소스를 암호화할 수 없습니다. KMS 키가 대칭인지 암호화 키인지 확인하는 것과 관련된 도움말은 비대칭 KMS 키 식별을 참조하세요.
AWS KMS 비용 추정
비용을 예측하고 AWS 청구서를 더 잘 이해하려면 Amazon SNS에서를 사용하는 빈도를 알고 싶을 수 있습니다 AWS KMS key.
참고
다음 공식으로 예상되는 비용을 거의 정확하게 짐작할 수 있지만, Amazon SNS의 분산 특성상 실제 비용은 더 높을 수 있습니다.
주제당 API 요청 수(R
)를 계산하려면 다음 수식을 사용하세요.
R = B / D * (2 * P)
여기서 B
는 청구 기간(초)입니다.
D
는 데이터 키 재사용 기간입니다(초 단위—Amazon SNS는 최대 5 분 동안 데이터 키를 재사용함).
P
는 Amazon SNS 주제로 보내는 게시 보안 주체의 수입니다.
다음은 계산 예제입니다. 정확한 요금 정보는 AWS Key Management Service 요금
예제 1: 게시자 1명과 주제 1명의 AWS KMS API 호출 수 계산
이 예에서는 다음과 같이 가정합니다.
-
청구 기간은 1월 1일부터 31일까지입니다(2,678,400초).
-
데이터 키 재사용 기간은 5분(300초)입니다.
-
1개의 주제가 있습니다.
-
1개의 게시 보안 주체가 있습니다.
2,678,400 / 300 * (2 * 1) = 17,856
예 2: 여러 게시자 및 주제 2개에 대한 AWS KMS API 호출 수 계산
이 예에서는 다음과 같이 가정합니다.
-
청구 기간은 2월 1일부터 28일까지입니다(2,419,200초).
-
데이터 키 재사용 기간은 5분(300초)입니다.
-
2개의 주제가 있습니다.
-
첫 번째 주제에는 3개의 게시 보안 주체가 있습니다.
-
두 번째 주제에는 5개의 게시 보안 주체가 있습니다.
(2,419,200 / 300 * (2 * 3)) + (2,419,200 / 300 * (2 * 5)) = 129,024
AWS KMS 권한 구성
SSE를 사용하려면 먼저 주제 암호화와 메시지 암호화 및 복호화를 허용하는 AWS KMS key 정책을 구성해야 합니다. AWS KMS 권한에 대한 예제 및 자세한 정보는 AWS Key Management Service 개발자 안내서의 AWS KMS API 권한: 작업 및 리소스 참조를 참조하세요. Amazon SNS 주제에 서버 측 암호화를 설정하는 방법에 대한 자세한 내용은 추가 정보 섹션을 참조하세요.
참고
IAM 정책을 사용하여 대칭 암호화 KMS 키 권한을 관리할 수도 있습니다. 자세한 내용은에서 IAM 정책 사용을 참조하세요 AWS KMS.
Amazon SNS와 송수신하기 위한 전역 권한을 구성해도 되지만, AWS KMS
는 IAM 정책의 Resource
섹션에 구체적인 리전별 KMS의 전체 ARN을 명시적으로 지정할 것을 요구합니다.
또한의 키 정책이 필요한 권한을 AWS KMS key 허용하는지 확인해야 합니다. 이렇게 하려면 Amazon SNS에서 암호화된 메시지를 생산하고 소비하는 보안 주체를 KMS 키 정책에서 사용자로 지정해야 합니다.
또는 Amazon SNS에서 암호화된 메시지를 수신하도록 게시하고 구독하는 보안 주체에 할당된 IAM 정책에서 필요한 AWS KMS 작업과 KMS ARN을 지정할 수 있습니다. 자세한 정보는 AWS Key Management Service 개발자 안내서의 AWS KMS에 대한 액세스 관리를 참조하세요.
Amazon SNS 주제에 대한 고객 관리형 키를 선택하고 조건 키 kms:ResourceAliases
와 함께 IAM 정책 또는 KMS 키 정책을 사용하여 KMS 키에 대한 액세스를 제어하도록 별칭을 사용하는 경우 선택한 고객 관리형 키에도 별칭이 연결되어 있어야 합니다. 별칭을 사용하여 KMS 키에 대한 액세스를 제어하는 방법에 대한 자세한 내용은 AWS Key Management Service
개발자 안내서의 별칭을 사용하여 KMS 키에 대한 액세스 제어를 참조하세요.
사용자가 SSE를 사용하여 주제에 메시지 보내기 허용
게시자에게 AWS KMS key에 대한 kms:GenerateDataKey*
및 kms:Decrypt
권한이 있어야 합니다.
{
"Statement": [{
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey*",
"kms:Decrypt"
],
"Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}, {
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": "arn:aws:sns:*:123456789012:MyTopic"
}]
}
AWS 서비스 및 암호화된 주제의 이벤트 소스 간 호환성 활성화
여러 AWS 서비스가 Amazon SNS 주제에 이벤트를 게시합니다. 이러한 이벤트 소스가 암호화된 주제와 연동되도록 하려면 다음 단계를 수행해야 합니다.
-
고객 관리형 키를 사용합니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 키 생성을 참조하세요.
-
AWS 서비스에
kms:GenerateDataKey*
및kms:Decrypt
권한을 부여하려면 KMS 정책에 다음 문을 추가합니다.{ "Statement": [{ "Effect": "Allow", "Principal": { "Service": "
service
.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }] }이벤트 소스 서비스 보안 주체 Amazon CloudWatch cloudwatch.amazonaws.com
Amazon CloudWatch Events events.amazonaws.com
AWS CodeCommit codecommit.amazonaws.com
AWS Database Migration Service dms.amazonaws.com
AWS Directory Service ds.amazonaws.com
Amazon DynamoDB dynamodb.amazonaws.com
Amazon Inspector inspector.amazonaws.com
Amazon Redshift redshift.amazonaws.com
Amazon RDS events.rds.amazonaws.com
Amazon S3 Glacier glacier.amazonaws.com
Amazon Simple Email Service ses.amazonaws.com
Amazon Simple Storage Service(S3) s3.amazonaws.com
AWS Snowball Edge importexport.amazonaws.com
AWS Systems Manager Incident Manager AWS Systems Manager Incident Manager는 두 가지 서비스 원칙으로 구성됩니다.
ssm-incidents.amazonaws.com
;ssm-contacts.amazonaws.com
참고
일부 Amazon SNS 이벤트 소스에서는 AWS KMS key 정책에 IAM 역할(서비스 보안 주체가 아님)을 제공해야 합니다.
-
aws:SourceAccount
및aws:SourceArn
조건 키를 KMS 리소스 정책에 추가하여 혼동된 대리자 공격으로부터 KMS 키를 더 보호합니다. 각 경우에 대한 정확한 세부 정보는 서비스별 설명서 목록(위)을 참조하세요.중요
EventBridge-to-encrypted 주제에는
aws:SourceArn
, 및aws:SourceAccount
aws:SourceOrgID
를 AWS KMS 정책에 추가하는 것이 지원되지 않습니다.{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "
customer-account-id
" }, "ArnLike": { "aws:SourceArn": "arn:aws:service:region:customer-account-id
:resource-type:customer-resource-id
" } } } -
KMS를 사용하여 주제의 SSE를 활성화합니다.
-
암호화된 주제의 ARN을 이벤트 소스에 제공합니다.
AWS KMS 오류
Amazon SNS 및 로 작업 AWS KMS할 때 오류가 발생할 수 있습니다. 아래 목록에서 이러한 오류와 문제 해결 방법을 설명합니다.
- KMSAccessDeniedException
-
암호화 텍스트가 존재하지 않는 키 또는 액세스 권한이 없는 키를 참조합니다.
HTTP 상태 코드: 400
- KMSDisabledException
-
지정한 KMS가 활성화되지 않아서 요청이 거부되었습니다.
HTTP 상태 코드: 400
- KMSInvalidStateException
-
지정한 리소스의 상태가 이 요청에 유효하지 않아서 요청이 거부되었습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS KMS keys의 키 상태를 참조하세요.
HTTP 상태 코드: 400
- KMSNotFoundException
-
지정한 엔터티 또는 리소스를 찾을 수 없으므로 요청이 거부되었습니다.
HTTP 상태 코드: 400
- KMSOptInRequired
-
AWS 액세스 키 ID에는 서비스에 대한 구독이 필요합니다.
HTTP 상태 코드: 403
- KMSThrottlingException
-
요청 제한 때문에 요청이 거부되었습니다. 제한에 대한 자세한 정보는 AWS Key Management Service 개발자 안내서의 할당량을 참조하세요.
HTTP 상태 코드: 400