

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

# 为 Amazon Chime SDK 消息传递中的数据流使用服务相关角色
<a name="stream-service-linked"></a>

以下部分说明如何管理数据流的服务相关角色。

**Topics**
+ [服务相关角色权限](#role-permissions)
+ [创建服务相关角色](#create-service-linked-role)
+ [编辑服务相关角色](#editing-roles)
+ [删除服务相关角色使用的资源](#cleaning-up)
+ [删除服务相关角色](#deleting-roles)

## 服务相关角色权限
<a name="role-permissions"></a>

Amazon Chime SDK 使用名为 **AWSServiceRoleForChimeSDKMessaging** 的服务相关角色。该角色授予访问由 Amazon Chime SDK 使用或托管的 AWS 服务和资源的权限，例如用于数据流的 Kinesis流。

**AWSServiceRoleForChimeSDKMessaging** 服务相关角色信任以下服务来代入角色：
+ messaging.chime.amazonaws.com

角色权限策略允许 Amazon Chime SDK 对指定资源完成以下操作：
+ 仅当使用 `kinesis.*.amazonaws.com` 发出请求时 `kms:GenerateDataKey`。
+ `kinesis:PutRecord`、`kinesis:PutRecords` 或者 `kinesis:DescribeStream` 仅在以下格式的流上显示：`arn:aws:kinesis:*:*:stream/chime-messaging-*`。

以下示例显示了该策略。

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

****  

```
{
    	"Version":"2012-10-17",		 	 	 
    	"Statement": [
    		{
    			"Effect": "Allow",
    			"Action": [
    				"kms:GenerateDataKey"
    			],
    			"Resource": "*",
    			"Condition": {
    				"StringLike": {
    					"kms:ViaService": [
    						"kinesis.*.amazonaws.com"
    					]
    				}
    			}
    		},
    		{
    			"Effect": "Allow",
    			"Action": [
    				"kinesis:PutRecord",
    				"kinesis:PutRecords",
    				"kinesis:DescribeStream"
    			],
    			"Resource": [
    				"arn:aws:kinesis:*:*:stream/chime-messaging-*"
    			]
    		}
    	]
    }
```

------

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

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

您无需手动创建服务关联角色。当您使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutMessagingStreamingConfigurations.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutMessagingStreamingConfigurations.html) API 创建数据流配置时，Amazon Chime SDK 会为您创建服务相关角色。

您也可以使用 IAM 控制台为 Amazon Chime SDK 使用案例创建服务相关角色。在 AWS CLI 或 AWS API 中，使用服务名称创建`messaging.chime.amazonaws.com`服务相关角色。有关更多信息，请参阅 *IAM 用户指南*中的[创建服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)。如果您已删除此角色，则可以重复此过程再次创建。

## 编辑服务相关角色
<a name="editing-roles"></a>

创建服务相关角色后，您只能编辑其描述，且使用 IAM 进行编辑。有关更多信息，请参阅 *IAM 用户指南*中的[编辑服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除服务相关角色使用的资源
<a name="cleaning-up"></a>

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

**注意**  
如果您试图删除 Amazon Chime SDK 正在使用的资源，则删除可能会失败。如果发生这种情况，请等待几分钟后重试。

**删除 AmazonChimeServiceChatStreamingAccess 角色使用的资源的步骤如下：**  
运行以下 CLI 命令关闭应用程序实例的数据流式传输：
+ `aws chime-sdk-messaging delete-messaging-streaming-configurations --app-instance-arn app_instance_arn`

此操作会删除您的应用程序实例的所有流配置。

## 删除服务相关角色
<a name="deleting-roles"></a>

如果不再使用某个需要服务相关角色的特征或服务，我们建议您删除该角色。否则，您将拥有一个未使用实体，而该实体未得到主动监控或维护。但是，您必须先删除服务相关角色使用的资源后，才能手动删除该角色。

您可以使用 IAM 控制台或 AWS API 删除**AmazonChimeServiceRoleForChimeSDKMessaging**服务相关角色。 AWS CLI有关更多信息，请参阅《IAM 用户指南》中的[删除服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。