Amazon Polly
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

为 Amazon Polly 使用基于身份的策略(IAM 策略)

本主题提供了基于身份的策略的示例,这些示例展示了账户管理员如何将权限策略附加到 IAM 身份(即用户、组和角色),从而授予对 Amazon Polly 资源执行操作的权限。

重要

我们建议您首先阅读以下介绍性主题,这些主题说明了可用于管理 Amazon Polly 资源访问的基本概念和选项。有关更多信息,请参阅 管理您的 Amazon Polly 资源的访问权限概述

下面介绍权限策略示例。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowGet-Delete-ListActions", "Effect": "Allow", "Action": [ "polly:GetLexicon", "polly:DeleteLexicon", "polly:ListLexicons"], "Resource": "*" } ], "Statement": [{ "Sid": "NoOverrideMyLexicons", "Effect": "Deny", "Action": [ "polly:PutLexicon"], "Resource": "arn:aws:polly:us-east-2:123456789012:lexicon/my*" } ] }

该策略包含两条语句:

  • 第一条语句在任意词典上为三个 Polly 操作 polly:GetLexiconpolly:DeleteLexiconpolly:ListLexicons 授予权限。使用通配符 (*) 作为资源,为这个账户拥有的所有区域和词典提供这些操作的通用权限。

  • 第二条语句显式拒绝一个 Polly 操作 (polly:PutLexicon) 的权限。显示为资源的 ARN 专门将此权限应用到区域 us-east-2 中所有以字母“my”开头的词典。

有关显示所有 Amazon Polly API 操作及其适用资源的表,请参阅 Amazon Polly API 权限:操作、权限和资源参考

使用 Amazon Polly 控制台所需要的权限

用户若要能够使用 Amazon Polly 控制台,则必须拥有一组最低的权限来允许用户在自己的 AWS 账户中描述 Amazon Polly 资源。

如果创建了比必需的最低权限更为严格的 IAM 策略,对于附加了该 IAM 策略的用户,控制台将无法按预期正常运行。

对于只需要调用 AWS CLI 或 Amazon Polly API 的用户,您无需为其提供最低控制台权限。

如要使用 Amazon Polly 控制台,您需要授予对所有 Amazon Polly API 的权限。不需要额外的权限。以下权限策略是使用 Amazon Polly 控制台所需的全部权限策略。

} "Version": "2012-10-17", "Statement": [{ "Sid": "Console-AllowAllPollyActions", "Effect": "Allow", "Action": [ "polly:*"], "Resource": "*" } ] }

适用于 Amazon Polly 的 AWS 托管(预定义)策略

AWS 通过提供由 AWS 创建和管理的独立 IAM 策略来解决许多常用案例。这些 AWS 托管策略可针对常用案例授予必要的权限,使您免去调查所需权限的工作。有关更多信息,请参阅 IAM 用户指南 中的 AWS 托管策略

以下 AWS 托管策略(您可以将它们挂载到自己账户中的用户)是特定于 Amazon Polly 的:

  • AmazonPollyReadOnlyAccess – 授予对资源的只读访问权限,允许列出词典、获取词典、列出可用的语音以及合成语音(包括将词典应用到合成的语音)。

  • AmazonPollyFullAccess – 授予对资源以及所有受支持操作的完全访问权限。

注意

登录 IAM 控制台后搜索特定策略,可以查看这些权限策略。

此外,您还可以创建自己的自定义 IAM 策略,以授予 Amazon Polly 操作和资源的相关权限。您可以将这些自定义策略附加到需要这些权限的 IAM 用户或组。

客户托管策略示例

本节的用户策略示例介绍如何授予各 Amazon Polly 操作的权限。当您使用 AWS 开发工具包或 AWS CLI 时,可以使用这些策略。当您使用控制台时,您需要向所有 Amazon Polly API 授予权限。这在 使用 Amazon Polly 控制台所需要的权限 中进行了讨论。

注意

所有示例都使用 us-east-2 区域和虚构的账户 ID。

示例 1:允许所有 Amazon Polly 操作

在您注册后 (请参阅 步骤 1.1:注册 AWS),您可以创建管理员用户来管理您的帐户,包括创建用户和管理用户权限。

您可以选择创建具有所有 Amazon Polly 操作权限的用户(将该用户视为特定于服务的管理员),以便使用 Amazon Polly。您可以将以下权限策略附加到该用户。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowAllPollyActions", "Effect": "Allow", "Action": [ "polly:*"], "Resource": "*" } ] }

示例 2:允许除 DeleteLexicon 外的所有 Polly 操作

以下权限策略用于授予用户执行所有操作 (DeleteLexicon 除外)的用户权限,以及在所有区域中删除显式拒绝的权限。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowAllActions-DenyDelete", "Effect": "Allow", "Action": [ "polly:DescribeVoices", "polly:GetLexicon", "polly:PutLexicon", "polly:SynthesizeSpeech", "polly:ListLexicons"], "Resource": "*" } { "Sid": "DenyDeleteLexicon", "Effect": "Deny", "Action": [ "polly:DeleteLexicon"], "Resource": "*" } ] }

示例 3:允许 DeleteLexicon

以下权限策略用于授予删除任何词典用户的权限,无论其位于哪个项目或区域中。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowDeleteLexicon", "Effect": "Allow", "Action": [ "polly:DeleteLexicon"], "Resource": "*" } ] }

示例 4:允许在指定区域中删除词典

以下权限策略授予用户删除您位于单个区域 (在本例中为 us-east-2)任何项目中的任何词典的权限。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowDeleteSpecifiedRegion", "Effect": "Allow", "Action": [ "polly:DeleteLexicon"], "Resource": "arn:aws:polly:us-east-2:123456789012:lexicon/*" } ] }

示例 5:允许对指定词典执行 DeleteLexicon

以下权限策略授予用户删除您在特定区域 (在本例中为us-east-2) 中拥有的特定词典 (在本例中为 myLexicon) 的权限。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowDeleteForSpecifiedLexicon", "Effect": "Allow", "Action": [ "polly:DeleteLexicon"], "Resource": "arn:aws:polly:us-east-2:123456789012:lexicon/myLexicon" } ] }