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

创建用于向第三方授予访问权的访问策略

账户 A 必须为账户 Z(方案 2 中的第三方分析器)创建单独的 IAM 角色。在创建角色时,AWS 会自动创建信任关系,以指定将信任账户 Z 来代入角色。该角色的访问策略指定了账户 Z 可执行的操作。有关创建角色和角色策略的更多信息,请参阅创建角色

例如,由 AWS 创建的信任关系可以指定,信任账户 Z 来担任由账户 A 创建的角色。以下是信任策略示例:

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

如果在为账户 Z 创建角色时指定了外部 ID,则您的访问策略将包含一个添加的 Condition 元素,该元素将测试由账户 Z 分配的唯一 ID。此测试在代入角色时执行。以下示例访问策略包含 Condition 元素。

有关更多信息,请参阅 IAM 用户指南 中的如何在向第三方授予对 AWS 资源的访问权时使用外部 ID

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::account-Z-id:root"}, "Action": "sts:AssumeRole", "Condition": {"StringEquals": {"sts:ExternalId": "external-ID-issued-by-account-Z"}} }] }

您还必须为账户 A 角色创建访问策略来指定账户 Z 可读取 Amazon S3 存储桶中的所有日志。访问策略应类似于以下示例。Resource 值结尾处的通配符 (*) 表示账户 Z 可访问已获得相应访问权的 S3 存储桶中的任何日志文件。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::bucket-name/*" }, { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::bucket-name" } ] }

在为账户 Z 创建角色并指定相应的信任关系和访问策略后,账户 Z 中的 IAM 用户必须以编程方式代入角色才能读取存储桶中的日志文件。有关更多信息,请参阅代入一个角色