기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하여 쿼리 결과 암호화 AWS Key Management Service
기본적으로 CloudWatch Logs는 기본 CloudWatch Logs 서버 측 암호화 방법을 사용하여 CloudWatch Logs 인사이트 쿼리의 저장된 결과를 암호화합니다. AWS KMS 키를 사용하여 대신 이러한 결과를 암호화하도록 선택할 수 있습니다. AWS KMS 키를 암호화 결과와 연결하면 CloudWatch Logs는 해당 키를 사용하여 계정에 저장된 모든 쿼리 결과를 암호화합니다.
나중에 쿼리 결과에서 키 연결을 해제하면 CloudWatch Logs는 이후 쿼리에서 기본 암호화 방법을 다시 사용합니다. 하지만 키가 연결된 동안 실행된 쿼리는 여전히 해당 키로 암호화됩니다. CloudWatch Logs는 계속해서 키를 참조할 수 있으므로 CloudWatch Logs는 KMS 키의 연결이 해제된 후에도 여전히 해당 결과를 반환할 수 있습니다. 하지만 나중에 키를 비활성화하면 CloudWatch Logs는 해당 키로 암호화된 쿼리 결과를 읽을 수 없습니다.
중요
CloudWatch Logs는 대칭 KMS 키만 지원합니다. 비대칭 키를 사용하여 쿼리 결과를 암호화하지 마세요. 자세한 내용은 대칭 및 비대칭 키 사용을 참조하세요.
Limits
-
다음 단계를 수행하려면
kms:CreateKey
,kms:GetKeyPolicy
및kms:PutKeyPolicy
권한이 있어야 합니다. -
쿼리 결과에서 키를 연결하거나 연결 해제하고 난 후 이러한 변경이 적용되기까지 최대 5분의 시간이 소요될 수 있습니다.
-
연결된 키에 대한 CloudWatch Logs 액세스 권한을 취소하거나 연결된 KMS 키를 삭제한 경우에는 CloudWatch Logs에서 암호화된 데이터를 더 이상 검색할 수 없습니다.
-
CloudWatch 콘솔을 사용하여 키를 연결할 수 없으며 AWS CLI 또는 CloudWatch Logs API를 사용해야 합니다.
1단계: 생성 AWS KMS key
다음 create-key 명령을 사용하여 KMS 키 생성:
aws kms create-key
이 명령의 출력 화면에는 키의 키 ID와 Amazon 리소스 이름(ARN)이 포함됩니다. 다음은 예 출력입니다.
{
"KeyMetadata": {
"Origin": "AWS_KMS",
"KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
"Description": "",
"KeyManager": "CUSTOMER",
"Enabled": true,
"CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
"KeyUsage": "ENCRYPT_DECRYPT",
"KeyState": "Enabled",
"CreationDate": 1478910250.94,
"Arn": "arn:aws:kms:us-west-2:123456789012:key/6f815f63-e628-448c-8251-e40cb0d29f59",
"AWSAccountId": "123456789012",
"EncryptionAlgorithms": [
"SYMMETRIC_DEFAULT"
]
}
}
2단계: KMS 키에 대한 권한 설정
기본적으로 모든 KMS 키는 비공개입니다. 리소스 소유자만 이를 사용하여 데이터를 암호화 및 해독할 수 있습니다. 그러나 리소스 소유자가 원한다면 다른 사용자 및 리소스에 키에 대한 액세스 권한을 부여할 수 있습니다. 이 단계에서는 키를 사용할 보안 주체 권한을 CloudWatch Logs 서비스에 제공합니다. 이 서비스 보안 주체는 키가 저장된 리전과 동일한 AWS 리전에 있어야 합니다.
가장 좋은 방법은 키 사용을 지정한 AWS 계정으로만 제한하는 것입니다.
먼저, 다음 get-key-policy명령을 사용하는 policy.json
으로 KMS에 대한 기본 정책을 저장합니다.
aws kms get-key-policy --key-id key-id
--policy-name default --output text > ./policy.json
텍스트 편집기에서 policy.json
파일을 열고 다음 설명 중 하나에서 굵은 글꼴로 표시된 섹션을 추가합니다. 기존 설명과 새 설명을 쉼표로 구분합니다. 이러한 문은 Condition
섹션을 사용하여 AWS KMS 키의 보안을 강화합니다. 자세한 내용은 AWS KMS 키 및 암호화 컨텍스트 단원을 참조하십시오.
이 예제의 Condition
섹션에서는 지정된 계정에서의 CloudWatch Logs Insights 쿼리 결과에 대한 AWS KMS 키 사용을 제한합니다.
{
"Version": "2012-10-17",
"Id": "key-default-1",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::account_ID
:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Principal": {
"Service": "logs.region
.amazonaws.com"
},
"Action": [
"kms:Encrypt*",
"kms:Decrypt*",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:Describe*"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:logs:region
:account_ID
:query-result:*"
},
"StringEquals": {
"aws:SourceAccount": "Your_account_ID
"
}
}
}
]
}
마지막으로 아래 put-key-policy 명령을 사용하여 업데이트된 정책을 추가합니다.
aws kms put-key-policy --key-id key-id
--policy-name default --policy file://policy.json
3단계: KMS 키를 쿼리 결과와 연결
KMS 키를 계정의 쿼리 결과와 연결
다음과 같이 disassociate-kms-key 명령을 사용합니다.
aws logs associate-kms-key --resource-identifier "arn:aws:logs:region
:account-id
:query-result:*" --kms-key-id "key-arn
"
4단계: 계정의 쿼리 결과에서 키 연결 해제
쿼리 결과에 연결된 KMS 키의 연결을 해제하려면 아래 disassociate-kms-key 명령을 사용합니다.
aws logs disassociate-kms-key --resource-identifier "arn:aws:logs:region
:account-id
:query-result:*"