AWS CloudTrail의 AWS KMS 활용 방식 - AWS Key Management Service

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

AWS CloudTrail의 AWS KMS 활용 방식

AWS CloudTrail를 이용해 AWS API 호출 및 기타 AWS 계정에 대한 활동을 기록하고, 선택한 Amazon Simple Storage Service(Amazon S3) 버킷의 로그 파일에 기록된 정보를 저장할 수 있습니다. 기본적으로 S3 버킷에 저장되는 CloudTrail 로그 파일은 Amazon S3에서 관리하는 암호화 키 (SSE-S3) 를 사용한 서버 측 암호화를 사용하여 암호화됩니다. 하지만 KMS 키(SSE-KMS)를 사용하는 서버 측 암호화를 선택할 수도 있습니다. 를 사용하여 CloudTrail 로그 파일을 암호화하는 방법을 알아보려면 사용 설명서의 SSE-KMS AWS KMS keys(AWS KMSSSE-KMS) 를 사용한 CloudTrail 로그 파일 암호화를 참조하십시오. AWS CloudTrail

중요

AWS CloudTrail 및 Amazon S3는 대칭 AWS KMS keys만 지원합니다. 비대칭 KMS 키를 사용하여 로그를 암호화할 수는 없습니다. CloudTrail KMS 키가 대칭 또는 비대칭인지 여부를 확인하는 방법은 비대칭 KMS 키 식별 단원을 참조하세요.

SSE-KMS 키로 암호화된 로그 파일을 CloudTrail 읽거나 쓸 때는 키 사용 요금을 지불하지 않습니다. 하지만 SSE-KMS 키로 암호화된 CloudTrail 로그 파일에 액세스할 때는 키 사용 요금이 부과됩니다. AWS KMS 요금에 대한 자세한 내용은 AWS Key Management Service 요금을 참조하세요. CloudTrail 요금에 대한 자세한 내용은 사용 설명서의 AWS CloudTrail가격 책정비용 관리를 참조하십시오. AWS CloudTrail

KMS 키가 사용되는 경우 이해

Amazon S3 기반 AWS KMS 빌드로 CloudTrail 로그 파일을 암호화하는 것을 AWS KMS key (SSE-KMS) 를 사용한 서버 측 암호화라고 합니다. SSE-KMS에 대해 자세히 알아보려면 이 설명서의 Amazon Simple Storage Service(Amazon S3)에서 AWS KMS 사용 방법 또는 Amazon Simple Storage Service 사용 설명서KMS 키(SSE-KMS)로 서버 측 암호화를 사용하여 데이터 보호를 참조하세요.

AWS CloudTrailSSE-KMS를 사용하여 로그 파일을 암호화하도록 구성하면 CloudTrail Amazon S3는 해당 서비스에서 특정 작업을 수행할 AWS KMS keys 때 SSE-KMS를 사용합니다. 다음 섹션에서는 이러한 서비스가 언제 어떻게 KMS 키를 사용할 수 있는지 설명하고, 이 설명을 재확인할 수 있는 추가 정보를 제공합니다.

다음을 사용하여 로그 파일을 CloudTrail 암호화하도록 구성합니다. AWS KMS key

KMS 키를 사용하도록 CloudTrail 구성을 업데이트하면 KMS 키가 존재하고 암호화에 KMS 키를 사용할 CloudTrail 권한이 있는지 확인하는 GenerateDataKey요청을 CloudTrail 보냅니다. AWS KMS CloudTrail 결과 데이터 키는 사용하지 않습니다.

GenerateDataKey 요청에는 암호화 컨텍스트에 대한 다음 정보가 포함됩니다.

GenerateDataKey요청 결과 다음 예와 비슷하게 CloudTrail 로그에 항목이 입력됩니다. 이와 같은 로그 항목이 표시되면 () 가 특정 트레일 CloudTrail ( ) 에 대해 AWS KMS ( ) GenerateDataKey 작업 ( ) 을 호출했음을 확인할 수 있습니다. AWS KMS특정 KMS 키 ( ) 아래에 데이터 키를 생성했습니다.

참고

다음 예제 로그 항목에서 일부 설명선을 보려면 오른쪽으로 스크롤해야 할 수 있습니다.

{ "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::086441151436:user/AWSCloudTrail", "accountId": "086441151436", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "AWSCloudTrail", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T21:15:33Z" }}, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-11-11T21:15:33Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:alias/ExampleAliasForCloudTrailKMS key", "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/" }, "keySpec": "AES_256" }, "responseElements": null, "requestID": "581f1f11-88b9-11e5-9c9c-595a1fb59ac0", "eventID": "3cdb2457-c035-4890-93b6-181832b9e766", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsServiceEvent", "recipientAccountId": "111122223333" }

