

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

# 聊天应用程序政策
<a name="orgs_manage_policies_chatbot"></a>

中的聊天应用程序策略 AWS Organizations 使您可以控制聊天应用程序（例如 Slack 和 Microsoft Teams）对组织帐户的访问权限。

[聊天应用程序中的 Amazon Q](https://docs.aws.amazon.com/chatbot/latest/adminguide/what-is.html) Developer 是一项 AWS 服务，它使 DevOps 软件开发团队能够使用消息传递程序聊天室来监控和响应其中的操作事件 AWS 云。聊天应用程序中的 Amazon Q Developer 会处理来自亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 的 AWS 服务 通知，然后将其转发到聊天室，这样团队就可以随时对其进行分析并采取行动，无论身在何处。

## 聊天应用程序政策的工作原理
<a name="orgs_manage_policies_chatbot_how_work"></a>

使用聊天应用程序政策时，组织的管理账户或委派管理员可以在整个组织中执行以下操作：
+ 强制可以使用哪些受支持的聊天应用程序（Amazon Chime、Microsoft Teams 和 Slack）。
+ 将聊天客户端的访问权限范围限定为具体的工作区（Slack）和团队（Microsoft Teams）。
+ 将 Slack 频道的可见性限制为公有或私有频道。
+ 设置和强制执行特定的[角色设置](https://docs.aws.amazon.com/chatbot/latest/adminguide/understanding-permissions.html#role-settings)。

聊天应用程序政策会限制并优先于账户级别的设置，例如[角色设置](https://docs.aws.amazon.com/chatbot/latest/adminguide/understanding-permissions.html#role-settings)和[频道护栏策略](https://docs.aws.amazon.com/chatbot/latest/adminguide/understanding-permissions.html#channel-guardrails)。您可以从聊天应用程序中的 Amazon Q 开发者版或 Organizations 控制台访问和修改聊天应用程序政策。

将策略附加到账户和组织单元（OU）后，范围内账户的任何当前和未来聊天应用程序中的 Amazon Q 开发者版配置都将自动遵守治理和权限设置。有关更多信息，请参阅[了解管理策略继承](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_inheritance_mgmt.html)。

如果您尝试执行受聊天应用程序政策限制的操作，则会显示一条错误消息，通知您聊天应用程序政策不允许执行该操作，并建议您联系组织的管理账户或委派管理员。

**注意**  
聊天应用程序政策在运行时进行验证。这意味着要持续检查现有资源的合规性。目前不支持将基于运行时的 IAM 权限用于发送通知或与聊天应用程序中的 Amazon Q 开发者版进行交互，因此与现有的 IAM 权限没有重叠。

# 聊天应用程序政策入门
<a name="orgs_manage_policies-chatbot_getting-started"></a>

请按照以下步骤开始使用聊天应用程序政策。

1. [了解执行聊天应用程序政策任务所必须具备的权限](orgs_manage_policies_prereqs.md)。

1. [为组织启用聊天应用程序政策](enable-policy-type.md)。

1. [创建聊天应用程序政策](orgs_policies_create.md)。

1. [将聊天应用程序政策附加到组织的根、OU 或账户](orgs_policies_attach.md)。

1. [查看应用于账户的合并有效聊天应用程序政策](orgs_manage_policies_effective.md)。

对于上述所有步骤，您必须以 IAM 用户的身份登录，担任 IAM 角色，或在组织的管理账户中以根用户的身份登录（[不推荐](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials)）。

**其他信息**
+ [了解聊天应用程序政策语法并查看示例策略](orgs_manage_policies_chatbot_syntax.md)

# 聊天应用程序政策语法和示例
<a name="orgs_manage_policies_chatbot_syntax"></a>

本主题将介绍聊天应用程序政策语法并提供示例。

## 聊天应用程序政策的语法
<a name="chatbot-policy-syntax-reference"></a>

聊天应用程序政策是一个纯文本文件，根据 [JSON](http://json.org) 的规则设置结构。聊天应用程序政策的语法遵循管理策略类型的语法。有关该语法的完整讨论，请参阅[了解管理策略继承](orgs_manage_policies_inheritance_mgmt.md)。本主题重点介绍如何使用该常规语法来满足聊天应用程序政策类型的特定要求。

以下示例展示了聊天应用程序政策的基本语法：

```
{
    "chatbot":{
       "platforms":{
          "slack":{
             "client":{
                "@@assign":"enabled" // enabled | disabled
             },
             "workspaces": { // limit 255
                   "@@assign":[
                      "Slack-Workspace-Id"
                   ]
             },
             "default":{
                "supported_channel_types":{
                   "@@assign":[
                      "private" // public | private
                   ]
                },
                "supported_role_settings":{
                   "@@assign":[
                      "user_role" // user_role | channel_role
                   ]
                }
             },
             "overrides":{ // limit 255
                "Slack-Workspace-Id":{
                   "supported_channel_types":{
                      "@@assign":[
                         "public" // public | private
                      ]
                   },
                   "supported_role_settings":{
                      "@@assign":[
                         "user_role" // user_role | channel_role
                      ]
                   }
                }
             }
          },
          "microsoft_teams":{
             "client":{
                "@@assign":"enabled"
             },
             "tenants":{ // limit 36
                "Microsoft-Teams-Tenant-Id":{ // limit 36
                   "@@assign":[
                      "Microsoft-Teams-Team-Id"
                   ]
                }
             },
             "default":{
                "supported_role_settings":{
                   "@@assign":[
                      "user_role" // user_role | channel_role
                   ]
                }
             },
             "overrides":{ // limit 36
                "Microsoft-Teams-Tenant-Id":{ // limit 36
                   "Microsoft-Teams-Team-Id":{
                      "supported_role_settings":{
                         "@@assign":[
                            "user_role" // user_role | channel_role
                         ]
                      }
                   }
                }
             }
          },
          "chime":{
            "client":{
               "@@assign":"disabled" // enabled | disabled
            }
         } 
       },
       "default":{
          "client":{
             "@@assign":"disabled" // enabled | disabled
          }
       }
    }
 }
```

此聊天应用程序政策包含以下元素：
+ `chatbot` 字段键名称。聊天应用程序政策始终以此固定键名称开头。这是此示例策略中的第一行。
+ 在 `chatbot` 下有一个 `platforms` 块，其中包含不同受支持聊天应用程序的配置：Slack、Microsoft Teams 和 Amazon Chime。
  + 对于 Slack，有以下字段可用：
    + `"client"`:
      + `"enabled"`：Slack 客户端已启用。允许 Slack 集成。
      + `"disabled"`：Slack 客户端已禁用。不允许 Slack 集成。
    + `"workspaces"`：允许的 Slack 工作区列表，以逗号分隔。在此示例中，允许的 Slack 工作区为和。*Slack-Workspace-Id1* *Slack-Workspace-Id2*
    + `"default"`：Slack 工作区的默认设置。
      + `"supported_channel_types"`:
        + `"public"`：默认情况下，范围内的 Slack 工作区会允许公有 Slack 频道。
        + `"private"`：默认情况下，范围内的 Slack 工作区会允许私有 Slack 频道。
      + `supported_role_settings`:
        + `"user_role"`: 默认情况下，范围内的 Slack 工作区会允许用户级别的 IAM 角色。
        + `"channel_role"`: 默认情况下，范围内的 Slack 工作区会允许频道级别的 IAM 角色。
    + `"overrides"`：Slack 工作区的覆盖设置。
      + `Slack-Workspace-Id2`：适用覆盖设置的 Slack 工作区列表，以逗号分隔。在此示例中，Slack 工作空间为*Slack-Workspace-Id2*。
        + `"supported_channel_types"`:
          + `"public"`：覆盖有关范围内的 Slack 工作区是否允许公有 Slack 频道的设置。
          + `"private"`：覆盖有关范围内的 Slack 工作区是否允许私有 Slack 频道的设置。
        + `supported_role_settings`:
          + `"user_role"`：覆盖范围内的 Slack 工作区是否允许用户级别的 IAM 角色的设置。
          + `"channel_role"`：覆盖范围内的 Slack 工作区是否允许频道级别的 IAM 角色的设置。
  + 对于 Microsoft Teams，有以下字段可用：
    + `"client"`:
      + `"enabled"`：Microsoft Teams 客户端已启用。允许 Microsoft Teams 集成。
      + `"disabled"`：Microsoft Teams 客户端已禁用。不允许 Microsoft Teams 集成。
    + `"tenants"`：允许的 Microsoft Teams 租户列表，以逗号分隔。在此示例中，允许的租户是*Microsoft-Teams-Tenant-Id*。
      + `Microsoft-Teams-Tenant-Id`：该租户内允许的团队列表，以逗号分隔。在此示例中，允许的队伍是*Microsoft-Teams-Team-Id*。
    + `"default"`：该租户内团队的默认设置。
      + `supported_role_settings`:
        + `"user_role"`：默认情况下，范围内的团队会允许用户级别的 IAM 角色。
        + `"channel_role"`：默认情况下，范围内的团队会允许频道级别的 IAM 角色。
    + `"overrides"`：Microsoft Teams 租户的覆盖设置。
      + `Microsoft-Teams-Tenant-Id`：适用覆盖设置的租户列表，以逗号分隔。在此示例中，租户是*Microsoft-Teams-Tenant-Id*。
        + `Microsoft-Teams-Team-Id`：该租户内的团队列表，以逗号分隔。在此示例中，允许的队伍是*Microsoft-Teams-Team-Id*。
          + `supported_role_settings`:
            + `"user_role"`：覆盖范围内的团队是否允许用户级别的 IAM 角色的设置。
            + `"channel_role"`：覆盖范围内的团队是否允许频道级别的 IAM 角色的设置。
  + 对于 Amazon Chime，有以下字段可用：
    + `"client"`:
      + `"enabled"`：Amazon Chime 客户端已启用。允许 Amazon Chime 集成。
      + `"disabled"`：Amazon Chime 客户端已禁用。不允许 Amazon Chime 集成。
+ 在 `chatbot` 下有一个 `default` 块，除非在更低级别被覆盖，否则该块会在整个组织中禁用聊天应用程序中的 Amazon Q 开发者版。此默认设置还会禁用聊天应用程序中的 Amazon Q 开发者版支持的任何新聊天应用程序。例如，假设聊天应用程序中的 Amazon Q 开发者版支持某个新聊天应用程序，则此默认设置也会禁用该新受支持的聊天应用程序。

**注意**  
有关频道级别 IAM 角色和用户级别 IAM 角色的更多信息，请参阅《Amazon Q Developer in chat applications Administrator Guide》**中的 [Understanding Amazon Q Developer in chat applications permissions](https://docs.aws.amazon.com/chatbot/latest/adminguide/understanding-permissions.html)。

## 聊天应用程序政策示例
<a name="chatbot-policy-examples"></a>

下面的示例策略仅供参考。

### 示例 1：仅允许特定工作区内的私有 Slack 频道，禁用 Microsoft Teams，支持所有身份验证模式
<a name="chatbot-policy-example-1"></a>

以下策略侧重于控制 Slack 和 Microsoft Teams 聊天机器人集成的允许配置。

```
{
   "chatbot": {
      "platforms": {
         "slack": {
            "client": {
               "@@assign": "enabled"
            },
            "workspaces": {
               "@@assign": [
                  "Slack-Workspace-Id"
               ]
            },
            "default": {
               "supported_channel_types": {
                  "@@assign": [
                     "private"
                  ]
               },
               "supported_role_settings": {
                  "@@assign": [
                     "channel_role",
                     "user_role"
                  ]
               }
            }
         },
         "microsoft_teams": {
            "client": {
               "@@assign": "disabled"
            }
         },
         "chime":{
            "client":{
               "@@assign":"disabled"
            }
         },
         "default":{
            "client":{
               "@@assign":"disabled"
            }
         }
      }
   }
}
```

**Slack**
+ Slack 客户端已启用。
+ 只允许使用特定的 Slack 工作空间*Slack-Workspace-Id*。
+ 默认设置为仅允许私有 Slack 频道、频道级别 IAM 角色和用户级别 IAM 角色。

**Microsoft Teams**
+ Microsoft Teams 客户端已禁用。

**Amazon Chime**
+ Amazon Chime 客户端已禁用。

**其他详细信息**
+ 底部的 `default` 块将客户端设置为禁用，除非在更低级别被覆盖，否则将在整个组织中禁用聊天应用程序中的 Amazon Q 开发者版。此默认设置还会禁用聊天应用程序中的 Amazon Q 开发者版支持的任何新聊天应用程序。例如，假设聊天应用程序中的 Amazon Q 开发者版支持某个新聊天应用程序，则此默认设置也会禁用该新受支持的聊天应用程序。

### 示例 2：仅允许使用用户级别 IAM 角色的 Slack 集成
<a name="chatbot-policy-example-2"></a>

以下策略对 Slack 采取更宽松的方法，允许所有 Slack 工作区，但将身份验证模式限定为仅限用户级别 IAM 角色。

```
{
   "chatbot":{
      "platforms":{
         "slack":{
            "client":{
               "@@assign":"enabled"
            },
            "workspaces":
               {
                  "@@assign":[
                     "*"
                  ]
               },
            "default":{
               "supported_role_settings":{
                  "@@assign":[
                     "user_role"
                  ]
               }
            }
         },
         "microsoft_teams":{
            "client":{
               "@@assign":"disabled"
            }
         },
         "chime":{
            "client":{
               "@@assign":"disabled"
            }
         }
      },
      "default":{
         "client":{
            "@@assign":"disabled"
         }
      }
   }
}
```

**Slack**
+ Slack 客户端已启用。
+ 没有使用通配符 `"*"` 定义任何特定的 Slack 工作区，因此允许使用所有工作区。
+ 默认设置为仅允许用户级别 IAM 角色。

**Microsoft Teams**
+ Microsoft Teams 客户端已禁用。

**Amazon Chime**
+ Amazon Chime 客户端已禁用。

**其他详细信息**
+ 底部的 `default` 块将客户端设置为禁用，除非在更低级别被覆盖，否则将在整个组织中禁用聊天应用程序中的 Amazon Q 开发者版。此默认设置还会禁用聊天应用程序中的 Amazon Q 开发者版支持的任何新聊天应用程序。例如，假设聊天应用程序中的 Amazon Q 开发者版支持某个新聊天应用程序，则此默认设置也会禁用该新受支持的聊天应用程序。

### 示例 3：仅允许特定租户中的 Microsoft Teams 集成
<a name="chatbot-policy-example-3"></a>

以下示例策略将组织锁定，从而仅允许指定租户内的 Microsoft Teams 聊天机器人集成，同时完全阻止 Slack 集成。

```
{
   "chatbot":{
      "platforms":{
         "slack":{
            "client": {
               "@@assign": "disabled"
            },
         },
         "microsoft_teams":{
            "client": {
               "@@assign": "enabled"
            },
            "tenants":{
               "Microsoft-Teams-Tenant-Id":{
                  "@@assign":[
                     "*"
                  ]
               }
            }
         },
         "chime": {
            "client":{
               "@@assign": "disabled"
            }
         }  
      }
   }
}
```

**Slack**
+ Slack 客户端已禁用。

**Microsoft Teams**
+ *Microsoft-Teams-Tenant-Id*仅允许特定租户，使用通配符`"*"`允许该租户中的所有团队。

**Amazon Chime**
+ Amazon Chime 客户端已禁用。

**其他详细信息**
+ 底部的 `default` 块将客户端设置为禁用，除非在更低级别被覆盖，否则将在整个组织中禁用聊天应用程序中的 Amazon Q 开发者版。此默认设置还会禁用聊天应用程序中的 Amazon Q 开发者版支持的任何新聊天应用程序。例如，假设聊天应用程序中的 Amazon Q 开发者版支持某个新聊天应用程序，则此默认设置也会禁用该新受支持的聊天应用程序。

### 示例 4：允许聊天应用程序中的 Amazon Q 开发者版对 Slack 工作区和 Microsoft Teams 租户进行受限访问
<a name="chatbot-policy-example-4"></a>

以下策略允许聊天应用程序中的 Amazon Q 开发者版对选定的 Slack 工作区和 Microsoft Teams 租户进行受限访问。

```
{
    "chatbot":{
       "platforms":{
          "slack":{
             "client":{
                "@@assign":"enabled"
             },
             "workspaces": { 
                   "@@assign":[
                      "Slack-Workspace-Id1",
                      "Slack-Workspace-Id2"
                   ]
             },
             "default":{
                "supported_channel_types":{
                   "@@assign":[
                      "private"
                   ]
                },
                "supported_role_settings":{
                   "@@assign":[
                      "user_role"
                   ]
                }
             },
             "overrides":{
                "Slack-Workspace-Id2":{
                   "supported_channel_types":{
                      "@@assign":[
                         "public",
                         "private"
                      ]
                   },
                   "supported_role_settings":{
                      "@@assign":[
                         "channel_role",
                         "user_role"
                      ]
                   }
                }
             }
          },
          "microsoft_teams":{
             "client":{
                "@@assign":"enabled"
             },
             "tenants":{
                "Microsoft-Teams-Tenant-Id":{
                   "@@assign":[
                      "Microsoft-Teams-Team-Id"
                   ]
                }
             },
             "default":{
                "supported_role_settings":{
                   "@@assign":[
                      "user_role"
                   ]
                }
             },
             "overrides":{
                "Microsoft-Teams-Tenant-Id":{
                   "Microsoft-Teams-Team-Id":{
                      "supported_role_settings":{
                         "@@assign":[
                            "channel_role",
                            "user_role"
                         ]
                      }
                   }
                }
             }
          }
       },
       "default":{
          "client":{
             "@@assign":"disabled"
          }
       }
    }
 }
```

**Slack**
+ Slack 客户端已启用。
+ 允许的 Slack 工作区是和。*Slack-Workspace-Id1* *Slack-Workspace-Id2*
+ Slack 的默认设置为仅允许私有频道和用户级别 IAM 角色。
+ 工作空间有一个替代项*Slack-Workspace-Id2*，允许公共和私有渠道以及频道级别 IAM 角色和用户级 IAM 角色。

**Microsoft Teams**
+ Microsoft Teams 客户端已启用。
+ 允许的 Team *Microsoft-Teams-Tenant-Id* s 租户加入团队*Microsoft-Teams-Team-Id*。
+ 默认设置为仅允许用户级别 IAM 角色。
+ 租户有一个替代项*Microsoft-Teams-Tenant-Id*，允许团队同时使用频道级别 IAM 角色和用户级 IAM 角色*Microsoft-Teams-Team-Id*。

**其他详细信息**
+ 底部的 `default` 块将客户端设置为禁用，除非在更低级别被覆盖，否则将在整个组织中禁用聊天应用程序中的 Amazon Q 开发者版。这意味着此示例中禁用了 Amazon Chime。此默认设置还会禁用聊天应用程序中的 Amazon Q 开发者版支持的任何新聊天应用程序。例如，假设聊天应用程序中的 Amazon Q 开发者版支持某个新聊天应用程序，则此默认设置也会禁用该新受支持的聊天应用程序。