

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

# CloudTrail에 대한 AWS KMS 키 정책 구성
<a name="create-kms-key-policy-for-cloudtrail"></a>

세 가지 AWS KMS key 방법으로를 생성할 수 있습니다.
+ CloudTrail 콘솔
+  AWS 관리 콘솔
+ 는 AWS CLI

**참고**  
CloudTrail 콘솔에서 KMS 키를 생성하면 CloudTrail이 필요한 KMS 키 정책을 자동으로 추가합니다. 수동으로 정책 구문을 추가할 필요가 없습니다. [CloudTrail 콘솔에서 생성된 기본 KMS 키 정책](default-kms-key-policy.md)을(를) 참조하세요.

 AWS Management Console 또는에서 KMS 키를 생성하는 경우 CloudTrail과 함께 사용할 수 있도록 키에 정책 섹션을 추가해야 AWS CLI합니다. 정책은 CloudTrail이 키를 사용하여 로그 파일, 다이제스트 파일 및 이벤트 데이터 스토어를 암호화하고 지정한 사용자가 암호화되지 않은 형태로 로그 파일을 읽을 수 있도록 허용해야 합니다.

다음 리소스를 참조하세요.
+ 를 사용하여 KMS 키를 생성하려면 [create-key](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html)를 AWS CLI참조하세요.
+ CloudTrail에 대한 KMS 키 정책을 편집하려면 *AWS Key Management Service 개발자 가이드*의 [키 정책 편집](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-editing) 단원을 참조하세요.
+ CloudTrail의 사용 방식에 대한 기술적 세부 정보는 섹션을 AWS KMS참조하세요[에서를 AWS CloudTrail 사용하는 방법 AWS KMS](how-kms-works-with-cloudtrail.md).

