View a markdown version of this page

예약된 쿼리에 대한 S3 대상 구성 - Amazon CloudWatch Logs

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

예약된 쿼리에 대한 S3 대상 구성

장기 보존 및 분석을 위해 예약된 쿼리 결과를 JSON 파일로 저장할 대상으로 Amazon S3를 구성합니다.

Amazon S3를 대상으로 사용하는 경우 쿼리 결과는 지정된 버킷 및 접두사에 JSON 파일로 저장됩니다. 이 옵션은 결과를 아카이빙하거나, 배치 분석을 수행하거나, S3 데이터를 처리하는 다른 AWS 서비스와 통합하는 데 적합합니다.

쿼리 결과를 예약된 쿼리와 동일한 AWS 계정의 Amazon S3 버킷 또는 다른 계정의 버킷에 전달할 수 AWS 있습니다. 선택적으로 고객 관리형 AWS KMS 키(SSE-KMS)를 사용하여 쿼리 결과를 암호화할 수도 있습니다.

동일한 계정의 Amazon S3 버킷에 결과 전송

대상 Amazon S3 버킷이 예약된 쿼리와 동일한 AWS 계정에 있는 경우 콘솔에서 직접 버킷을 찾아 선택할 수 있습니다.

동일 계정 Amazon S3 대상을 구성하려면(콘솔)
  1. 쿼리 결과를 S3에 게시 섹션의 S3 버킷에서 이 계정을 선택합니다.

  2. Amazon S3 URI의 경우 결과가 저장될 Amazon S3 버킷과 접두사(예: s3://my-bucket/query-results/)를 입력하거나 Amazon S3 찾아보기를 선택하여 기존 Amazon S3 위치를 탐색하고 선택합니다.

  3. (선택 사항) 고객 관리형 AWS KMS 키로 결과를 암호화하려면 KMS AWS KMS 키 ARN 필드에 키의 ARN을 입력합니다. 키는 대상 Amazon S3 버킷과 동일한 AWS 리전에 있어야 합니다. AWS KMS 키를 지정하지 않으면 버킷의 기본 암호화 설정이 적용됩니다.

  4. Amazon S3에 쿼리 결과를 게시하기 위한 IAM 역할 섹션에서 기본 권한이 있는 새 역할 자동 생성을 선택하여 필요한 권한을 자동으로 설정하거나 기존 역할 사용을 선택하여 필요한 정책이 있는 기존 IAM 역할을 선택합니다.

대상 전송 IAM 역할에는 다음 권한이 필요합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/prefix/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } } ] }

다른 계정의 Amazon S3 버킷에 결과 전송

예약된 쿼리 결과를 다른 AWS 계정의 Amazon S3 버킷에 전달할 수 있습니다. 교차 계정 버킷을 사용하는 경우 Amazon S3 URI와 버킷 소유 계정의 계정 ID를 제공해야 합니다.

교차 계정 Amazon S3 대상을 구성하려면(콘솔)
  1. S3에 쿼리 결과 게시 섹션의 S3 버킷에서 다른 계정을 선택하고 버킷 소유 계정의 계정 ID를 입력으로 제공합니다.

  2. Amazon S3 URI의 경우 대상 버킷의 전체 Amazon S3 URI와 다른 계정의 접두사(예: s3://cross-account-bucket/query-results/)를 입력합니다.

  3. (선택 사항) 고객 관리형 AWS KMS 키로 결과를 암호화하려면 KMS AWS KMS 키 ARN 필드에 키의 ARN을 입력합니다. 키는 대상 Amazon S3 버킷과 동일한 AWS 리전에 있어야 합니다.

  4. Amazon S3에 쿼리 결과를 게시하기 위한 IAM 역할 섹션에서 기본 권한이 있는 새 역할 자동 생성을 선택하여 필요한 권한을 자동으로 설정하거나 기존 역할 사용을 선택하여 필요한 정책이 있는 기존 IAM 역할을 선택합니다.

교차 계정 전송에는 양쪽에 대한 권한이 필요합니다. 소스 계정의 대상 전송 IAM 역할에는 다음 권한이 필요합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::cross-account-bucket/prefix/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } } ] }

대상 계정의 Amazon S3 버킷 정책은 소스 계정의 IAM 역할에 객체를 쓸 수 있는 권한을 부여해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowScheduledQueryRolePutObject", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/my-s3-delivery-role" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::cross-account-bucket/prefix/*" } ] }

고객 관리형 AWS KMS 키를 사용하여 결과 암호화

선택적으로 고객 관리형 AWS KMS 키를 지정하여 SSE-KMS를 사용하여 Amazon S3에 전달된 쿼리 결과를 암호화할 수 있습니다. AWS KMS 키는 예약된 쿼리와 동일한 계정 또는 다른 계정에 있을 수 있습니다.

AWS KMS 키를 지정하면 예약된 쿼리는 해당 키를 사용하여 SSE-KMS를 통해 결과를 암호화합니다. AWS KMS 키를 지정하지 않으면 버킷의 기본 암호화 설정이 적용됩니다. 버킷이 고객 관리형 키를 사용하여 기본 SSE-KMS 암호화로 구성된 경우 대상 전송 IAM 역할에는 여전히 해당 키에 대한 kms:GenerateDataKey 권한이 있어야 합니다.

대상 전송 IAM 역할에는 AWS KMS 키에 대한 kms:GenerateDataKey 권한이 필요합니다. 다음 예제에서는 고객 관리형 AWS KMS 키가 있는 Amazon S3 대상에 필요한 권한을 보여줍니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/prefix/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } }, { "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id", "Condition": { "StringEquals": { "kms:ViaService": "s3.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::my-bucket*" } } } ] }

AWS KMS 키가 대상 전송 IAM 역할과 다른 계정에 있는 경우 AWS KMS 키 소유 계정의 키 정책은 역할 액세스 권한을 명시적으로 부여해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowScheduledQueryRoleToEncrypt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/my-s3-delivery-role" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "s3.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::my-bucket*" } } } ] }
참고

AWS KMS 키와 대상 전송 IAM 역할이 동일한 계정에 있는 경우 AWS KMS 키 정책에 기본 "IAM 정책 활성화" 루트 문이 포함되어 있으면 IAM 자격 증명 정책만으로도 충분합니다. 명시적 AWS KMS 키 정책 권한 부여는 키 정책이 IAM에 위임하지 않는 경우에만 필요합니다.

Amazon S3에 쿼리 결과를 게시하기 위한 IAM 역할은 예약된 쿼리 실행을 위한 IAM 역할과 별도로 구성해야 합니다. 이렇게 분리하면 세분화된 액세스 제어가 가능하므로 Amazon S3 역할이 특히 결과 전송을 처리하는 동안 실행 역할이 쿼리를 실행할 수 있습니다. 두 역할 모두 CloudWatch Logs 서비스(logs.amazonaws.com)가 역할을 수임하도록 허용하는 신뢰 정책을 포함해야 합니다.