用于跨账户传输的 IAM 角色 - Amazon Virtual Private Cloud

用于跨账户传输的 IAM 角色

发布到 Amazon Data Firehose 时,您可以选择与要监控的资源位于同一账户(源账户)或不同账户(目的地账户)中的传输流。要启用跨账户将流日志传输到 Amazon Data Firehose,您必须在源账户中创建 IAM 角色,并在目的地账户中创建 IAM 角色。

源账户角色

在源账户中,创建授予以下权限的角色。在此示例中,角色的名称为 mySourceRole,但您也可以为该角色选择其他名称。最后一条语句允许目的地账户中的角色代入该角色。条件语句确保该角色仅传递给日志传输服务,并且仅在监控指定资源时传递。创建策略时,使用条件键 iam:AssociatedResourceARN 指定要监控的 VPC、网络接口或子网。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::source-account:role/mySourceRole", "Condition": { "StringEquals": { "iam:PassedToService": "delivery.logs.amazonaws.com" }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:ec2:region:source-account:vpc/vpc-00112233344556677" ] } } }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:GetLogDelivery" ], "Resource": "*" }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::destination-account:role/AWSLogDeliveryFirehoseCrossAccountRole" } ] }

确保该角色具有以下信任策略,允许日志传输服务代入该角色。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

使用以下步骤从源账户中创建角色。

创建源账户角色
  1. 打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择策略

  3. 选择创建策略

  4. 创建策略页面上,执行以下操作:

    1. 选择 JSON

    2. 将此窗口的内容替换为此部分开头的权限策略。

    3. 选择下一步

    4. 输入您的策略名称以及可选的描述和标签,然后选择创建策略

  5. 在导航窗格中,选择角色

  6. 选择 Create role(创建角色)。

  7. 对于 Trusted entity type(可信实体类型),选择 Custom trust policy(自定义信任策略)。对于 Custom trust policy(自定义信任策略),将 "Principal": {}, 替换为以下内容,以指定日志传输服务。选择下一步

    "Principal": { "Service": "delivery.logs.amazonaws.com" },
  8. Add permissions(添加权限)页面上,选中您在此过程中先前创建的策略复选框,然后选择 Next(下一步)。

  9. 输入您的角色的名称,并且可以选择提供描述。

  10. 选择Create role(创建角色)

目的地账户角色

在目的地账户中,创建名称以 AWSLogDeliveryFirehoseCrossAccountRole 开头的角色。该角色必须授予以下权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ], "Resource": "*" } ] }

确保该角色具有以下信任策略,允许您在源账户中创建的角色代入该角色。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account:role/mySourceRole" }, "Action": "sts:AssumeRole" } ] }

使用以下步骤从目的地账户中创建角色。

创建目的地账户角色
  1. 打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择策略

  3. 选择创建策略

  4. 创建策略页面上,执行以下操作:

    1. 选择 JSON

    2. 将此窗口的内容替换为此部分开头的权限策略。

    3. 选择下一步

    4. 输入以 AWSLogDeliveryFirehoseCrossAccountRole 为开头的策略名称,然后选择 Create policy(创建策略)。

  5. 在导航窗格中,选择角色

  6. 选择 Create role(创建角色)。

  7. 对于 Trusted entity type(可信实体类型),选择 Custom trust policy(自定义信任策略)。对于 Custom trust policy(自定义信任策略),将 "Principal": {}, 替换为以下内容,以指定源账户角色。选择下一步

    "Principal": { "AWS": "arn:aws:iam::source-account:role/mySourceRole" },
  8. Add permissions(添加权限)页面上,选中您在此过程中先前创建的策略复选框,然后选择 Next(下一步)。

  9. 输入您的角色的名称,并且可以选择提供描述。

  10. 选择Create role(创建角色)