Amazon Polly 基于身份的策略示例 - Amazon Polly
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

Amazon Polly 基于身份的策略示例

默认情况下,IAM 用户和角色没有创建或修改 Amazon Polly 资源的权限。它们还无法使用 AWS 管理控制台、AWS CLI 或 AWS API 执行任务。IAM 管理员必须创建 IAM 策略,为用户和角色授予权限,以便对他们所需的指定资源执行特定的 API 操作。然后,管理员必须将这些策略附加到需要这些权限的 IAM 用户或组。

要了解如何使用这些示例 JSON 策略文档创建 IAM 基于身份的策略,请参阅 IAM 用户指南 中的 JSON 选项卡上的创建策略

策略最佳实践

基于身份的策略非常强大。它们确定某个人是否可以创建、访问或删除您账户中的 Amazon Polly 资源。这些操作可能会使 AWS 账户产生成本。创建或编辑基于身份的策略时,请遵循以下准则和建议:

  • 开始使用 AWS 托管策略 – 要快速开始使用 Amazon Polly,请使用 AWS 托管策略,为您的员工授予他们所需的权限。这些策略已在您的账户中提供,并由 AWS 维护和更新。有关更多信息,请参阅 IAM 用户指南 中的利用 AWS 托管策略开始使用权限

  • 授予最低权限 – 创建自定义策略时,仅授予执行任务所需的许可。最开始只授予最低权限,然后根据需要授予其他权限。这样做比起一开始就授予过于宽松的权限而后再尝试收紧权限来说更为安全。有关更多信息,请参阅 IAM 用户指南 中的授予最小权限

  • 为敏感操作启用 MFA – 为增强安全性,要求 IAM 用户使用多重身份验证 (MFA) 来访问敏感资源或 API 操作。有关更多信息,请参阅 IAM 用户指南 中的在 AWS 中使用多重身份验证 (MFA)

  • 使用策略条件来增强安全性 – 在切实可行的范围内,定义基于身份的策略在哪些情况下允许访问资源。例如,您可编写条件来指定请求必须来自允许的 IP 地址范围。您也可以编写条件,以便仅允许指定日期或时间范围内的请求,或者要求使用 SSL 或 MFA。有关更多信息,请参阅 IAM 用户指南 中的 IAM JSON 策略元素:Condition

使用 Amazon Polly 控制台

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

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

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

如要使用 Amazon Polly 控制台,请授予对所有 Amazon Polly API 的权限。不需要额外的权限。要获取完整的控制台功能,您可以使用以下策略:

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

允许用户查看他们自己的权限

此示例显示您可以如何创建策略,以便允许 IAM 用户查看附加到其用户身份的内联和托管策略。此策略包括在控制台上完成此操作或者以编程方式使用 AWS CLI 或 AWS API 所需的权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws-cn:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "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 授予权限。

注意

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

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

在您注册后 (请参阅 Step 1.1: Sign up for AWS),创建管理员用户来管理您的账户,包括创建用户和管理用户权限。

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

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

示例 2:允许除 DeleteLexicon 外的所有 Amazon 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" } ] }