저장된 데이터 암호화 - EventBridge 스케줄러

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

저장된 데이터 암호화

이 섹션에서는 Amazon EventBridge Scheduler가 저장된 데이터를 암호화하고 복호화하는 방법을 설명합니다. 저장 데이터는 EventBridge 스케줄러와 서비스의 기본 구성 요소에 저장된 데이터입니다. EventBridge Scheduler는 AWS Key Management Service (AWS KMS) 와 통합되어 를 사용하여 데이터를 암호화하고 해독합니다. AWS KMS key EventBridge 스케줄러는 두 가지 유형의 KMS 키, 즉 고객 관리 키를 지원합니다. AWS 소유 키

참고

EventBridge 스케줄러는 대칭 암호화 KMS 키 사용만 지원합니다.

AWS 소유 키 AWS 서비스가 여러 계정에서 사용하기 위해 소유하고 관리하는 KMS 키입니다. AWS AWS 소유 키 EventBridge Scheduler에서 사용하는 데이터는 AWS 계정에 저장되지 않지만 EventBridge Scheduler는 이를 사용하여 데이터와 리소스를 보호합니다. 기본적으로 EventBridge Scheduler는 소유 키를 사용하여 모든 데이터를 암호화하고 복호화합니다. AWS 사용자 AWS 소유 키 또는 액세스 정책을 관리할 필요가 없습니다. EventBridge Scheduler가 데이터 보호를 AWS 소유 키 위해 사용하는 경우 수수료가 발생하지 않으며, 사용량은 계정 할당량에 포함되지 않습니다. AWS KMS

고객 관리 키는 AWS 계정에 저장되며 사용자가 만들고 소유하고 관리하는 KMS 키입니다. 특정 사용 사례에서 EventBridge Scheduler에서 데이터를 보호하는 암호화 키를 제어하고 감사해야 하는 경우 고객 관리 키를 사용할 수 있습니다. 고객 관리형 키를 선택하면 키 정책을 관리해야 합니다. 고객 관리형 키는 매달 요금이 발생하며, 프리 티어를 초과해서 사용한 만큼 요금이 부과됩니다. 고객 관리형 키를 사용하는 것도 AWS KMS 할당량의 일부로 계산됩니다. 요금에 대한 자세한 내용은 AWS Key Management Service 요금을 참조하세요.

암호화 아티팩트

다음 표에는 EventBridge Scheduler가 저장 시 암호화하는 다양한 유형의 데이터와 각 범주에서 지원하는 KMS 키 유형이 설명되어 있습니다.

데이터 유형 설명 AWS 소유 키 고객 관리형 키

페이로드(최대 256KB)

대상에 전달되도록 일정을 구성할 때 일정의 TargetInput 파라미터에 지정하는 데이터입니다.

지원

지원

식별자 및 상태

일정의 고유 이름 및 상태(활성화, 비활성화).

지원

지원되지 않음

Scheduling configuration(예약 구성)

스케줄링 표현식(예: 반복 일정에 대한 rate 또는 cron 표현식, 일회성 간접 호출의 타임스탬프, 일정의 시작 날짜, 종료 날짜 및 시간대).

지원

지원되지 않음

대상 구성

대상의 Amazon 리소스 이름(ARN) 및 기타 대상 관련 구성 세부 정보.

지원

지원되지 않음

간접 호출 및 실패 동작 구성

유연한 기간 구성, 일정의 재시도 정책, 전달 실패에 사용되는 DLQ(Dead Letter Queue) 세부 정보.

지원

지원되지 않음

EventBridge Scheduler는 이전 표에 설명된 대로 대상 페이로드를 암호화하고 해독할 때만 고객 관리 키를 사용합니다. 고객 관리 키를 사용하도록 선택하면 EventBridge Scheduler는 페이로드를 두 번 암호화하고 해독합니다. 한 번은 기본값을 AWS 소유 키사용하고 다른 한 번은 지정한 고객 관리 키를 사용합니다. 다른 모든 데이터 유형의 경우 EventBridge Scheduler는 AWS 소유 키 기본값만 사용하여 저장된 데이터를 보호합니다.

다음 KMS 키 관리 섹션을 통해 Scheduler에서 고객 관리 키를 사용하기 위해 IAM 리소스와 키 정책을 관리하는 방법을 알아보십시오. EventBridge

KMS 키 관리

필요에 따라 고객 관리 키를 제공하여 스케줄이 대상으로 전송하는 페이로드를 암호화하고 해독할 수 있습니다. EventBridge 스케줄러는 페이로드를 최대 256KB까지 암호화하고 해독합니다. 고객 관리형 키를 사용하면 매달 요금이 발생하며, 프리 티어를 초과해서 요금이 부과됩니다. 고객 관리형 키를 사용하는 것도 AWS KMS 할당량의 일부로 계산됩니다. 요금에 대한 자세한 내용은 AWS Key Management Service 요금을 참조하세요.

EventBridge 스케줄러는 보안 주체와 연결된 IAM 권한을 사용하여 일정을 생성하여 데이터를 암호화합니다. 즉, Scheduler API를 호출하는 사용자 또는 역할에 필요한 AWS KMS 관련 권한을 연결해야 합니다 EventBridge . 또한 EventBridge Scheduler는 리소스 기반 정책을 사용하여 데이터를 해독합니다. 즉, 일정과 관련된 실행 역할에도 데이터 암호 해독 시 API를 호출하는 데 필요한 AWS KMS 관련 권한이 있어야 합니다. AWS KMS

참고

