가를 AWS CloudTrail 사용하는 방법 AWS KMS - AWS CloudTrail

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

가를 AWS CloudTrail 사용하는 방법 AWS KMS

이 섹션에서는가 SSE-KMS 키 AWS KMS 로 암호화된 CloudTrail 추적에서 작동하는 방법을 설명합니다.

중요

AWS CloudTrail 및 Amazon S3는 대칭 AWS KMS keys만 지원합니다. 비대칭 KMS 키를 사용하여 CloudTrail 로그를 암호화할 수 없습니다. KMS 키가 대칭인지 비대칭인지 확인하는 데 도움이 필요한 경우 AWS Key Management Service 개발자 안내서다양한 키 유형 식별을 참조하세요.

CloudTrail이 SSE-KMS 키로 암호화된 로그 파일을 읽거나 쓸 때 키 사용 요금을 지불하지 않습니다. 그러나 SSE-KMS 키로 암호화된 CloudTrail 로그 파일에 액세스할 때 키 사용 요금을 지불합니다. AWS KMS 요금에 대한 자세한 내용은 AWS Key Management Service 요금을 참조하세요. CloudTrail 요금에 대한 자세한 내용은 AWS CloudTrail 요금을 참조하세요.

KMS 키가 추적에 사용되는 시기 이해

AWS KMS key (SSE-KMS)를 사용한 서버 측 암호화라고 하는 Amazon S3 기능을 기반으로 AWS KMS CloudTrail 로그 파일을 암호화합니다. SSE-KMS에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) 사용을 참조하세요.

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

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

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

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

GenerateDataKey 요청의 결과, CloudTrail 로그에 다음 예와 비슷한 항목이 생성됩니다. 이와 같은 로그 항목이 표시되면 CloudTrail이 특정 추적에 AWS KMS GenerateDataKey 대한 작업을 호출했음을 확인할 수 있습니다.는 특정 KMS 키 아래에 데이터 키를 AWS KMS 생성했습니다.

{ "eventVersion": "1.09", "userIdentity": { "type": "AWSService", "invokedBy": "cloudtrail.amazonaws.com" }, "eventTime": "2024-12-06T20:14:46Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "cloudtrail.amazonaws.com", "userAgent": "cloudtrail.amazonaws.com", "requestParameters": { "keySpec": "AES_256", "keyId": "arn:aws:kms:us-east-1:123456789012:key/example1-6736-4661-bf00-exampleeb770", "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-east-1:123456789012:trail/management-events", "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-logging-bucket-123456789012-9af1fb49/AWSLogs/123456789012/CloudTrail/us-east-1/2024/12/06/123456789012_CloudTrail_us-east-1_20241206T2010Z_TO50OLMG1hIQ1png.json.gz" } }, "responseElements": null, "requestID": "a0555e85-7e8a-4765-bd8f-2222295558e1", "eventID": "e4f3557e-7dbd-4e37-a00a-d86c137d1111", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/example1-6736-4661-bf00-exampleeb770" }], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "sharedEventID": "ce71d6be-0846-498e-851f-111a1af9078f", "eventCategory": "Management" }

CloudTrail이 S3 버킷에 로그 파일 저장

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

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

GenerateDataKey 요청의 결과, CloudTrail 로그에 다음 예와 비슷한 항목이 생성됩니다. 이와 같은 로그 항목이 표시되면 CloudTrail이 특정 로그 파일을 보호하기 위해 특정 추적에 대한 작업을 호출 AWS KMS GenerateDataKey했음을 확인할 수 있습니다.는 동일한 로그 항목에 두 번 표시된 지정된 KMS 키 아래에 데이터 키를 AWS KMS 생성했습니다.

{ "eventVersion": "1.09", "userIdentity": { "type": "AWSService", "invokedBy": "cloudtrail.amazonaws.com" }, "eventTime": "2024-12-06T21:49:28Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "cloudtrail.amazonaws.com", "userAgent": "cloudtrail.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-east-1::trail/insights-trail", "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-logging-bucket1-123456789012-7867ab0c/AWSLogs/123456789012/CloudTrail/us-east-1/2024/12/06/123456789012_CloudTrail_us-east-1_20241206T2150Z_hVXmrJzjZk2wAM2V.json.gz" }, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-east-1:123456789012:key/example9-16ef-48ba-9163-example67a5a" }, "responseElements": null, "requestID": "11117d14-9232-414a-b3d1-01bab4dc9f99", "eventID": "999e9a50-512c-4e2a-84a3-111a5f511111", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/example9-16ef-48ba-9163-example67a5a" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "sharedEventID": "5e663acc-b7fd-4cdd-8328-0eff862952fa", "eventCategory": "Management" }

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

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

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

Decrypt 요청의 결과, CloudTrail 로그에 다음 예와 비슷한 항목이 생성됩니다. 이 항목과 같은 로그 항목이 표시되면 특정 추적 및 특정 로그 파일에 대한 작업이라는 AWS KMS Decrypt 수임된 역할이 특정 KMS 키 아래의 데이터 키를 AWS KMS 복호화했음을 확인할 수 있습니다.

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:sts::123456789012:assumed-role/Admin", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::123456789012:role/Admin", "accountId": "123456789012", "userName": "Admin" }, "attributes": { "creationDate": "2024-12-06T22:04:04Z", "mfaAuthenticated": "false" } }, "invokedBy": "AWS Internal" }, "eventTime": "2024-12-06T22:26:34Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": { "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-east-1:123456789012:trail/insights-trail", "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-logging-bucket1-123456789012-7867ab0c/AWSLogs/123456789012/CloudTrail/us-east-1/2024/12/06/123456789012_CloudTrail_us-east-1_20241206T0000Z_aAAsHbGBdye3jp2R.json.gz" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "1ab2d2d2-111a-2222-a59b-11a2b3832b53", "eventID": "af4d4074-2849-4b3d-1a11-a1aaa111a111", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/example9-16ef-48ba-9163-example67a5a" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }