

# 用于跨账户传输的 IAM 角色
<a name="firehose-cross-account-delivery"></a>

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

**Topics**
+ [源账户角色](#firehose-source-account-role)
+ [目的地账户角色](#firehose-destination-account-role)

## 源账户角色
<a name="firehose-source-account-role"></a>

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

------
#### [ JSON ]

****  

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

------

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

------
#### [ JSON ]

****  

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

------

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

**创建源账户角色**

1. 打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在**创建策略**页面上，执行以下操作：

   1. 选择 **JSON**。

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

   1. 选择**下一步**。

   1. 输入您的策略名称以及可选的描述和标签，然后选择**创建策略**。

1. 在导航窗格中，选择**角色**。

1. 选择**创建角色**。

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

   ```
   "Principal": {
      "Service": "delivery.logs.amazonaws.com"
   },
   ```

1. 在 **Add permissions**（添加权限）页面上，选中您在此过程中先前创建的策略复选框，然后选择 **Next**（下一步）。

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

1. 选择**Create role（创建角色）**。

## 目的地账户角色
<a name="firehose-destination-account-role"></a>

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

------
#### [ JSON ]

****  

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

------

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

------
#### [ JSON ]

****  

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

------

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

**创建目的地账户角色**

1. 打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在**创建策略**页面上，执行以下操作：

   1. 选择 **JSON**。

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

   1. 选择**下一步**。

   1. 输入以 **AWSLogDeliveryFirehoseCrossAccountRole** 为开头的策略名称，然后选择 **Create policy**（创建策略）。

1. 在导航窗格中，选择**角色**。

1. 选择**创建角色**。

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

   ```
   "Principal": {
      "AWS": "arn:aws:iam::source-account:role/mySourceRole"
   },
   ```

1. 在 **Add permissions**（添加权限）页面上，选中您在此过程中先前创建的策略复选框，然后选择 **Next**（下一步）。

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

1. 选择**Create role（创建角色）**。