AWS CloudTrail
用户指南 (版本 1.0)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

授予解密权限

在将 CMK 添加到您的 CloudTrail 配置之前,应向所有需要的用户提供解密权限。拥有加密权限但没有解密权限的用户将无法读取加密日志。

启用 CloudTrail 日志解密权限

必须为使用您的密钥的用户授予读取 CloudTrail 已加密的日志文件的显式权限。为使用户能够读取加密日志,请向您的 CMK 策略添加下面的必需声明(修改 Principal 部分,从而为您需要其能够利用您的 CMK 执行解密操作的每个委托人(角色或用户)添加一行)。

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws-cn:iam::aws-account-id:user/username" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

允许您账户中的用户使用您的 CMK 执行解密操作

示例

此策略声明演示如何允许您账户中的 IAM 用户或角色使用您的密钥读取您账户的 S3 存储桶中的加密日志。

例 场景

  • 您的 CMK、S3 存储桶及 IAM 用户 Bob 均位于账户 111111111111 中。

  • 您授予 IAM 用户 Bob 解密此 S3 存储桶中的 CloudTrail 日志的权限。

在密钥策略中,您为 IAM 用户 Bob 启用了 CloudTrail 日志解密权限。

CMK 策略声明:

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws-cn:iam::111111111111:user/Bob" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

主题

    允许其他账户中的用户使用您的 CMK 执行解密操作

    您可以允许其他账户中的用户使用您的 CMK 解密日志。需要对密钥策略执行的更改取决于 S3 存储桶位于您的账户还是其他账户中。

    允许其他账户中的存储桶用户解密日志

    示例

    此策略声明演示如何让其他账户中的 IAM 用户或角色使用您的密钥读取其他账户的 S3 存储桶中的加密日志。

    场景

    • 您的 CMK 位于账户 111111111111 中。

    • IAM 用户 Alice 和 S3 存储桶均位于账户 222222222222 中。

    在这种情况下,您需要赋予 CloudTrail 解密账户 222222222222 下的日志的权限,且赋予 Alice 的 IAM 用户使用您的密钥 KeyA(位于账户 111111111111 中)的策略权限。

    CMK 策略声明:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws-cn:iam::222222222222:root" ] }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    Alice 的 IAM 用户策略声明:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws-cn:kms:us-east-1:111111111111:key/keyA" } ] }

    允许其他账户中的用户解密您的存储桶中的日志

    此策略演示其他账户如何使用您的密钥读取您的 S3 存储桶中的加密日志。

    例 场景

    • 您的 CMK 和 S3 存储桶均位于账户 111111111111 中。

    • 将从您的存储桶读取日志的用户位于账户 222222222222 中。

    要实现这一场景,您需要为您账户中的 IAM 角色 CloudTrailReadRole 启用解密权限,然后赋予对方账户担任此角色的权限。

    CMK 策略声明:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws-cn:iam::11111111111:role/CloudTrailReadRole" ] }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    CloudTrailReadRole 信任实体策略声明:

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

    有关编辑 CMK 策略以用于 CloudTrail 的步骤,请参阅 AWS Key Management Service Developer Guide 中的编辑密钥策略