EventBridge Scheduler는 임시 권한에 대한 권한 부여 사용을 지원하지 않습니다.

다음 섹션을 통해 Scheduler에서 고객 관리 AWS KMS 키를 사용하는 데 필요한 키 정책 및 필수 IAM 권한을 관리하는 방법을 알아보십시오. EventBridge

IAM 권한 추가

고객 관리형 키를 사용하려면 일정을 생성하는 자격 증명 기반 IAM 보안 주체에 다음 권한을 추가하고 일정에 연결하는 실행 역할을 추가해야 합니다.

고객 관리형 키에 대한 자격 증명 기반 권한

일정을 생성할 때 EventBridge Scheduler API를 호출하는 모든 보안 주체 (사용자, 그룹 또는 역할) 와 관련된 권한 정책에 다음 AWS KMS 작업을 추가해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "scheduler:*", # Required to pass the execution role "iam:PassRole", "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Effect": "Allow" }, ] }
  • kms:DescribeKey - 제공한 키가 대칭 암호화 KMS 키인지 확인하는 데 필요합니다.

  • kms:GenerateDataKey— EventBridge Scheduler가 클라이언트 측 암호화를 수행하는 데 사용하는 데이터 키를 생성하는 데 필요합니다.

  • kms:Decrypt— EventBridge Scheduler가 암호화된 데이터와 함께 저장하는 암호화된 데이터 키의 암호를 해독해야 합니다.

고객 관리형 키에 대한 실행 역할 권한

데이터를 복호화할 때 EventBridge Scheduler에 액세스하여 AWS KMS API를 호출하도록 하려면 일정의 실행 역할 권한 정책에 다음 작업을 추가해야 합니다.

{ "Version": "2012-10-17", "Statement" : [ { "Sid" : "Allow EventBridge Scheduler to decrypt data using a customer managed key", "Effect" : "Allow", "Action" : [ "kms:Decrypt" ], "Resource": "arn:aws:kms:your-region:123456789012:key/your-key-id" } ] }
  • kms:Decrypt— EventBridge Scheduler가 암호화된 데이터와 함께 저장하는 암호화된 데이터 키의 암호를 해독해야 합니다.

새 일정을 생성할 때 EventBridge Scheduler 콘솔을 사용하여 새 실행 역할을 만들면 EventBridge Scheduler는 필요한 권한을 실행 역할에 자동으로 추가합니다. 하지만 기존 실행 역할을 선택한 경우 고객 관리형 키를 사용할 수 있으려면 역할에 필요한 권한을 추가해야 합니다.

키 정책 관리

를 사용하여 AWS KMS고객 관리 키를 생성하는 경우 기본적으로 키에는 스케줄의 실행 역할에 대한 액세스를 제공하는 다음과 같은 키 정책이 적용됩니다.

{ "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Provide required IAM Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "kms:*", "Resource": "*" } ] }

선택적으로 실행 역할에 대한 액세스만 제공하도록 키 정책의 범위를 제한할 수 있습니다. 고객 관리 키를 EventBridge 스케줄러 리소스에서만 사용하려는 경우 이 방법을 사용할 수 있습니다. 다음 키 정책 예제를 사용하여 키를 사용할 수 있는 EventBridge 스케줄러 리소스를 제한하세요.

{ "Id": "key-policy-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Provide required IAM Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::695325144837:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/schedule-execution-role" }, "Action": [ "kms:Decrypt" ], "Resource": "*" } ] }

CloudTrail 이벤트 예제

AWS CloudTrail 모든 API 호출 이벤트를 캡처합니다. 여기에는 EventBridge Scheduler가 고객 관리 키를 사용하여 데이터를 복호화할 때마다 발생하는 API 호출이 포함됩니다. 다음 예제는 고객 관리 키를 사용하여 kms:Decrypt 작업을 수행하는 EventBridge Scheduler를 보여주는 CloudTrail 이벤트 항목을 보여줍니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "ABCDEABCD1AB12ABABAB0:70abcd123a123a12345a1aa12aa1bc12", "arn": "arn:aws:sts::123456789012:assumed-role/execution-role/70abcd123a123a12345a1aa12aa1bc12", "accountId": "123456789012", "accessKeyId": "ABCDEFGHI1JKLMNOP2Q3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "ABCDEABCD1AB12ABABAB0", "arn": "arn:aws:iam::123456789012:role/execution-role", "accountId": "123456789012", "userName": "execution-role" }, "webIdFederationData": {}, "attributes": { "creationDate": "2022-10-31T21:03:15Z", "mfaAuthenticated": "false" } } }, "eventTime": "2022-10-31T21:03:15Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "eu-north-1", "sourceIPAddress": "13.50.87.173", "userAgent": "aws-sdk-java/2.17.295 Linux/4.14.291-218.527.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/11.0.17+9-LTS Java/11.0.17 kotlin/1.3.72-release-468 (1.3.72) vendor/Amazon.com_Inc. md/internal exec-env/AWS_ECS_FARGATE io/sync http/Apache cfg/retry-mode/standard AwsCrypto/2.4.0", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:123456789012:key/2321abab-2110-12ab-a123-a2b34c5abc67", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "encryptionContext": { "aws:scheduler:schedule:arn": "arn:aws:scheduler:us-west-2:123456789012:schedule/default/execution-role" } }, "responseElements": null, "requestID": "request-id", "eventID": "event-id", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:123456789012:key/2321abab-2110-12ab-a123-a2b34c5abc67" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_256_GCM_SHA384", "clientProvidedHostHeader": "kms.us-west-2.amazonaws.com" } }