내용으로 건너뛰기

추적을 만들거나 업데이트할 때 CloudTrail 암호화 권한 오류를 해결하려면 어떻게 해야 합니까?

4분 분량
0

AWS CloudTrail Trail을 만들거나 기존 추적을 업데이트하려고 하면 ‘InsufficientEncryptionPolicyException’ 또는 ‘Insufficient permissions’ 오류가 발생합니다.

해결 방법

암호화된 로그로 CloudTrail 추적을 만들거나 업데이트하려면 CloudTrail에 AWS Key Management Service(AWS KMS) 암호화를 사용하여 Amazon Simple Storage Service(Amazon S3) 버킷에 로그를 쓸 수 있는 권한이 필요합니다.

‘InsufficientEncryptionPolicyException’ 또는 ‘Insufficient permissions to access S3 bucket or KMS key’ 오류를 해결하려면 AWS KMS 키 정책을 업데이트하십시오. 그런 다음, 필요한 CloudTrail 권한을 사용하여 Amazon S3 버킷 정책을 구성합니다.

CloudTrail 암호화를 허용하도록 AWS KMS 키 정책 업데이트

다음 단계를 완료하십시오.

  1. CloudTrail 콘솔을 엽니다.

  2. CloudTrail 추적을 선택합니다.

  3. 로그 파일 SSE-KMS 암호화에서 AWS KMS 키 ID를 복사합니다.

  4. AWS KMS 콘솔을 엽니다.

  5. AWS KMS 키 ID를 검색한 다음, AWS KMS 키 목록에서 키를 선택합니다.

  6. 권한을 선택합니다.

  7. 키 정책에서 정책 보기로 전환을 선택합니다.

  8. 편집을 선택합니다.

  9. AWS KMS 키 정책에 다음과 같은 권한이 있는지 확인합니다.

    {
        "Version": "2012-10-17",
        "Id": "Key policy created by CloudTrail",
        "Statement": [
            {
                "Sid": "Enable admin permissions",
                "Effect": "Allow",
                "Principal": {
                    "AWS": [
                        "arn:aws:iam::111122223333:root"
                    ]
                },
                "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:region:111122223333:trail/trailName"
                    }
                }
            },
            {
                "Sid": "Allow CloudTrail to describe key",
                "Effect": "Allow",
                "Principal": {
                    "Service": "cloudtrail.amazonaws.com"
                 },
                "Action": "kms:DescribeKey",
                "Resource": "*"
            },
            {
                "Sid": "Allow principals in other account to decrypt log files",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "*"
                 },
                "Action": [
                    "kms:Decrypt",
                    "kms:ReEncryptFrom"
                ],
                "Resource": "*",
                "Condition": {
                    "StringLike": {
                        "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:111122223333:trail/*"
                    }
                }
            }
        ]
    }

    참고: arn:aws:iam::111122223333:root를 AWS Identity and Access Management(IAM)의 Amazon 리소스 이름(ARN)으로 바꾸십시오. arn:aws:cloudtrail:region:111122223333:trail/trailName을 CloudTrail 추적의 ARN으로 바꾸십시오.

CloudTrail 권한을 통해 로그를 쓸 수 있도록 S3 버킷 정책 업데이트

중요: arn:aws:cloudtrail:region:111122223333:trail/trailName을 CloudTrail 추적 ARN의 ARN으로, Bucket_Name을 S3 버킷 이름으로, managementAccountIDo-organizationID를 AWS Organizations 세부 정보로 바꾸십시오. 접두사를 사용하는 경우 optionalPrefix를 접두사 경로로 바꾸십시오.

조직에서 추적을 만든 경우 다음 정책 문으로 S3 버킷 정책을 업데이트하십시오.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AWSCloudTrailAclCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "cloudtrail.amazonaws.com"
                ]
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::Bucket_Name",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName"
                }
            }
        },
        {
            "Sid": "AWSCloudTrailWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "cloudtrail.amazonaws.com"
                ]
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::Bucket_Name/AWSLogs/managementAccountID/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName"
                }
            }
        },
        {
            "Sid": "AWSCloudTrailOrganizationWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "cloudtrail.amazonaws.com"
                ]
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::Bucket_Name/AWSLogs/o-organizationID/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName"
                }
            }
        }
    ]
}

조직에서 추적을 만들지 않은 경우 대신 다음 정책 문으로 S3 버킷 정책을 업데이트하십시오.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AWSCloudTrailAclCheck",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudtrail.amazonaws.com"
      },
      "Action": "s3:GetBucketAcl",
      "Resource": "arn:aws:s3:::Bucket_Name",
      "Condition": {
        "StringEquals": {
          "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName"
        }
      }
    },
    {
      "Sid": "AWSCloudTrailWritePermissions",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudtrail.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::Bucket_Name/optionalPrefix/AWSLogs/111122223333/*",
      "Condition": {
        "StringEquals": {
          "s3:x-amz-acl": "bucket-owner-full-control",
          "aws:SourceArn": "arn:aws:cloudtrail:region:111122223333:trail/trailName"
        }
      }
    }
  ]
}

(선택 사항) 기존 추적의 S3 버킷 정책 업데이트

참고: 새 추적을 만들 때는 이 옵션을 사용할 수 없습니다.

다음 단계를 완료하십시오.

  1. CloudTrail 콘솔을 엽니다.
  2. 탐색 창에서 추적을 선택한 다음, 추적 이름을 선택합니다.
  3. 일반 세부 정보에서 ‘Bucket access denied’ 오류를 찾습니다.
  4. 정책 수정을 선택합니다. 그런 다음, 팝업 창에서 정책 수정을 다시 선택합니다.
    참고: Fix policy 함수는 S3 버킷 정책을 자동으로 업데이트하고 ‘Bucket access denied’ 오류를 해결합니다. 정책 변경 사항이 적용되는 데 시간이 걸릴 수 있습니다. 변경 사항이 적용되면 콘솔에 로깅이 표시됩니다. S3 버킷에 로그인하여 버킷에 올바른 정책이 있는지 확인할 수도 있습니다.

관련 정보

CloudTrail용 Amazon S3 버킷 정책

S3 버킷 또는 KMS 키에 액세스할 수 있도록 CloudTrail의 AWS KMS 키 정책 구성