跳至內容

如何解決在建立或更新軌跡時,出現的 CloudTrail 加密權限錯誤?

3 分的閱讀內容
0

當我嘗試建立 AWS CloudTrail 軌跡或更新現有追蹤時,收到「InsufficientEncryptionPolicyException」或「Insufficient permissions」錯誤。

解決方法

若要建立或更新使用加密日誌的 CloudTrail 軌跡,CloudTrail 需要具備使用 AWS Key Management Service (KMS) 加密,將日誌寫入 Amazon Simple Storage Service (Amazon S3) 儲存貯體的權限。

若要解決「InsufficientEncryptionPolicyException」或「Insufficient permissions to access S3 bucket or KMS key」錯誤,請更新 AWS KMS key 政策。接著,設定 Amazon S3 儲存貯體政策,加入 CloudTrail 所需的權限。

更新 AWS KMS key 政策以允許 CloudTrail 進行加密

請完成以下步驟:

  1. 開啟 CloudTrail console (CloudTrail 主控台)。

  2. 選取您的 CloudTrail 軌跡。

  3. Log file SSE-KMS encryption (日誌檔案 SSE-KMS 加密) 下,複製 AWS KMS key ID。

  4. 開啟 AWS KMS console (AWS KMS 主控台)。

  5. 搜尋 AWS KMS key ID,然後從 AWS KMS key 清單中選取您的金鑰。

  6. 選擇 Permissions (權限)。

  7. Key policy (金鑰政策) 下,選擇 Switch to policy view (切換至政策檢視)。

  8. 選擇 Edit (編輯)。

  9. 確認您的 AWS KMS key 政策包含以下權限:

    {
        "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 Resource Name (ARN)。將 arn:aws:cloudtrail:region:111122223333:trail/trailName 替換為您的 CloudTrail 軌跡 ARN。

更新 S3 儲存貯體政策,以允許 CloudTrail 寫入日誌

**重要:**將 arn:aws:cloudtrail:region:111122223333:trail/trailName 替換為您的 CloudTrail 軌跡 ARN,將 Bucket_Name 替換為您的 S3 儲存貯體名稱,並將 managementAccountIDo-organizationID 替換為您的 AWS Organizations 詳細資訊。如果您使用首碼,請將 optionalPrefix 替換為您的首碼路徑。

如果您是在 organization (組織) 中建立軌跡,請使用以下政策陳述式更新 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 console (CloudTrail 主控台)。
  2. 在導覽窗格中,選擇 Trails (軌跡),然後選擇您的軌跡名稱。
  3. General details (一般詳細資訊) 下,找到「Bucket access denied」錯誤。
  4. 選擇 Fix policy (修正政策)。接著,在快顯視窗中,再次選擇 Fix policy (修正政策)。
    **注意:**Fix policy (修正政策) 功能會自動更新您的 S3 儲存貯體政策,並解決「Bucket access denied」錯誤。政策變更需要一些時間才會傳播完成。當變更生效後,主控台會顯示 Logging (記錄)。您也可以登入 S3 儲存貯體,以確認儲存貯體具有正確的政策。

相關資訊

CloudTrail 的 Amazon S3 儲存貯體政策

設定 AWS KMS key 政策,讓 CloudTrail 存取 S3 儲存貯體或 KMS key