View a markdown version of this page

操作方法 AWS CloudTrail 与 IAM 一起使用 - AWS CloudTrail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

操作方法 AWS CloudTrail 与 IAM 一起使用

在使用 IAM 管理访问权限之前 CloudTrail,请了解哪些 IAM 功能可供使用 CloudTrail。

您可以与之配合使用的 IAM 功能 AWS CloudTrail
IAM 功能 CloudTrail 支持

Identity-based 政策

Resource-based 政策

部分

策略操作

策略资源

策略条件键(特定于服务)

ACL

ABAC(策略中的标签)

临时凭证

转发访问会话(FAS)

服务角色

Service-linked 角色

要详细了解大多数 IAM 功能 CloudTrail 以及其他 AWS 服务的工作原理,请参阅 IAM 用户指南中的与 IAM 配合使用的AWS 服务。

Identity-based 的政策 CloudTrail

支持基于身份的策略:

Identity-based 策略是 JSON 权限策略文档,您可以将其附加到身份,例如 IAM 用户、用户组或角色。这些策略控制用户和角色可在何种条件下对哪些资源执行哪些操作。要了解如何创建基于身份的策略,请参阅《IAM 用户指南》中的使用客户管理型策略定义自定义 IAM 权限

通过使用 IAM 基于身份的策略,您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。要了解可在 JSON 策略中使用的所有元素,请参阅《IAM 用户指南》中的 IAM JSON 策略元素引用

Identity-based 的策略示例 CloudTrail

要查看 CloudTrail 基于身份的策略的示例,请参阅。Identity-based 的策略示例 AWS CloudTrail

Resource-based 内部的政策 CloudTrail

支持基于资源的策略:部分支持

Resource-based 策略是您附加到资源的 JSON 策略文档。基于资源的策略的示例包括 IAM 角色信任策略和 Amazon S3 存储桶策略。在支持基于资源的策略的服务中,服务管理员可以使用它们来控制对特定资源的访问。对于在其中附加策略的资源,策略定义指定主体可以对该资源执行哪些操作以及在什么条件下执行。您必须在基于资源的策略中指定主体。委托人可以包括账户、用户、角色、联合用户或 AWS 服务。

要启用跨账户访问,您可以将整个账户或其它账户中的 IAM 实体指定为基于资源的策略中的主体。有关更多信息,请参阅《IAM 用户指南》中的 IAM 中的跨账户资源访问

CloudTrail 支持以下类型的基于资源的策略:

  • Resource-based 有关用于 CloudTrail Lake 与外部事件源集成的频道的 AWS政策。用于该通道的基于资源的策略将定义哪些主体实体(账户、用户、角色和联合用户)可以针对该通道调用 PutAuditEvents,以将事件传送到目标事件数据存储。有关创建与 L CloudTrail ake 集成的更多信息,请参阅与外部的事件源创建集成 AWS

  • Resource-based 控制哪些委托人可以对您的事件数据存储执行操作的策略。您可以使用基于资源的策略来提供对事件数据存储的跨账户访问。

  • Resource-based 仪表板上的策略 CloudTrail 允许按照您在为仪表板设置刷新计划时定义的间隔刷新 CloudTrail Lake 仪表板。有关更多信息,请参阅 使用 CloudTrail 控制台为自定义仪表板设置刷新计划

示例

要查看 CloudTrail 基于资源的策略的示例,请参阅AWS CloudTrail 基于资源的策略示例

的政策行动 CloudTrail

支持策略操作:

管理员可以使用 AWS JSON 策略来指定谁有权访问哪些内容。也就是说,哪个主体可以对什么资源执行操作,以及在什么条件下执行。

JSON 策略的 Action 元素描述可用于在策略中允许或拒绝访问的操作。在策略中包含操作以授予执行关联操作的权限。

要查看 CloudTrail 操作列表,请参阅《服务授权参考》 AWS CloudTrail中定义的操作

正在进行的策略操作在操作之前 CloudTrail 使用以下前缀:

cloudtrail

例如,要授予某人使用 ListTags API 操作列出跟踪的标签的权限,您应将 cloudtrail:ListTags 操作纳入他们的策略中。策略语句必须包括 ActionNotAction 元素。 CloudTrail 定义了自己的一组操作,这些操作描述了可使用该服务执行的任务。

要在单个语句中指定多项操作,请使用逗号将它们隔开,如下所示:

