

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

# 配置 Amazon Rekognition Video
<a name="api-video-roles"></a>

要将 Amazon Rekognition Video API 用于所存储视频，您必须配置用户和 IAM 服务角色以访问您的 Amazon SNS 主题。您还必须为您的 Amazon SNS 主题订阅 Amazon SQS 队列。

**注意**  
如果使用这些说明来设置 [使用 Java 或 Python 分析存储在 Amazon S3 存储桶中的视频 (SDK)](video-analyzing-with-sqs.md) 示例，则无需执行步骤 3、4、5 和 6。此示例包括用于创建和配置 Amazon SNS 主题和 Amazon SQS 队列的代码。

本节中的示例通过使用向 Amazon Rekognition Video 提供对多个主题的访问权限的指令，创建新的 Amazon SNS 主题。如果您想要使用现有的 Amazon SNS 主题，请对步骤 3 使用[授予访问现有 Amazon SNS 主题的权限](#api-video-roles-single-topics)。<a name="configure-rekvid-procedure"></a>

**配置 Amazon Rekognition Video**

1. 设置 AWS 账户以访问亚马逊 Rekognition Video。有关更多信息，请参阅 [步骤 1：设置 AWS 账户并创建用户](setting-up.md)。

1. 安装和配置所需的 AWS SDK。有关更多信息，请参阅 [第 2 步：设置 AWS CLI 和 AWS SDKs](setup-awscli-sdk.md)。

1. 要运行本开发人员指南中的代码示例，请确保您选择的用户具有编程访问权限。请参阅[授予编程式访问权限](sdk-programmatic-access.md)了解更多信息。

   您的用户还需要至少以下权限：
   + 亚马逊SQSFull访问权限
   + AmazonRekognitionFullAccess
   + 亚马逊 3 FullAccess
   + 亚马逊SNSFull访问权限

   如果您使用 IAM Identity Center 进行身份验证，请将权限添加到角色的权限集中，否则将权限添加到您的 IAM 角色中。

1. 通过使用 [Amazon SNS 控制台](https://console.aws.amazon.com/sns/v2/home)[创建 Amazon SNS 主题](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)。在主题名称前面加上。*AmazonRekognition*记下主题的 Amazon 资源名称 (ARN)。确保该主题与您使用的 AWS 端点位于同一区域。

1. 使用 [Amazon SQS 控制台](https://console.aws.amazon.com/sqs/)[创建 Amazon SQS 标准队列](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html)。记录队列 ARN。

1. [为队列订阅主题](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-subscribe-queue-sns-topic.html)（您在步骤 3 中创建）。

1. [为向 Amazon SQS 队列发送消息的 Amazon SNS 主题授予权限](https://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html#SendMessageToSQS.sqs.permissions)。

1. 创建 IAM 服务角色来为 Amazon Rekognition Video 提供对 Amazon SNS 主题的访问权限。记下服务角色的 Amazon 资源名称 (ARN)。有关更多信息，请参阅 [提供对多个 Amazon SNS 主题的访问权限](#api-video-roles-all-topics)。

1. 为确保您的账户安全，您需要将 Rekognition 的访问范围限制为仅限于您正在使用的资源。这可以通过将信任策略附加到您的 IAM 服务角色来完成。有关如何执行此操作的信息，请参阅 [防止跨服务混淆代理](cross-service-confused-deputy-prevention.md)。

1. 向您在步骤 1 中创建的用户[添加以下内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#embed-inline-policy-console)：

   为该内联策略提供您选择的名称。

1. 如果您使用客户托管 AWS Key Management Service 密钥对 Amazon S3 存储桶中的视频进行加密，请向密钥[添加](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to-console-policy-view)权限，允许您在步骤 7 中创建的服务角色解密视频。服务角色至少需要权限才能执行 `kms:GenerateDataKey` 和 `kms:Decrypt` 操作。例如：

   ```
   {
       "Sid": "Decrypt only",
       "Effect": "Allow",
       "Principal": {
           "AWS": "arn:aws:iam::111122223333:user/user from step 1"
       },
       "Action": [
           "kms:Decrypt",
           "kms:GenerateDataKey"
       ],
       "Resource": "*"
   }
   ```

   有关更多信息，请参阅[我的 Amazon S3 存储桶使用自定义 AWS KMS 密钥进行默认加密。如何允许用户从存储桶下载并上传到存储桶？](https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-access-default-encryption/)以及[使用服务器端加密和存储在 AWS Key Management Service 中的 KMS 密钥 (SSE-KMS) 保护数据](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)。

1. 现在您就可以运行[使用 Java 或 Python 分析存储在 Amazon S3 存储桶中的视频 (SDK)](video-analyzing-with-sqs.md)和[使用分析视频 AWS Command Line Interface](video-cli-commands.md)中的示例了。

## 提供对多个 Amazon SNS 主题的访问权限
<a name="api-video-roles-all-topics"></a>

您可使用 IAM 服务角色为 Amazon Rekognition Video 提供对您创建的 Amazon SNS 主题的访问权限。IAM 提供了用于创建 Amazon Rekognition Video 服务角色的 *Rekognition* 使用案例。

您可以使用权限策略并在主题名称前加上——例如，，来授予亚马逊 Rekognition Video 访问多个亚马逊 SNS 主题`AmazonRekognitionServiceRole`的权限。*AmazonRekognition*`AmazonRekognitionMyTopicName`

**让 Amazon Rekognition Video 访问多个 Amazon SNS 主题**

1. [创建 IAM 服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html?icmpid=docs_iam_console)。使用以下信息创建 IAM 服务角色：

   1. 对于服务名称，选择 **Rekognition**。

   1. 对于服务角色使用案例，选择 **Rekognition**。您应该会看到列出的**AmazonRekognitionServiceRole**权限策略。 **AmazonRekognitionServiceRole**允许亚马逊 Rekognition Video 访问前缀为的亚马逊 SNS 主题。*AmazonRekognition*

   1. 为该服务角色指定您选择的名称。

1. 记下服务角色的 ARN。您需要它才能开始视频分析操作。

## 授予访问现有 Amazon SNS 主题的权限
<a name="api-video-roles-single-topics"></a>

您可以创建一个权限策略，允许 Amazon Rekognition Video 访问现有的 Amazon SNS 主题。

**让 Amazon Rekognition Video 访问现有 Amazon SNS 话题**

1. [ 使用 IAM JSON 策略编辑器创建新的权限策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)，然后使用以下策略。将 `topicarn` 替换为所需 Amazon SNS 主题的 Amazon 资源名称 (ARN)。

1. [创建 IAM 服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html?icmpid=docs_iam_console)，或者更新现有 IAM 服务角色。使用以下信息创建 IAM 服务角色：

   1. 对于服务名称，选择 **Rekognition**。

   1. 对于服务角色使用案例，选择 **Rekognition**。

   1. 附加您在步骤 1 中创建的权限策略。

1. 记下服务角色的 ARN。您需要它才能开始视频分析操作。