

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

# Amazon Lex V2 基于身份的策略示例
<a name="security_iam_id-based-policy-examples"></a>

默认情况下，用户和角色没有创建或修改 Amazon Lex V2 资源的权限。要授予用户对所需资源执行操作的权限，IAM 管理员可以创建 IAM 策略。

要了解如何使用这些示例 JSON 策略文档创建基于 IAM 身份的策略，请参阅《IAM 用户指南》**中的[创建 IAM 策略（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)。

有关 Amazon Lex V2 定义的操作和资源类型（包括每种资源类型的格式）的详细信息，请参阅《*服务授权*参考》中的 [Amazon Lex V2 的操作、资源和条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.html)。 ARNs 

**Topics**
+ [策略最佳实践](#security_iam_service-with-iam-policy-best-practices)
+ [使用 Amazon Lex V2 控制台](#security_iam_id-based-policy-examples-console)
+ [允许用户为机器人添加功能](#security_iam-bot-role)
+ [允许用户为机器人添加频道](#security_iam-channel-role)
+ [允许用户创建和更新机器人](#security_iam-bot-create-update)
+ [允许用户使用自动聊天机器人设计器](#security_iam-bot-designer)
+ [允许用户使用密 AWS KMS 钥加密和解密文件](#security_iam-bot-key)
+ [允许用户删除机器人](#security_iam-bot-delete)
+ [允许用户与机器人进行对话](#security_iam-bot-conversation)
+ [允许特定用户管理基于资源的策略](#security_iam_id-based-policy-examples-allow-resource)
+ [允许用户导出机器人和机器人区域设置](#security_iam_id-based-policy-examples-export)
+ [允许用户导出自定义词汇表](#security_iam_id-based-policy-examples-import-vocab)
+ [允许用户导入机器人和机器人区域设置](#security_iam_id-based-policy-examples-import)
+ [允许用户导入自定义词汇表](#secruity_iam_id-based-policy-examples-import-vocab)
+ [允许用户将机器人从 Amazon Lex 迁移到 Amazon Lex V2](#security_iam_id-based-policy-examples-migrate)
+ [允许用户查看他们自己的权限](#security_iam_id-based-policy-examples-view-own-permissions)
+ [允许用户在 Amazon Lex V2 中使用可视化对话生成器绘制对话流程](#security_iam_allow-draw-conversation-flow)
+ [允许用户创建和查看机器人副本，但不允许将其删除](#security_iam_id-based-policy-examples-gr-permissions)

## 策略最佳实践
<a name="security_iam_service-with-iam-policy-best-practices"></a>

基于身份的策略可确定相关用户能否创建、访问或删除您账户中的 Amazon Lex V2 资源。这些操作可能会使 AWS 账户产生成本。创建或编辑基于身份的策略时，请遵循以下指南和建议：
+ **开始使用 AWS 托管策略并转向最低权限权限** — 要开始向您的用户和工作负载授予权限，请使用 AW *S 托管策略*为许多常见用例授予权限。它们在你的版本中可用 AWS 账户。我们建议您通过定义针对您的用例的 AWS 客户托管策略来进一步减少权限。有关更多信息，请参阅 I [A *M 用户指南*中的 AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)[或 AWS 工作职能](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)托管策略。
+ **应用最低权限**：在使用 IAM 策略设置权限时，请仅授予执行任务所需的权限。为此，您可以定义在特定条件下可以对特定资源执行的操作，也称为*最低权限许可*。有关使用 IAM 应用权限的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ **使用 IAM 策略中的条件进一步限制访问权限**：您可以向策略添加条件来限制对操作和资源的访问。例如，您可以编写策略条件来指定必须使用 SSL 发送所有请求。如果服务操作是通过特定的方式使用的，则也可以使用条件来授予对服务操作的访问权限 AWS 服务，例如 CloudFormation。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **使用 IAM Access Analyzer 验证您的 IAM 策略，以确保权限的安全性和功能性**：IAM Access Analyzer 会验证新策略和现有策略，以确保策略符合 IAM 策略语言（JSON）和 IAM 最佳实践。IAM Access Analyzer 提供 100 多项策略检查和可操作的建议，以帮助您制定安全且功能性强的策略。有关更多信息，请参阅《IAM 用户指南》**中的[使用 IAM Access Analyzer 验证策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **需要多重身份验证 (MFA**)-如果 AWS 账户您的场景需要 IAM 用户或根用户，请启用 MFA 以提高安全性。若要在调用 API 操作时需要 MFA，请将 MFA 条件添加到您的策略中。有关更多信息，请参阅《IAM 用户指南》**中的[使用 MFA 保护 API 访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

有关 IAM 中的最佳实操的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 使用 Amazon Lex V2 控制台
<a name="security_iam_id-based-policy-examples-console"></a>

要访问 Amazon Lex V2 控制台，您必须具有一组最低的权限。这些权限必须允许您在中列出和查看有关 Amazon Lex V2 资源的详细信息。 AWS 账户如果创建比必需的最低权限更为严格的基于身份的策略，对于附加了该策略的实体（用户或角色），控制台将无法按预期正常运行。

对于仅调用 Amazon CLI 或 Amazon API 的用户，您不需要允许最低控制台权限。相反，只允许访问与其尝试执行的 API 操作相匹配的操作。

为确保用户和角色仍可使用 Amazon Lex V2 控制台，用户需要拥有控制台的访问权限。有关创建具有控制台访问权限的用户的更多信息，请参阅 [IAM 用户指南中的在您的 AWS 账户中创](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html)*建 IAM 用户*。

## 允许用户为机器人添加功能
<a name="security_iam-bot-role"></a>

此示例中的策略可允许 IAM 用户为 Amazon Lex V2 机器人添加 Amazon Comprehend、情绪分析和 Amazon Kendra 查询权限。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Id1",
            "Effect": "Allow",
            "Action": "iam:PutRolePolicy",
            "Resource": "arn:aws:iam::*:role/aws-service-role/lexv2.amazonaws.com/AWSServiceRoleForLexV2Bots*"
        },
        {
            "Sid": "Id2",
            "Effect": "Allow",
            "Action": "iam:GetRolePolicy",
            "Resource": "arn:aws:iam::*:role/aws-service-role/lexv2.amazonaws.com/AWSServiceRoleForLexV2Bots*"
        }
    ]
}
```

------

## 允许用户为机器人添加频道
<a name="security_iam-channel-role"></a>

此示例中的策略可允许 IAM 用户向机器人添加消息收发频道。用户必须先制定此策略，然后才能在消息收发平台上部署机器人。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Id1",
            "Effect": "Allow",
            "Action": "iam:PutRolePolicy",
            "Resource": "arn:aws:iam::*:role/aws-service-role/channels.lexv2.amazonaws.com/AWSServiceRoleForLexV2Channels*"
        },
        {
            "Sid": "Id2",
            "Effect": "Allow",
            "Action": "iam:GetRolePolicy",
            "Resource": "arn:aws:iam::*:role/aws-service-role/channels.lexv2.amazonaws.com/AWSServiceRoleForLexV2Channels*"
        }
    ]
}
```

------

## 允许用户创建和更新机器人
<a name="security_iam-bot-create-update"></a>

此示例中的示例策略可允许 IAM 用户创建和更新任何机器人。该策略包括通过控制台或使用 AWS CLI 或 AWS API 完成此操作的权限。

## 允许用户使用自动聊天机器人设计器
<a name="security_iam-bot-designer"></a>

此示例中的示例策略可允许 IAM 用户运行自动聊天机器人设计器。

## 允许用户使用密 AWS KMS 钥加密和解密文件
<a name="security_iam-bot-key"></a>

此示例显示了一个策略示例，该策略允许 IAM 用户使用 AWS KMS 客户托管密钥来加密和解密数据。

## 允许用户删除机器人
<a name="security_iam-bot-delete"></a>

此示例中的示例策略可允许 IAM 用户删除任何机器人。该策略包括通过控制台或使用 AWS CLI 或 AWS API 完成此操作的权限。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lex:DeleteBot",
                "lex:DeleteBotLocale",
                "lex:DeleteBotAlias",
                "lex:DeleteIntent",
                "lex:DeleteSlot",
                "lex:DeleteSlottype"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:lex:us-east-1:123412341234:bot/*",
                "arn:aws:lex:us-east-1:123412341234:bot-alias/*"
            ]
        }
    ]
}
```

------

## 允许用户与机器人进行对话
<a name="security_iam-bot-conversation"></a>

此示例中的示例策略可允许 IAM 用户与任何机器人进行对话。该策略包括通过控制台或使用 AWS CLI 或 AWS API 完成此操作的权限。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lex:StartConversation",
                "lex:RecognizeText",
                "lex:RecognizeUtterance",
                "lex:GetSession",
                "lex:PutSession",
                "lex:DeleteSession"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:lex:us-east-1:123412341234:bot-alias/*"
        }
    ]
}
```

------

## 允许特定用户管理基于资源的策略
<a name="security_iam_id-based-policy-examples-allow-resource"></a>

以下示例授予特定用户管理基于资源的策略的权限。它允许控制台和 API 访问与机器人和机器人别名关联的策略。

## 允许用户导出机器人和机器人区域设置
<a name="security_iam_id-based-policy-examples-export"></a>

以下 IAM 权限策略允许用户创建、更新和导出机器人或机器人区域设置。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lex:CreateExport",
                "lex:UpdateExport",
                "lex:DescribeExport",
                "lex:DescribeBot",
                "lex:DescribeBotLocale",
                "lex:ListBotLocales",
                "lex:DescribeIntent",
                "lex:ListIntents",
                "lex:DescribeSlotType",
                "lex:ListSlotTypes",
                "lex:DescribeSlot",
                "lex:ListSlots",
                "lex:DescribeCustomVocabulary"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:lex:us-east-1:123456789012:bot/*"
            ]
        }
    ]
}
```

------

## 允许用户导出自定义词汇表
<a name="security_iam_id-based-policy-examples-import-vocab"></a>

以下 IAM 权限策略允许用户从机器人区域设置中导出自定义词汇表。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lex:CreateExport",
                "lex:UpdateExport",
                "lex:DescribeExport",
                "lex:DescribeCustomVocabulary"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:lex:us-east-1:123456789012:bot/*"
            ]
        }
    ]
}
```

------

## 允许用户导入机器人和机器人区域设置
<a name="security_iam_id-based-policy-examples-import"></a>

以下 IAM 权限策略允许用户导入机器人或机器人区域以及查看导入状态。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lex:CreateUploadUrl",
                "lex:StartImport",
                "lex:DescribeImport",
                "lex:CreateBot",
                "lex:UpdateBot",
                "lex:DeleteBot",
                "lex:CreateBotLocale",
                "lex:UpdateBotLocale",
                "lex:DeleteBotLocale",
                "lex:CreateIntent",
                "lex:UpdateIntent",
                "lex:DeleteIntent",
                "lex:CreateSlotType",
                "lex:UpdateSlotType",
                "lex:DeleteSlotType",
                "lex:CreateSlot",
                "lex:UpdateSlot",
                "lex:DeleteSlot",
                "lex:CreateCustomVocabulary",
                "lex:UpdateCustomVocabulary",
                "lex:DeleteCustomVocabulary",
                "iam:PassRole"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:lex:us-east-1:123456789012:bot/*",
                "arn:aws:lex:us-east-1:123456789012:bot-alias/*"
            ]
        }
    ]
}
```

------

## 允许用户导入自定义词汇表
<a name="secruity_iam_id-based-policy-examples-import-vocab"></a>

以下 IAM 权限策略允许用户向机器人区域设置中导入自定义词汇表。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lex:CreateUploadUrl",
                "lex:StartImport",
                "lex:DescribeImport",
                "lex:CreateCustomVocabulary",
                "lex:UpdateCustomVocabulary",
                "lex:DeleteCustomVocabulary"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:lex:us-east-1:123456789012:bot/*"
            ]
        }
    ]
}
```

------

## 允许用户将机器人从 Amazon Lex 迁移到 Amazon Lex V2
<a name="security_iam_id-based-policy-examples-migrate"></a>

以下 IAM 权限策略允许用户开始将机器人从 Amazon Lex 迁移到 Amazon Lex V2。

## 允许用户查看他们自己的权限
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

该示例说明了您如何创建策略，以允许 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: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 Lex V2 中使用可视化对话生成器绘制对话流程
<a name="security_iam_allow-draw-conversation-flow"></a>

以下 IAM 权限策略可允许用户在 Amazon Lex V2 中使用可视化对话生成器绘制对话流程。

## 允许用户创建和查看机器人副本，但不允许将其删除
<a name="security_iam_id-based-policy-examples-gr-permissions"></a>

您可以向 IAM 角色授予以下权限，使其只能创建和查看机器人副本。通过省略 `lex:DeleteBotReplica`，可以防止该角色删除机器人副本。有关更多信息，请参阅 [在 Lex V2 中复制机器人和管理机器人副本的权限](gr-permissions.md)。