

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

# 添加具有后端资源部署权限的服务角色
<a name="amplify-service-role"></a>

Amplify 需要使用前端部署后端资源的权限。可使用服务角色来实现此目的。服务角色是 AWS Identity and Access Management (IAM) 角色，它为 Amplify Hosting 提供代表您部署、创建和管理后端的权限。

创建需要 IAM 服务角色的新应用程序时，您可以允许 Amplify Hosting 自动为您创建服务角色，也可以指定您已创建的 IAM 角色。本节将介绍如何创建一个具有账户管理员权限，并显式允许直接访问 Amplify 应用程序部署、创建和管理后端所需的资源的 Amplify 服务角色。

## 在 IAM 控制台中创建 Amplify 服务角色
<a name="create-service-role"></a>

**创建服务角色**

1.  [打开 IAM 控制台](https://console.aws.amazon.com/iam/home?#/roles)并从左侧导航栏中选择**角色**，然后选择**创建角色**。

1. 在**选择可信实体**页面上，选择 **AWS 服务**。在**使用案例**下，选择 **Amplify - 后端部署**，然后选择**下一步**。

1. 在**添加权限**页面上，选择**下一步**。

1. 在**名称、查看和创建**页面中，对于**角色名称**，输入一个有意义的名称，例如 **AmplifyConsoleServiceRole-AmplifyRole**。

1. 接受所有默认值，然后选择**创建角色**。

1. 返回 Amplify 控制台，将该角色附加到您的应用程序。
   + 如果您正在部署新应用程序，请执行以下操作：

     1. 刷新服务角色列表。

     1. 选择您刚刚创建的角色。在这个例子中，它应该看起来像 **AmplifyConsoleServiceRole-AmplifyRole**。

     1. 选择**下一步**，然后按照步骤完成应用程序部署。
   + 如果您具备现有应用程序，请执行以下操作：

     1. 在导航窗格中，依次选择**应用程序设置**、**IAM 角色**。

     1. 在 **IAM 角色**页面的**服务角色**部分中，选择**编辑**。

     1. 在**服务角色**页面的**服务角色**列表中，选择您刚刚创建的角色。

     1. 选择**保存**。

1. Amplify 现在有权为您的应用程序部署后端资源。

## 编辑服务角色的信任策略，以防止混淆代理
<a name="confused-deputy-prevention"></a>

混淆代理问题是一个安全性问题，即不具有某操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。有关更多信息，请参阅 [防止跨服务混淆代理](cross-service-confused-deputy-prevention.md)。

目前，`Amplify-Backend Deployment` 服务角色的默认信任策略强制执行 `aws:SourceArn` 和 `aws:SourceAccount` 全局上下文条件键，以免出现混淆代理。但是，如果您之前曾在账户中创建过 `Amplify-Backend Deployment` 角色，就可以更新该角色的信任策略以添加这些条件，以免出现混淆代理。

使用以下示例来限制对账户中应用程序的访问。在示例中，将区域和应用程序 ID 替换为您自己的信息。

```
"Condition": {
      "ArnLike": {
        "aws:SourceArn": "arn:aws:amplify:us-east-1:123456789012:apps/*"
      },
      "StringEquals": {
        "aws:SourceAccount": "123456789012"
      }
    }
```

有关使用编辑角色信任策略的说明 AWS 管理控制台，请参阅 *IAM 用户指南*中的[修改角色（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html)。