跳至內容

如何解決在建立或更新軌跡時,出現的 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 儲存貯體名稱,並將 managementAccountID 與 o-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