

AWS Application Discovery Service 不再向新客户开放。或者 AWS Transform ，使用提供类似功能的。有关更多信息，请参阅 App [AWS lication Discovery Service 可用性变更](https://docs.aws.amazon.com/application-discovery/latest/userguide/application-discovery-service-availability-change.html)。

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

# 为 Application Discovery Service 使用服务相关角色
<a name="using-service-linked-roles"></a>

AWS Application Discovery Service 使用 AWS Identity and Access Management (IAM) [服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服务相关角色是一种独特的 IAM 角色，直接链接到 Application Discovery Service。服务相关角色由 Application Discovery Service Service 预定义，包括该服务代表您调用其他 AWS 服务所需的所有权限。

服务相关角色使设置 Application Discovery Service 变得更加容易，因为您不必手动添加必要的权限。Application Discovery Service 定义了其服务相关角色的权限，除非另有定义，否则只有应用程序发现服务才能担任其角色。定义的权限包括信任策略和权限策略，以及不能附加到任何其他 IAM 实体的权限策略。

只有在首先删除相关资源后，您才能删除服务关联角色。这可以保护您的 Application Discovery Service 资源，因为您不会无意中删除访问这些资源的权限。

**Topics**
+ [Application Discovery Service 的服务相关角色权限](service-linked-role-permissions.md)
+ [为 Application Discovery Service 创建服务相关角色](create-service-linked-role.md)
+ [删除 Application Discovery Service 的服务相关角色](delete-service-linked-role.md)

有关支持服务相关角色的其他服务的信息，请参阅[使用 IAM 的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)并查找**服务相关角色**列中显示为**是**的服务。选择**是**和链接，查看该服务的服务关联角色文档。

# Application Discovery Service 的服务相关角色权限
<a name="service-linked-role-permissions"></a>

Application Discovery Service 使用名为的 AWS 服务相关角色 **AWSServiceRoleForApplicationDiscoveryServiceContinuousExport**— 允许访问所使用或管理的 AWS Application Discovery Service服务和资源。

 AWSServiceRoleForApplicationDiscoveryServiceContinuousExport 服务相关角色信任以下服务来代入该角色：
+ `continuousexport.discovery.amazonaws.com`

角色权限策略允许 Application Discovery Service 完成以下操作：

glue  
 `CreateDatabase`   
 `UpdateDatabase`   
 `CreateTable`   
 `UpdateTable` 

Firehose  
 `CreateDeliveryStream`   
 `DeleteDeliveryStream`   
 `DescribeDeliveryStream`   
 `PutRecord`   
 `PutRecordBatch`   
 `UpdateDestination` 

S3  
 `CreateBucket`   
 `ListBucket`   
 `GetObject` 

logs  
 `CreateLogGroup`   
 `CreateLogStream`   
 `PutRetentionPolicy` 

IAM  
 `PassRole` 

这是显示上述操作所适用资源的完整策略：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "glue:CreateDatabase",
                "glue:UpdateDatabase",
                "glue:CreateTable",
                "glue:UpdateTable",
                "firehose:CreateDeliveryStream",
                "firehose:DescribeDeliveryStream",
                "logs:CreateLogGroup"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "firehose:DeleteDeliveryStream",
                "firehose:PutRecord",
                "firehose:PutRecordBatch",
                "firehose:UpdateDestination"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:firehose:*:*:deliverystream/aws-application-discovery-service*"
        },
        {
            "Action": [
                "s3:CreateBucket",
                "s3:ListBucket",
                "s3:PutBucketLogging",
                "s3:PutEncryptionConfiguration"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::aws-application-discovery-service*"
        },
        {
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::aws-application-discovery-service*/*"
        },
        {
            "Action": [
                "logs:CreateLogStream",
                "logs:PutRetentionPolicy"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:logs:*:*:log-group:/aws/application-discovery-service/firehose*"
        },
        {
            "Action": [
                "iam:PassRole"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:role/AWSApplicationDiscoveryServiceFirehose",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "firehose.amazonaws.com"
                }
            }
        },
        {
            "Action": [
                "iam:PassRole"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:role/service-role/AWSApplicationDiscoveryServiceFirehose",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "firehose.amazonaws.com"
                }
            }
        }
    ]
}
```

------

您必须配置权限，允许 IAM 实体（如用户、组或角色）创建、编辑或删除服务关联角色。有关更多信息，请参阅《IAM 用户指南》**中的[服务关联角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

# 为 Application Discovery Service 创建服务相关角色
<a name="create-service-linked-role"></a>

您无需手动创建服务关联角色。当 a) 选择 “开始数据收集” 后确认数据收集器页面显示的对话框中的选项，或者单击标有 “Athena 中的数据探索” 的滑块，或 b) 使用 CLI 调用 API 时，隐式启用 “持续导出” 时， AWSServiceRoleForApplicationDiscoveryServiceContinuousExport 服务相关角色将自动创建。 StartContinuousExport AWS 

**重要**  
如果您在其他使用此角色支持的功能的服务中完成某个操作，此服务关联角色可以出现在您的账户中。要了解更多信息，请参阅[我的 IAM 账户中的新角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

## 通过 Migration Hub 控制台创建服务相关角色
<a name="create-service-linked-role-service-console"></a>

您可以使用 Migration Hub 控制台创建 AWSServiceRoleForApplicationDiscoveryServiceContinuousExport 服务相关角色。

**创建服务相关角色（控制台）**

1. 在导航窗格中，选择 **Data Collectors (数据收集器)**。

1. 选择 **Agents (代理)** 选项卡。

1. 将 “**Athena 中的数据浏**览” 滑块切换到 “打开” 位置。

1. 在上一步生成的对话框中，单击同意关联成本的复选框并选择 **Continue (继续)** 或 **Enable (启用)**。

## 从中创建服务相关角色 AWS CLI
<a name="create-service-linked-role-service-cli"></a>

您可以使用中的 Application Discovery Service 命令 AWS Command Line Interface 来创建 AWSServiceRoleForApplicationDiscoveryServiceContinuousExport服务相关角色。

当您从启动 “连续导出” 时，系统会自动创建此服务相关角色 AWS CLI （ AWS CLI 必须先在您的环境中安装该角色）。

**要创建服务相关角色 (CLI)，请从中启动 “持续导出” AWS CLI**

1. 安装 AWS CLI 适用于您的操作系统（Linux、macOS 或 Windows）的。有关说明，请参阅[《AWS Command Line Interface 用户指南》](https://docs.aws.amazon.com/cli/latest/userguide/)。

1. 打开命令提示符 (Windows) 或终端 (Linux 或 macOS)。

   1. 键入 `aws configure` 并按下 Enter。

   1. 输入您的 AWS 访问密钥 ID 和 AWS 私有访问密钥。

   1. 对于默认区域名称，输入 `us-west-2`。

   1. 对于默认输出格式，输入 `text`。

1. 键入以下命令：

   ```
   aws discovery start-continuous-export
   ```

您还可以使用 IAM 控制台通过 “**发现服务-持续导出” 用例创建服务**相关角色。在 IAM CLI 或 IAM API 中，用 `continuousexport.discovery.amazonaws.com` 服务名称创建一个服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)。如果您删除了此服务相关角色，可以使用同样的过程再次创建角色。

# 删除 Application Discovery Service 的服务相关角色
<a name="delete-service-linked-role"></a>

如果不再需要使用某个需要服务关联角色的功能或服务，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是，您必须先清除您的服务相关角色，然后才能手动删除它。

## 清除 服务相关角色
<a name="service-linked-role-review-before-delete"></a>

必须先删除服务相关角色使用的所有资源，然后才能使用 IAM 删除该角色。

**注意**  
如果您尝试删除资源时 Application Discovery Service 正在使用该角色，则删除可能会失败。如果发生这种情况，请等待几分钟后重试。

**从 Migration Hub 控制台中删除 AWSServiceRoleForApplicationDiscoveryServiceContinuousExport 服务相关角色使用的 Application Discovery Service 资源**

1. 在导航窗格中，选择 **Data Collectors (数据收集器)**。

1. 选择 **Agents (代理)** 选项卡。

1. 将 “**Athena 中的数据浏**览” 滑块切换到 “关闭” 位置。

**从中删除 AWSServiceRoleForApplicationDiscoveryServiceContinuousExport 服务相关角色使用的 Application Discovery Service 资源 AWS CLI**

1. 安装 AWS CLI 适用于您的操作系统（Linux、macOS 或 Windows）的。有关说明，请参阅[《AWS Command Line Interface 用户指南》](https://docs.aws.amazon.com/cli/latest/userguide/)。

1. 打开命令提示符 (Windows) 或终端 (Linux 或 macOS)。

   1. 键入 `aws configure` 并按下 Enter。

   1. 输入您的 AWS 访问密钥 ID 和 AWS 私有访问密钥。

   1. 对于默认区域名称，输入 `us-west-2`。

   1. 对于默认输出格式，输入 `text`。

1. 键入以下命令：

   ```
   aws discovery stop-continuous-export --export-id <export ID>
   ```

   1. 如果不知道要停止的连续导出的导出 ID，请输入以下命令查看连续导出的 ID：

     ```
     aws discovery describe-continuous-exports
     ```

1. 输入以下命令，通过验证连续导出的返回状态为 “非活动状态” 来确保其已停止：

   ```
   aws discovery describe-continuous-export
   ```

## 手动删除服务相关角色
<a name="slr-manual-delete"></a>

您可以使用 IAM 控制台、IAM CLI 或 IAM API 删除 AWSServiceRoleForApplicationDiscoveryServiceContinuousExport 服务相关角色。如果您不再需要使用需要此服务相关角色的 Discovery Service-持续导出功能，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。有关更多信息，请参见《IAM 用户指南》**中的[删除服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

**注意**  
必须先清除服务相关角色，然后才能将其删除。请参阅[清除 服务相关角色](#service-linked-role-review-before-delete)。

 

 