创建角色
当您将日志文件从多个账户聚合到单个 Amazon S3 存储桶中时,仅对存储桶有完全控制权的账户(我们的示例中为账户 A)对存储桶中的所有日志文件有完全读访问权。我们示例中的账户 B、账户 C 和账户 Z 在被授予权限前没有任何权限。因此,要将您的 Amazon CloudTrail 日志文件从一个账户共享到另一个账户(也就是说,要完成本部分前面描述的方案 1 或方案 2),您必须启用跨账户访问。您可以通过创建 IAM 角色及其关联的访问策略来做到这一点。
角色
为您要向其授予访问权的每个账户创建一个 IAM 角色。在我们的示例中,您将具有三个角色,账户 B、账户 C 和账户 Z 分别对应一个角色。每个 IAM 角色定义使该账户能够访问账户 A 拥有的资源(日志文件)的访问或权限策略。这些权限仅在代入角色时附加到每个角色并与每个账户(B、C 或 Z)关联。有关 IAM 角色的权限管理的详细信息,请参阅 IAM 用户指南中的 IAM 角色。有关如何代入角色的更多信息,请参阅代入角色。
策略
您创建的每个 IAM 角色具有两个策略。信任策略指定可信实体 或委托人。在我们的示例中,账户 B、账户 C 和账户 Z 为可信实体,并且这些账户中的具有适当权限的 IAM 用户可代入角色。
使用控制台创建角色时将自动创建信任策略。如果您使用 SDK 创建角色,则必须将信任策略作为参数提供给 CreateRole
API。如果您使用 CLI 创建角色,则必须在 create-role
CLI 命令中指定信任策略。
您必须作为账户 A 的所有者创建的角色访问(或权限)策略将定义委托人或可信实体能够访问的操作和资源(此示例中为 CloudTrail 日志文件)。在方案 1 中,将向生成了日志文件的账户授予对日志文件的访问权,如创建用于向自己的账户授予访问权限的访问策略中所讨论。在方案 2 中,将向第三方授予对所有日志文件的读访问权,如创建用于向第三方授予访问权限的访问策略中所讨论。
有关创建和使用 IAM 策略的更多详细信息,请参阅 IAM 用户指南中的访问管理。
创建角色
使用控制台创建角色
-
以账户 A 的管理员身份登录 Amazon 管理控制台。
-
导航到 IAM 控制台。
-
在导航窗格中,选择 Roles(角色)。
-
选择 Create New Role。
-
键入新角色的名称,然后选择 Next Step。
-
选择 Role for Cross-Account Access。
-
在方案 1 中,执行以下操作以在您拥有的账户之间提供访问权:
选择 Provide access between Amazon accounts you own(提供在您的 Amazon 账户之间进行相互访问的权限)。
-
输入要授予访问权的账户(B、C 或 Z)的 12 位数账户 ID。
-
如果您希望用户在代入角色之前提供多重验证,请选中 Require MFA 框。
在方案 2 中,执行以下操作以向第三方账户提供访问权。在我们的示例中,您将对账户 Z(第三方日志分析器)执行这些步骤:
-
选择 Allows IAM users from a 3rd party Amazon account to access this account(允许第三方 Amazon 账户的 IAM 用户访问此账户)。
-
输入要授予访问权的账户(账户 Z)的 12 位数账户 ID。
-
输入外部 ID 以便额外控制可代入角色的用户。有关更多信息,请参阅 IAM 用户指南中的如何在向第三方授予对 Amazon 资源的访问权时使用外部 ID。
-
选择 Next Step 以附加为此角色设置权限的策略。
-
在 Attach Policy 下,选择 AmazonS3ReadOnlyAccess 策略。
注意 默认情况下,AmazonS3ReadOnlyAccess 策略向您的账户中的所有 Amazon S3 存储桶授予检索和列出权限。
-
要向一个账户仅授予对其日志文件的访问权(方案 1),请参阅创建用于向自己的账户授予访问权限的访问策略。
-
要向账户授予对 Amazon S3 存储桶中所有日志文件的访问权(方案 2),请参阅 创建用于向第三方授予访问权限的访问策略。
-
选择 Next Step
-
审核角色信息。
注意 如果需要,您可在此时编辑角色名称,但如果您执行此操作,则将转至 Step 2: Select Role Type 页面,您必须在此页面上重新输入角色的信息。
选择 Create Role(创建角色)。角色创建过程完成后,您创建的角色将显示在角色列表中。