**Topics**
+ [CloudTrail에서 사용하기 위해 필요한 KMS 키 정책 단원](#create-kms-key-policy-for-cloudtrail-policy-sections)
+ [추적에 대한 암호화 권한 부여](#create-kms-key-policy-for-cloudtrail-encrypt)
+ [이벤트 데이터 스토어에 대한 암호화 권한 부여](#create-kms-key-policy-for-cloudtrail-encrypt-eds)
+ [추적에 대한 복호화 권한 부여](#create-kms-key-policy-for-cloudtrail-decrypt)
+ [이벤트 데이터 스토어에 대한 복호화 권한 부여](#create-kms-key-policy-for-cloudtrail-decrypt-eds)
+ [KMS 키 속성을 설명하도록 CloudTrail 사용 설정](#create-kms-key-policy-for-cloudtrail-describe)
+ [CloudTrail 콘솔에서 생성된 기본 KMS 키 정책](default-kms-key-policy.md)

## CloudTrail에서 사용하기 위해 필요한 KMS 키 정책 단원
<a name="create-kms-key-policy-for-cloudtrail-policy-sections"></a>

 AWS 관리 콘솔 또는를 사용하여 KMS 키를 생성한 경우 CloudTrail에서 작동하려면 최소한 다음 문을 KMS 키 정책에 추가해야 AWS CLI합니다.

**Topics**
+ [추적에 필요한 KMS 키 정책 요소](#required-kms-key-policy-trails)
+ [이벤트 데이터 스토어에 필요한 KMS 키 정책 요소](#required-kms-key-policy-eventdatastores)

### 추적에 필요한 KMS 키 정책 요소
<a name="required-kms-key-policy-trails"></a>

1. CloudTrail 로그 및 다이제스트 파일을 암호화할 수 있는 권한을 부여합니다. 자세한 내용은 [추적에 대한 암호화 권한 부여](#create-kms-key-policy-for-cloudtrail-encrypt) 단원을 참조하십시오.

1. CloudTrail 로그 및 다이제스트 파일을 복호화할 수 있는 권한을 부여합니다. 자세한 내용은 [추적에 대한 복호화 권한 부여](#create-kms-key-policy-for-cloudtrail-decrypt) 단원을 참조하십시오. [S3 버킷 키](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)와 함께 기존 S3 버킷을 사용하는 경우 SSE-KMS 암호화가 사용 설정된 추적을 생성하거나 업데이트하려면 `kms:Decrypt` 권한이 필요합니다.

1. KMS 키 속성을 설명하도록 CloudTrail을 사용 설정합니다. 자세한 내용은 [KMS 키 속성을 설명하도록 CloudTrail 사용 설정](#create-kms-key-policy-for-cloudtrail-describe) 단원을 참조하십시오.

보안 모범 사례로 `aws:SourceArn` 조건 키를 KMS 키 정책에 추가합니다. IAM 전역 조건 키 `aws:SourceArn`는 CloudTrail이 특정 추적(들)에 대해서만 KMS 키를 사용하도록 합니다. `aws:SourceArn`의 값은 항상 KMS 키를 사용하는 추적 ARN(또는 추적 ARN의 배열)입니다. 기존 추적에 대한 KMS 키 정책에 `aws:SourceArn` 조건 키를 추가해야 합니다.

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

**중요**  
KMS 키 정책에 새 단원을 추가할 때 정책의 기존 단원을 변경하지 마세요.  
추적에서 암호화가 활성화되고, KMS 키가 비활성화되거나 KMS 키 정책이 CloudTrail에 대해 올바르게 구성되지 않은 경우, CloudTrail은 로그를 전달할 수 없습니다.

### 이벤트 데이터 스토어에 필요한 KMS 키 정책 요소
<a name="required-kms-key-policy-eventdatastores"></a>

1. CloudTrail Lake 이벤트 데이터 스토어를 암호화할 수 있는 권한을 부여합니다. 자세한 내용은 [이벤트 데이터 스토어에 대한 암호화 권한 부여](#create-kms-key-policy-for-cloudtrail-encrypt-eds) 단원을 참조하십시오.

1. CloudTrail Lake 이벤트 데이터 스토어를 복호화할 수 있는 권한을 부여합니다. 자세한 내용은 [이벤트 데이터 스토어에 대한 복호화 권한 부여](#create-kms-key-policy-for-cloudtrail-decrypt-eds) 단원을 참조하십시오.

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

1. KMS 키 속성을 설명하도록 CloudTrail을 사용 설정합니다. 자세한 내용은 [KMS 키 속성을 설명하도록 CloudTrail 사용 설정](#create-kms-key-policy-for-cloudtrail-describe) 단원을 참조하십시오.

`aws:SourceArn` 및 `aws:SourceAccount` 조건 키는 이벤트 데이터 스토어의 KMS 키 정책에서 지원되지 않습니다.

**중요**  
KMS 키 정책에 새 섹션을 추가할 때 정책의 기존 섹션을 변경하지 마세요.  
이벤트 데이터 스토어에서 암호화가 활성화되고 KMS 키가 비활성화 또는 삭제되거나 KMS 키 정책이 CloudTrail에 대해 올바르게 구성되지 않은 경우 CloudTrail은 이벤트 데이터 스토어에 이벤트를 전달할 수 없습니다.

## 추적에 대한 암호화 권한 부여
<a name="create-kms-key-policy-for-cloudtrail-encrypt"></a>

**Example CloudTrail이 특정 계정을 대신하여 로그 파일 및 다이제스트 파일을 암호화하도록 허용**  
CloudTrail이 특정 계정을 대신하여 로그 파일 및 다이제스트 파일을 암호화하기 위해 KMS 키를 사용하려면 명시적 권한이 필요합니다. 계정을 지정하려면 다음 필수 명령문을 KMS 키 정책에 추가하고 *account-id*, *region* 및 *trailName*을 구성에 적절한 값으로 바꿉니다. `EncryptionContext` 섹션에 추가 계정 ID를 추가하면 해당 계정이 CloudTrail을 사용하여 KMS 키를 통해 로그 파일 및 다이제스트 파일을 암호화할 수 있습니다.  
보안 모범 사례로 `aws:SourceArn` 조건 키를 추적의 KMS 키 정책에 추가합니다. IAM 전역 조건 키 `aws:SourceArn`는 CloudTrail이 특정 추적(들)에 대해서만 KMS 키를 사용하도록 합니다.

```
{
   "Sid": "AllowCloudTrailEncryptLogs",
   "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/*"
         }
    }
}
```

**Example**  
다음 정책 문 예제에서는 다른 계정이 KMS 키를 사용하여 CloudTrail 로그 파일 및 다이제스트 파일을 암호화하는 방법을 보여 줍니다.

**시나리오**
+ KMS 키는 계정 *111111111111*에 있습니다.
+ 귀하 및 계정 *222222222222* 모두 로그를 암호화합니다.

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

보안 모범 사례로 `aws:SourceArn` 조건 키를 KMS 키 정책에 추가합니다. IAM 전역 조건 키 `aws:SourceArn`은 CloudTrail이 특정 추적들에 대해서만 KMS 키를 사용하도록 합니다. 이 조건은 이벤트 데이터 스토어의 KMS 키 정책에서 지원되지 않습니다.

KMS 키 정책 문:

```
{
  "Sid": "EnableCloudTrailEncryptPermissions",
  "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"
    }
  }
}
```

CloudTrail에서 사용할 KMS 키 정책 편집에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 [키 정책 편집](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-editing)을 참조하세요.

## 이벤트 데이터 스토어에 대한 암호화 권한 부여
<a name="create-kms-key-policy-for-cloudtrail-encrypt-eds"></a>

CloudTrail Lake 이벤트 데이터 스토어 로그를 암호화하는 데 사용되는 KMS 키의 정책은 조건 키 `aws:SourceArn` 또는 `aws:SourceAccount`를 사용할 수 없습니다. 다음은 이벤트 데이터 스토어 KMS 키 정책의 예입니다.

```
{
    "Sid": "AllowCloudTrailEncryptEds",
    "Effect": "Allow",
    "Principal": {
        "Service": "cloudtrail.amazonaws.com"
     },
     "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "*"
}
```

## 추적에 대한 복호화 권한 부여
<a name="create-kms-key-policy-for-cloudtrail-decrypt"></a>

KMS 키를 CloudTrail 구성에 추가하기 전에 복호화 권한이 필요한 모든 사용자에게 해당 권한을 부여하는 것이 중요합니다. 암호화 권한이 있지만 복호화 권한이 없는 사용자는 암호화된 로그를 읽을 수 없습니다. [S3 버킷 키](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)와 함께 기존 S3 버킷을 사용하는 경우 SSE-KMS 암호화가 사용 설정된 추적을 생성하거나 업데이트하려면 `kms:Decrypt` 권한이 필요합니다.

**CloudTrail 로그 복호화 권한 사용 설정**  
키 사용자에게는 CloudTrail이 암호화한 로그 파일을 읽을 수 있는 명시적 권한이 부여되어야 합니다. 사용자가 암호화된 로그를 읽을 수 있도록 하려면 다음 필수 문을 KMS 키 정책에 추가하고, `Principal` 단원을 수정함으로써 KMS 키를 사용해 복호화할 수 있는 모든 보안 주체에 대한 코드 줄을 추가합니다.

```
{
  "Sid": "EnableCloudTrailLogDecryptPermissions",
  "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": "AllowCloudTrailDecryptTrail",
      "Effect": "Allow",
      "Principal": {
          "Service": "cloudtrail.amazonaws.com"
        },
      "Action": "kms:Decrypt",
      "Resource": "*"
}
```

### 계정의 사용자가 KMS 키를 사용하여 추적 로그를 복호화하도록 허용
<a name="create-kms-key-policy-for-cloudtrail-decrypt-your-account"></a>

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

**Example 시나리오**  
+ KMS 키, S3 버킷, IAM 사용자 Bob은 계정 `111111111111`에 있습니다.
+ IAM 사용자 Bob에게 S3 버킷의 CloudTrail 로그를 복호화할 수 있는 권한을 부여합니다.

키 정책에서 IAM 사용자 Bob의 CloudTrail 로그 암호 복호화 권한을 사용 설정합니다.

KMS 키 정책 문:

```
{
  "Sid": "EnableCloudTrailLogDecryptPermissions",
  "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"
    }
  }
}
```

**Topics**

### 다른 계정의 사용자가 KMS 키를 사용하여 추적 로그를 복호화하도록 허용
<a name="create-kms-key-policy-for-cloudtrail-decrypt-other-accounts"></a>

다른 계정의 사용자가 KMS 키를 사용하여 로그를 복호화하도록 허용할 수 있습니다. 키 정책에 필요한 변경 사항은 S3 버킷이 귀하의 계정에 있는지 아니면 다른 계정에 있는지에 따라 달라집니다.

#### 다른 계정에 있는 버킷의 사용자가 로그의 암호를 해독하도록 허용
<a name="create-kms-key-policy-for-cloudtrail-decrypt-different-bucket"></a>

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

**시나리오**
+ KMS 키는 계정 `111111111111`에 있습니다.
+ IAM 사용자 Alice와 S3 버킷은 계정 `222222222222`에 있습니다.

이 경우 계정 `222222222222`에 있는 로그를 복호화할 권한을 CloudTrail에 부여하고, Alice의 IAM 사용자에게 계정 `111111111111`에 있는 키 `KeyA`를 사용할 정책 권한을 부여합니다.

KMS 키 정책 문:

```
{
  "Sid": "EnableEncryptedCloudTrailLogReadAccess",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::222222222222:root"
    ]
  },
  "Action": "kms:Decrypt",
  "Resource": "arn:aws:kms:region:111111111111:key/key-id",
  "Condition": {
    "Null": {
      "kms:EncryptionContext:aws:cloudtrail:arn": "false"
    }
  }
}
```

Alice의 IAM 사용자 정책 구문:

------
#### [ JSON ]

****  

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

------

#### 다른 계정의 사용자가 버킷에서 추적 로그를 복호화하도록 허용
<a name="create-kms-key-policy-for-cloudtrail-decrypt-same-bucket"></a>

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

**Example 시나리오**  
+ KMS 키 및 S3 버킷은 계정 `111111111111`에 있습니다.
+ 버킷에서 로그를 읽는 사용자는 계정 `222222222222`에 있습니다.

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

KMS 키 정책 문:

```
{
  "Sid": "EnableEncryptedCloudTrailLogReadAccess",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::111111111111:role/CloudTrailReadRole"
    ]
  },
  "Action": "kms:Decrypt",
  "Resource": "arn:aws:kms:region:account-id:key/key-id",
  "Condition": {
    "Null": {
      "kms:EncryptionContext:aws:cloudtrail:arn": "false"
    }
  }
}
```

**CloudTrailReadRole** 신뢰 개체 정책 구문:

------
#### [ JSON ]

****  

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

------

CloudTrail에서 사용할 KMS 키 정책 편집에 대한 내용은AWS Key Management Service 개발자 안내서**의 [키 정책 편집](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-editing)을 참조하세요.

## 이벤트 데이터 스토어에 대한 복호화 권한 부여
<a name="create-kms-key-policy-for-cloudtrail-decrypt-eds"></a>

CloudTrail Lake 이벤트 데이터 스토어에 사용되는 KMS 키의 복호화 정책은 다음과 비슷합니다. `Principal`의 값으로 지정된 사용자 또는 역할 ARN에는 이벤트 데이터 스토어를 생성 또는 업데이트하거나, 쿼리를 실행하거나, 쿼리 결과를 가져오기 위한 복호화 권한이 필요합니다.

```
{
      "Sid": "EnableUserKeyPermissionsEds"
      "Effect": "Allow",
      "Principal": {
          "AWS": "arn:aws:iam::account-id:user/username"
      },
      "Action": [
          "kms:Decrypt",
          "kms:GenerateDataKey"
      ],
      "Resource": "*"
  }
```

다음은 CloudTrail 서비스 위탁자가 이벤트 데이터 스토어를 복호화하도록 허용하는 데 필요한 정책의 예입니다.

```
{
      "Sid": "AllowCloudTrailDecryptEds",
      "Effect": "Allow",
      "Principal": {
          "Service": "cloudtrail.amazonaws.com"
        },
      "Action": "kms:Decrypt",
      "Resource": "*"
}
```

## KMS 키 속성을 설명하도록 CloudTrail 사용 설정
<a name="create-kms-key-policy-for-cloudtrail-describe"></a>

CloudTrail에는 KMS 키 속성을 설명할 수 있는 기능이 필요합니다. 이 기능을 사용하려면 KMS 키 정책에 다음 필수 문을 있는 그대로 추가합니다. 이 문은 지정한 다른 권한을 넘어서는 어떠한 권한도 CloudTrail에 부여하지 않습니다.

보안 모범 사례로 `aws:SourceArn` 조건 키를 KMS 키 정책에 추가합니다. IAM 전역 조건 키 `aws:SourceArn`는 CloudTrail이 특정 추적(들)에 대해서만 KMS 키를 사용하도록 합니다.

```
{
  "Sid": "AllowCloudTrailAccess",
  "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 개발자 가이드*의 [키 정책 편집](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-editing)을 참조하세요.

# CloudTrail 콘솔에서 생성된 기본 KMS 키 정책
<a name="default-kms-key-policy"></a>

CloudTrail 콘솔 AWS KMS key 에서를 생성하면 다음 정책이 자동으로 생성됩니다. 이 정책은 다음 권한을 허용합니다.
+ KMS 키에 대한 권한을 허용 AWS 계정 (루트)합니다.
+ CloudTrail이 KMS 키로 로그 파일 및 다이제스트 파일을 암호화하고 KMS 키를 설명하도록 허용합니다.
+ 지정된 계정의 모든 사용자가 로그 파일 및 다이제스트 파일을 복호화하도록 허용합니다.
+ 지정된 계정의 모든 사용자가 KMS 키에 대한 KMS 별칭을 생성하도록 허용합니다.
+ 추적을 생성한 계정의 계정 ID에 대한 교차 계정 로그 암호화 해제를 활성화합니다.

**Topics**
+ [추적의 기본 KMS 키 정책](#default-kms-key-policy-trail)
+ [CloudTrail Lake 이벤트 데이터 스토어의 기본 KMS 키 정책](#default-kms-key-policy-eds)

## 추적의 기본 KMS 키 정책
<a name="default-kms-key-policy-trail"></a>

다음은 추적과 함께 AWS KMS key 사용하는에 대해 생성된 기본 정책입니다.

**참고**  
정책은 교차 계정이 KMS 키를 사용하여 로그 파일 및 다이제스트 파일을 복호화할 수 있도록 허용하는 문을 포함합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Key policy created by CloudTrail",
    "Statement": [
        {
            "Sid": "Enable IAM user permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111111111111:root",
                    "arn:aws:iam::111111111111:user/username"
                ]
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow CloudTrail to encrypt logs",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudtrail.amazonaws.com"
             },
            "Action": "kms:GenerateDataKey*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": "arn:aws:cloudtrail:us-east-1:111111111111:trail/trail-name"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:111111111111:trail/*"
                }
            }
        },
        {
            "Sid": "Allow CloudTrail to describe key",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudtrail.amazonaws.com"
             },
            "Action": "kms:DescribeKey",
            "Resource": "*"
        },
        {
            "Sid": "Allow principals in the account to decrypt log files",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
             },
            "Action": [
                "kms:Decrypt",
                "kms:ReEncryptFrom"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:CallerAccount": "111111111111"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:111111111111:trail/*"
                }
            }
        },
        {
            "Sid": "Enable cross account log decryption",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "kms:Decrypt",
                "kms:ReEncryptFrom"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:CallerAccount": "111111111111"
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:111111111111:trail/*"
                }
            }
        }
    ]
}
```

------

## CloudTrail Lake 이벤트 데이터 스토어의 기본 KMS 키 정책
<a name="default-kms-key-policy-eds"></a>

다음은 CloudTrail Lake의 이벤트 데이터 스토어와 함께 AWS KMS key 사용하는에 대해 생성된 기본 정책입니다.

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Id": "Key policy created by CloudTrail",
      "Statement": [
        {
          "Sid": "The key created by CloudTrail to encrypt event data stores. Created ${new Date().toUTCString()}",
          "Effect": "Allow",
          "Principal": {
            "Service": "cloudtrail.amazonaws.com"
          },
          "Action": [
            "kms:GenerateDataKey",
            "kms:Decrypt"
          ],
          "Resource": "*"
        },
        {
          "Sid": "Enable IAM user permissions",
          "Effect": "Allow",
          "Principal": {
                "AWS": "arn:aws:iam::111111111111:root"
          },
          "Action": "kms:*",
          "Resource": "*"
        },
        {
          "Sid": "Enable user to have permissions",
          "Effect": "Allow",
          "Principal": {
               "AWS" : "arn:aws:sts::111111111111:assumed-role/example-role-name"
        },
          "Action": [
            "kms:Decrypt",
            "kms:GenerateDataKey"
           ],
          "Resource": "*"
        }
      ]
    }
```

------