에 대한 AWS KMS 주요 정책 구성 CloudTrail - AWS CloudTrail

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

에 대한 AWS KMS 주요 정책 구성 CloudTrail

다음과 같은 세 가지 AWS KMS key 방법으로 생성할 수 있습니다.

  • CloudTrail 콘솔

  • AWS 관리 콘솔

  • 더 AWS CLI

참고

CloudTrail 콘솔에서 KMS 키를 생성하면 필요한 KMS 키 정책이 자동으로 CloudTrail 추가됩니다. 수동으로 정책 구문을 추가할 필요가 없습니다. CloudTrail 콘솔에서 생성된 기본 KMS 키 정책을 참조하세요.

AWS 관리 또는 에서 KMS 키를 생성하는 경우 키에 AWS CLI정책 섹션을 추가해야 해당 키와 함께 사용할 수 있습니다 CloudTrail. 정책에서는 키를 CloudTrail 사용하여 로그 파일 및 이벤트 데이터 저장소를 암호화할 수 있도록 허용하고 지정한 사용자가 암호화되지 않은 형식으로 로그 파일을 읽을 수 있도록 허용해야 합니다.

다음 리소스를 참조하세요.

에서 사용하기 위한 필수 KMS 주요 정책 섹션 CloudTrail

AWS 관리 콘솔 또는 에서 KMS 키를 생성한 경우 최소한 다음 명령문을 KMS 키 정책에 추가해야 해당 키를 사용할 수 CloudTrail 있습니다. AWS CLI

KMS트레일에 필요한 주요 정책 요소

  1. CloudTrail 로그 암호화 권한을 활성화합니다. 암호화 권한 부여을 참조하세요.

  2. CloudTrail 로그 복호화 권한을 활성화합니다. 암호 해독 권한 부여을 참조하세요. S3 버킷 키와 함께 기존 S3 버킷을 사용하는 경우, KMS 암호화가 활성화된 상태에서 SSE 트레일을 생성하거나 업데이트하려면 kms:Decrypt 권한이 필요합니다.

  3. KMS주요 속성을 설명할 CloudTrail 수 있습니다. KMS주요 속성을 설명할 CloudTrail 수 있습니다.을 참조하세요.

보안 모범 사례로 키 정책에 aws:SourceArn 조건 KMS 키를 추가하십시오. IAM글로벌 조건 키는 특정 트레일 또는 트레일에만 KMS 키를 CloudTrail 사용하도록 하는 aws:SourceArn 데 도움이 됩니다. 의 aws:SourceArn 값은 항상 KMS 키를 사용하는 트레일 ARN (또는 트레일 배열ARNs) 입니다. 기존 트레일의 키 정책에 aws:SourceArn 조건 KMS 키를 추가해야 합니다.

aws:SourceAccount 조건 키도 지원되지만 권장되지는 않습니다. aws:SourceAccount의 값은 추적 소유자의 계정 ID이거나 조직 추적의 경우 관리 계정 ID입니다.

중요

KMS키 정책에 새 섹션을 추가할 때는 정책의 기존 섹션을 변경하지 마세요.

트레일에서 암호화가 활성화되어 있고 KMS 키가 비활성화되어 있거나 KMS 키 정책이 올바르게 구성되지 않은 경우 로그를 전달할 CloudTrail 수 없습니다. CloudTrail

이벤트 데이터 저장소에 필요한 KMS 주요 정책 요소

  1. CloudTrail 로그 암호화 권한을 활성화합니다. 암호화 권한 부여을 참조하세요.

  2. CloudTrail 로그 복호화 권한을 활성화합니다. 암호 해독 권한 부여을 참조하세요.

  3. 사용자 및 역할에 키를 사용하여 이벤트 데이터 저장소 데이터를 암호화하고 복호화할 수 있는 권한을 부여합니다. KMS

    이벤트 데이터 저장소를 생성하고 키로 암호화하거나 KMS 키로 암호화하는 이벤트 데이터 저장소에서 쿼리를 실행할 때는 KMS 키에 대한 쓰기 권한이 있어야 합니다. KMS KMS키 정책은 액세스 권한이 있어야 CloudTrail 하며 이벤트 데이터 저장소에서 작업 (예: 쿼리) 을 실행하는 사용자가 KMS 키를 관리할 수 있어야 합니다.

  4. KMS주요 속성을 설명할 CloudTrail 수 있습니다. KMS주요 속성을 설명할 CloudTrail 수 있습니다.을 참조하세요.

aws:SourceArnaws:SourceAccount 조건 키는 이벤트 데이터 저장소의 KMS 키 정책에서 지원되지 않습니다.

중요