"Action": [ "cloudtrail:AddTags", "cloudtrail:ListTags", "cloudtrail:RemoveTags

您也可以使用通配符(*)指定多个操作。例如,要指定以单词 Get 开头的所有操作,包括以下操作:

"Action": "cloudtrail:Get*"

的政策资源 CloudTrail

支持策略资源:

管理员可以使用 AWS JSON 策略来指定谁有权访问哪些内容。也就是说,哪个主体可以对什么资源执行操作,以及在什么条件下执行。

Resource JSON 策略元素指定要向其应用操作的一个或多个对象。作为最佳实践,请使用其 Amazon 资源名称(ARN)指定资源。对于不支持资源级权限的操作,请使用通配符 (*) 指示语句应用于所有资源。

"Resource": "*"

要查看 CloudTrail 资源类型及其 ARN 的列表,请参阅服务授权参考 AWS CloudTrail中的定义资源。要了解您可以在哪些操作中指定每个资源的 ARN,请参阅 AWS CloudTrail定义的操作

在中 CloudTrail,有四种资源类型:跟踪、事件数据存储、仪表板和频道。每种资源均有相关联的唯一 Amazon 资源名称(ARN)。在策略中,您可以使用 ARN 来标识该策略适用的资源。 CloudTrail 目前不支持其他资源类型,这些资源类型有时被称为子资源。

CloudTrail 跟踪资源具有以下 ARN:

arn:${Partition}:cloudtrail:${Region}:${Account}:trail/{TrailName}

CloudTrail 事件数据存储资源具有以下 ARN:

arn:${Partition}:cloudtrail:${Region}:${Account}:eventdatastore/{EventDataStoreId}

CloudTrail 仪表板资源具有以下 ARN:

arn:${Partition}:cloudtrail:${Region}:${Account}:dashboard/{DashboardName}

该 CloudTrail 频道资源具有以下 ARN:

arn:${Partition}:cloudtrail:${Region}:${Account}:channel/{ChannelId}

有关 ARN 格式的更多信息,请参阅亚马逊资源名称 (ARN) 和 AWS 服务命名空间。

例如,对于 AWS 账户 带有 ID 的123456789012,要在语句中指定My-Trail存在于美国东部(俄亥俄州)地区的跟踪,请使用以下 ARN:

"Resource": "arn:aws:cloudtrail:us-east-2:123456789012:trail/My-Trail"

要在其中指定属于特定账户的所有跟踪 AWS 区域,请使用通配符 (*):

"Resource": "arn:aws:cloudtrail:us-east-2:123456789012:trail/*"

某些 CloudTrail 操作(例如用于创建资源的操作)无法在特定资源上执行。在这些情况下,您必须使用通配符(*)。

"Resource": "*"

许多 CloudTrail API 操作涉及多个资源。例如,CreateTrail 需要一个 Amazon S3 存储桶来存储日志文件,因此用户必须拥有写入存储桶的权限。要在单个语句中指定多个资源,请使用逗号分隔 ARN。

"Resource": [ "resource1", "resource2"

CloudTrail 的策略条件键

支持特定于服务的策略条件键:

管理员可以使用 AWS JSON 策略来指定谁有权访问哪些内容。也就是说,哪个主体可以对什么资源执行操作,以及在什么条件下执行。

Condition 元素根据定义的条件指定语句何时执行。您可以创建使用条件运算符(例如,等于或小于)的条件表达式,以使策略中的条件与请求中的值相匹配。要查看所有 AWS 全局条件密钥,请参阅 IAM 用户指南中的AWS 全局条件上下文密钥

CloudTrail 没有定义自己的条件键,但它支持使用一些全局条件键。要查看所有 AWS 全局条件密钥,请参阅 IAM 用户指南中的AWS 全局条件上下文密钥

要查看 CloudTrail 条件密钥列表,请参阅服务授权参考 AWS CloudTrail中的条件密钥。要了解可以将条件键与哪些操作和资源一起使用,请参阅操作定义者 AWS CloudTrail

ACL 已加入 CloudTrail

支持 ACL:

访问控制列表(ACL)控制哪些主体(账户成员、用户或角色)有权访问资源。ACL 与基于资源的策略类似,但它们不使用 JSON 策略文档格式。

ABAC 和 CloudTrail

支持 ABAC(策略中的标签):

Attribute-based 访问控制 (ABAC) 是一种授权策略,它根据称为标签的属性定义权限。您可以将标签附加到 IAM 实体和 AWS 资源,然后设计 ABAC 策略,允许在委托人的标签与资源上的标签匹配时进行操作。

要基于标签控制访问,您需要使用 aws:ResourceTag/key-nameaws:RequestTag/key-nameaws:TagKeys 条件键在策略的条件元素中提供标签信息。

如果某个服务对于每种资源类型都支持所有这三个条件键,则对于该服务,该值为。如果某个服务仅对于部分资源类型支持所有这三个条件键,则该值为部分

有关 ABAC 的更多信息,请参阅《IAM 用户指南》中的使用 ABAC 授权定义权限。要查看设置 ABAC 步骤的教程,请参阅《IAM 用户指南》中的使用基于属性的访问权限控制(ABAC)

您可以将标签附加到 CloudTrail 资源或在向的请求中传递标签 CloudTrail。有关标记 CloudTrail 资源的更多信息,请参阅使用 CloudTrail 控制台创建跟踪和。使用创建、更新和管理跟踪 AWS CLI

使用临时证书 CloudTrail

支持临时凭证:

临时证书提供对 AWS 资源的短期访问权限,并在您使用联合或切换角色时自动创建。 AWS 建议您动态生成临时证书,而不是使用长期访问密钥。有关更多信息,请参阅《IAM 用户指南》中的 IAM 中的临时安全凭证使用 IAM 的。AWS 服务

的转发访问会话 CloudTrail

支持转发访问会话(FAS):

前向访问会话 (FAS) 使用主体调用的权限 AWS 服务,以及 AWS 服务 向下游服务发出请求的请求。有关发出 FAS 请求时的策略详情,请参阅转发访问会话

的服务角色 CloudTrail

支持服务角色:

服务角色是由一项服务担任、代表您执行操作的 IAM 角色。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息,请参阅《IAM 用户指南》中的创建向 AWS 服务委派权限的角色

警告

更改服务角色的权限可能会中断 CloudTrail 功能。仅在 CloudTrail 提供指导时才编辑服务角色。

Service-linked 的角色 CloudTrail

支持服务关联角色:

服务相关角色是一种链接到的服务角色。 AWS 服务该服务可以代入代表您执行操作的角色。 Service-linked 角色显示在您的中 AWS 账户 且归服务所有。IAM 管理员可以查看但不能编辑服务关联角色的权限。

CloudTrail 支持与 AWS Organizations集成的服务相关角色。创建组织跟踪或事件数据存储需要用到此角色。组织跟踪和事件数据存储组织 AWS 账户 中所有人的日志事件。有关创建或管理 CloudTrail服务相关角色的更多信息,请参阅将服务相关角色用于 CloudTrail