View a markdown version of this page

第 3 步:跨账户目标的 Add/validate IAM 权限 - 亚马逊 CloudWatch 日志

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

第 3 步:跨账户目标的 Add/validate IAM 权限

根据 AWS 跨账户策略评估逻辑,要访问任何跨账户资源(例如用作订阅过滤器目标的 Kinesis 或 Firehose 直播),您必须在发送账户中拥有基于身份的策略,该策略提供对跨账户目标资源的明确访问权限。有关策略评估逻辑的更多信息,请参阅 Cross-account 策略评估逻辑。

您可以将基于身份的策略附加到用于创建订阅筛选条件的 IAM 角色或 IAM 用户。此策略必须位于发送账户中。如果您使用管理员角色创建订阅筛选条件,则可以跳过此步骤继续前进至 步骤 4:创建订阅筛选条件。

添加或验证跨账户所需的 IAM 权限
  1. 输入以下命令以检查使用哪个 IAM 角色或 IAM 用户来运行 AWS 日志命令。

    aws sts get-caller-identity

    该命令返回的输出类似于下方内容:

    { "UserId": "User ID", "Account": "sending account id", "Arn": "arn:aws:sending account id:role/user:RoleName/UserName" }

    记下由RoleName或表示的值UserName。

  2. 登录发送账户,使用您在步骤 1 AWS 管理控制台 中输入的命令的输出中返回的 IAM 角色或 IAM 用户搜索附加的策略。

  3. 验证附加到该角色或用户的策略是否提供在跨账户目标资源上调用 logs:PutSubscriptionFilter 的明确权限。

    以下策略仅提供在单个 AWS 账户、账户中对任何目标资源创建订阅筛选器的权限999999999999:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSubscriptionFiltersOnAnyResourceInOneSpecificAccount", "Effect": "Allow", "Action": "logs:PutSubscriptionFilter", "Resource": [ "arn:aws:logs:*:*:log-group:*", "arn:aws:logs:*:123456789012:destination:*" ] } ] }

    以下策略仅提供在单个 AWS 账户、账户sampleDestination中命名的特定目标资源上创建订阅筛选器的权限123456789012:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSubscriptionFiltersOnSpecificResource", "Effect": "Allow", "Action": "logs:PutSubscriptionFilter", "Resource": [ "arn:aws:logs:*:*:log-group:*", "arn:aws:logs:*:123456789012:destination:amzn-s3-demo-bucket" ] } ] }