KMS키 정책에 새 섹션을 추가할 때는 정책의 기존 섹션을 변경하지 마십시오.

이벤트 데이터 저장소에 암호화가 활성화되어 있고 KMS 키가 비활성화 또는 삭제되거나 KMS 키 정책이 올바르게 구성되지 않은 경우 이벤트 데이터 스토어에 이벤트를 전달할 CloudTrail 수 없습니다. CloudTrail

암호화 권한 부여

예 특정 CloudTrail 계정을 대신하여 로그를 암호화할 수 있습니다.

CloudTrail 특정 계정을 대신하여 KMS 키를 사용하여 로그를 암호화하려면 명시적인 권한이 필요합니다. 계정을 지정하려면 KMS 키 정책에 다음과 같은 필수 설명을 추가하고 대체하십시오.account-id, region, 및 trailName 구성에 적합한 값을 입력하십시오. EncryptionContext섹션에 계정을 추가하여 해당 계정이 IDs KMS 키를 사용하여 로그 파일을 암호화하는 CloudTrail 데 사용할 수 있도록 할 수 있습니다.

보안 모범 사례로 트레일의 키 정책에 aws:SourceArn 조건 KMS 키를 추가하십시오. IAM글로벌 조건 키를 aws:SourceArn 사용하면 특정 트레일 또는 트레일에만 KMS 키를 사용할 수 있습니다. CloudTrail

{ "Sid": "Allow CloudTrail to encrypt logs", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" }, "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:account-id:trail/*" } } }

CloudTrail Lake 이벤트 데이터 저장소 로그를 암호화하는 데 사용되는 KMS 키에 대한 정책에는 조건 키 aws:SourceArn 또는 를 사용할 수 없습니다. aws:SourceAccount 다음은 이벤트 데이터 저장소의 KMS 키 정책 예시입니다.

{ "Sid": "Allow CloudTrail to encrypt event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

다음 예제 정책 설명은 다른 계정이 내 KMS 키를 사용하여 CloudTrail 로그를 암호화하는 방법을 보여줍니다.

시나리오
  • KMS키가 계정에 있습니다.111111111111.

  • 본인과 계정 모두 222222222222 로그를 암호화합니다.

정책에서 사용자 키로 암호화하는 하나 이상의 계정을 에 추가합니다. CloudTrail EncryptionContext 이렇게 하면 지정한 계정의 로그만 키를 사용하여 로그를 암호화하도록 제한됩니다 CloudTrail . 루트 오브 어카운트를 제공하는 경우 222222222222 로그 암호화 권한은 계정 관리자에게 해당 계정의 다른 사용자에게 필요한 권한을 암호화할 수 있는 권한을 위임합니다. 계정 관리자는 해당 사용자와 관련된 정책을 변경하여 이 작업을 수행합니다. IAM

보안 모범 사례로서 키 정책에 aws:SourceArn 조건 KMS 키를 추가하십시오. IAM글로벌 조건 키는 지정된 트레일에만 KMS 키를 CloudTrail 사용하도록 하는 aws:SourceArn 데 도움이 됩니다. 이 조건은 이벤트 데이터 저장소의 KMS 키 정책에서 지원되지 않습니다.

KMS주요 정책 설명:

{ "Sid": "Enable CloudTrail encrypt permissions", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": [ "arn:aws:cloudtrail:*:111111111111:trail/*", "arn:aws:cloudtrail:*:222222222222:trail/*" ] }, "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

에서 사용할 KMS 키 정책을 편집하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 정책 편집을 참조하십시오. CloudTrail

암호 해독 권한 부여

CloudTrail 구성에 KMS 키를 추가하기 전에 필요한 모든 사용자에게 암호 해독 권한을 부여하는 것이 중요합니다. 암호화 권한이 있지만 복호화 권한이 없는 사용자는 암호화된 로그를 읽을 수 없습니다. S3 버킷 키가 있는 기존 S3 버킷을 사용하는 경우 KMS 암호화가 활성화된 상태에서 SSE 트레일을 생성하거나 업데이트하려면 kms:Decrypt 권한이 필요합니다.

CloudTrail 로그 복호화 권한을 활성화합니다.

키 사용자에게 암호화된 로그 파일을 읽을 수 있는 CloudTrail 명시적 권한을 부여해야 합니다. 사용자가 암호화된 로그를 읽을 수 있게 하려면 KMS 키 정책에 다음과 같은 필수 설명을 추가하고, 키를 사용하여 해독할 수 있게 하려는 모든 보안 주체에 대해 한 줄을 추가하도록 Principal 섹션을 수정하십시오. KMS

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

다음은 CloudTrail 서비스 주체가 트레일 로그를 해독하도록 허용하는 데 필요한 예제 정책입니다.

{ "Sid": "Allow CloudTrail to decrypt a trail", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

CloudTrail Lake 이벤트 데이터 저장소에 사용되는 KMS 키의 암호 해독 정책은 다음과 비슷합니다. 의 값으로 ARNs 지정된 사용자 또는 역할에는 이벤트 데이터 저장소를 생성 또는 업데이트하거나, 쿼리를 실행하거나, 쿼리 결과를 가져오려면 암호 해독 권한이 Principal 필요합니다.

{ "Sid": "Enable user key permissions for event data stores" "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

다음은 CloudTrail 서비스 주체가 이벤트 데이터 저장소 로그를 해독하도록 허용하는 데 필요한 예제 정책입니다.

{ "Sid": "Allow CloudTrail to decrypt an event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

계정의 사용자가 키를 사용하여 트레일 로그를 해독할 수 있도록 허용하세요. KMS

이 정책 구문은 계정의 사용자 또는 역할이 키를 사용하여 계정의 S3 버킷에서 암호화된 로그를 읽을 수 있도록 허용하는 방법을 보여 줍니다.

예 시나리오
  • KMS키, S3 버킷, IAM 사용자 Bob이 계정에 있습니다. 111111111111

  • IAM사용자 Bob에게 S3 버킷의 CloudTrail 로그를 해독할 권한을 부여합니다.

키 정책에서 사용자 Bob에 대한 CloudTrail 로그 암호 해독 권한을 활성화합니다. IAM

KMS주요 정책 설명:

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/Bob" }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }
주제

    다른 계정의 사용자가 내 키로 트레일 로그를 해독할 수 있도록 허용 KMS

    다른 계정의 사용자가 내 KMS 키를 사용하여 트레일 로그를 해독하도록 허용할 수 있지만 이벤트 데이터 저장소 로그는 허용하지 않을 수 있습니다. 키 정책에 필요한 변경 사항은 S3 버킷이 귀하의 계정에 있는지 아니면 다른 계정에 있는지에 따라 달라집니다.

    다른 계정에 있는 버킷의 사용자가 로그의 암호를 해독하도록 허용

    이 정책은 다른 계정의 IAM 사용자 또는 역할이 자신의 키를 사용하여 다른 계정의 S3 버킷에서 암호화된 로그를 읽을 수 있도록 허용하는 방법을 설명합니다.

    시나리오
    • KMS키가 계정에 있습니다111111111111.

    • IAM사용자 Alice와 S3 버킷이 계정에 222222222222 있습니다.

    이 경우 계정에서 로그를 해독할 수 있는 CloudTrail 권한을 부여하고 Alice의 IAM 사용자 정책에 따라 계정에 222222222222 있는 키를 KeyA 사용할 수 있는 권한을 부여합니다. 111111111111

    KMS주요 정책 설명:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::222222222222:root" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    Alice의 IAM 사용자 정책 설명:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111111111111:key/KeyA" } ] }

    다른 계정의 사용자가 버킷에서 추적 로그를 복호화하도록 허용

    이 정책은 다른 계정이 귀하의 키를 사용하여 S3 버킷에서 암호화된 로그를 읽는 방법을 보여 줍니다.

    예 시나리오
    • KMS키와 S3 버킷이 계정에 111111111111 있습니다.

    • 버킷에서 로그를 읽는 사용자는 계정 222222222222에 있습니다.

    이 시나리오를 활성화하려면 계정의 IAM 역할에 CloudTrailReadRole대한 암호 해독 권한을 활성화한 다음 다른 계정에 해당 역할을 수임할 권한을 부여해야 합니다.

    KMS주요 정책 설명:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::11111111111:role/CloudTrailReadRole" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    CloudTrailReadRole신뢰 기관 정책 성명서:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "sts:AssumeRole" } ] }

    에서 사용할 KMS 키 정책을 편집하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 정책 편집을 참조하십시오. CloudTrail

    KMS주요 속성을 설명할 CloudTrail 수 있습니다.

    CloudTrail KMS키 속성을 설명할 수 있는 기능이 필요합니다. 이 기능을 활성화하려면 다음 필수 설명을 KMS 키 정책에 그대로 추가하십시오. 이 명령문은 지정한 다른 권한 CloudTrail 이외의 권한은 부여하지 않습니다.

    보안 모범 사례로서 키 정책에 aws:SourceArn 조건 KMS 키를 추가하십시오. IAM글로벌 조건 키는 특정 트레일 또는 트레일에만 KMS 키를 CloudTrail 사용하도록 하는 aws:SourceArn 데 도움이 됩니다.

    { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

    KMS키 정책 편집에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 정책 편집을 참조하십시오.