CloudTrail S3 버킷에 로그 파일을 넣습니다.

로그 파일을 S3 버킷에 넣을 때마다 CloudTrail Amazon S3는 를 AWS KMS 대신하여 GenerateDataKey요청을 보냅니다 CloudTrail. 이 요청에 대한 응답으로 AWS KMS는 고유 데이터 키를 생성한 후 Amazon S3에서 데이터 키의 사본 두 개(하나는 일반 텍스트, 다른 하나는 지정된 KMS 키로 암호화됨)를 보냅니다. Amazon S3는 일반 텍스트 데이터 키를 사용하여 CloudTrail 로그 파일을 암호화한 다음 사용 후 최대한 빨리 메모리에서 일반 텍스트 데이터 키를 제거합니다. Amazon S3는 암호화된 데이터 키를 암호화된 CloudTrail 로그 파일과 함께 메타데이터로 저장합니다.

GenerateDataKey 요청에는 암호화 컨텍스트에 대한 다음 정보가 포함됩니다.

GenerateDataKey 요청은 다음 예와 유사하게 CloudTrail 로그에 항목을 생성합니다. 이와 같은 로그 항목이 표시되면 () 가 특정 로그 파일 CloudTrail ( ) 을 보호하기 위해 특정 트레일 ( ) 에 대해 ( ) GenerateDataKey 작업 () 을 호출했음을 확인할 수 있습니다. AWS KMS AWS KMS동일한 로그 항목에 두 번 표시된 지정된 KMS 키 ( ) 아래에 데이터 키를 생성했습니다.

참고

다음 예제 로그 항목에서 일부 설명선을 보려면 오른쪽으로 스크롤해야 할 수 있습니다.

{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AROACKCEVSQ6C2EXAMPLE:i-34755b85", "arn": "arn:aws:sts::086441151436:assumed-role/AWSCloudTrail/i-34755b85", "accountId": "086441151436", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T20:45:25Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::086441151436:role/AWSCloudTrail", "accountId": "086441151436", "userName": "AWSCloudTrail" } }, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-11-11T21:15:58Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/CloudTrail/us-west-2/2015/11/11/111122223333_CloudTrail_us-west-2_20151111T2115Z_7JREEBimdK8d2nC9.json.gz" }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "keySpec": "AES_256" }, "responseElements": null, "requestID": "66f3f74a-88b9-11e5-b7fb-63d925c72ffe", "eventID": "7738554f-92ab-4e27-83e3-03354b1aa898", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsServiceEvent", "recipientAccountId": "111122223333" }

S3 버킷에서 암호화된 로그 파일 가져오기

S3 버킷에서 암호화된 CloudTrail 로그 파일을 가져올 때마다 Amazon S3는 사용자를 대신하여 로그 파일의 암호화된 데이터 키를 Decrypt해독하라는 AWS KMS 요청을 보냅니다. 이 요청에 대한 응답으로 AWS KMS는 KMS 키를 사용하여 데이터 키를 복호화한 다음 일반 텍스트 데이터 키를 Amazon S3로 보냅니다. Amazon S3는 일반 텍스트 데이터 키를 사용하여 CloudTrail 로그 파일을 복호화한 다음 사용 후 최대한 빨리 메모리에서 일반 텍스트 데이터 키를 제거합니다.

Decrypt 요청에는 암호화 컨텍스트에 대한 다음 정보가 포함됩니다.

Decrypt 요청은 다음 예와 유사하게 CloudTrail 로그에 항목을 생성합니다. 이와 비슷한 로그 항목을 보면 AWS 계정( )의 사용자가 특정 추적( ) 및 특정 로그 파일( )에 대해 AWS KMS( ) Decrypt 작업( )을 호출했음을 확인할 수 있습니다. AWS KMS는 특정 KMS 키( )에서 데이터 키를 복호화했습니다.

참고

다음 예제 로그 항목에서 일부 설명선을 보려면 오른쪽으로 스크롤해야 할 수 있습니다.

{ "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/cloudtrail-admin", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "cloudtrail-admin", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T20:48:04Z" }}, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2015-11-11T21:20:52Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/CloudTrail/us-west-2/2015/11/11/111122223333_CloudTrail_us-west-2_20151111T2115Z_7JREEBimdK8d2nC9.json.gz" } }, "responseElements": null, "requestID": "16a0590a-88ba-11e5-b406-436f15c3ac01", "eventID": "9525bee7-5145-42b0-bed5-ab7196a16daa", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }