聊天机器人策略语法和示例 - AWS Organizations

聊天机器人策略语法和示例

本页介绍聊天机器人策略语法并提供了示例。

聊天机器人策略的语法

聊天机器人策略是一个纯文本文件,根据 JSON 的规则设置结构。聊天机器人策略的语法遵循管理策略类型的语法。有关该语法的完整讨论,请参阅了解管理策略继承。本主题重点介绍如何使用该常规语法来满足聊天机器人策略类型的特定要求。

以下示例展示了聊天机器人策略的基本语法:

{ "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-Id1Slack-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 块,除非在更低级别被覆盖,否则该块会在整个组织中禁用 AWS Chatbot。此默认设置还会禁用 AWS Chatbot 支持的任何新聊天应用程序。例如,假设 AWS Chatbot 支持某个新聊天应用程序,则此默认设置也会禁用该新受支持的聊天应用程序。

注意

有关频道级别 IAM 角色和用户级别 IAM 角色的更多信息,请参阅《AWS Chatbot 管理员指南》中的 Understanding AWS Chatbot permissions

聊天机器人策略示例

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

示例 1:仅允许特定工作区内的私有 Slack 频道,禁用 Microsoft Teams,支持所有身份验证模式

以下策略侧重于控制 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 块将客户端设置为禁用,除非在更低级别被覆盖,否则将在整个组织中禁用 AWS Chatbot。此默认设置还会禁用 AWS Chatbot 支持的任何新聊天应用程序。例如,假设 AWS Chatbot 支持某个新聊天应用程序,则此默认设置也会禁用该新受支持的聊天应用程序。

示例 2:仅允许使用用户级别 IAM 角色的 Slack 集成

以下策略对 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 块将客户端设置为禁用,除非在更低级别被覆盖,否则将在整个组织中禁用 AWS Chatbot。此默认设置还会禁用 AWS Chatbot 支持的任何新聊天应用程序。例如,假设 AWS Chatbot 支持某个新聊天应用程序,则此默认设置也会禁用该新受支持的聊天应用程序。

示例 3:仅允许特定租户中的 Microsoft Teams 集成

以下示例策略将组织锁定,从而仅允许指定租户内的 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 块将客户端设置为禁用,除非在更低级别被覆盖,否则将在整个组织中禁用 AWS Chatbot。此默认设置还会禁用 AWS Chatbot 支持的任何新聊天应用程序。例如,假设 AWS Chatbot 支持某个新聊天应用程序,则此默认设置也会禁用该新受支持的聊天应用程序。

示例 4:允许对 Slack 工作区和 Microsoft Teams 租户的受限 AWS Chatbot 访问

以下策略允许对选定的 Slack 工作区和 Microsoft Teams 租户的受限 AWS Chatbot 访问。

{ "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-Id1Slack-Workspace-Id2

  • Slack 的默认设置为仅允许私有频道和用户级别 IAM 角色。

  • 工作区 Slack-Workspace-Id2 有一个覆盖设置,该设置会允许公有和私有频道以及频道级别 IAM 角色和用户级别 IAM 角色。

Microsoft Teams

  • Microsoft Teams 客户端已启用。

  • 允许的 Teams 租户是 Microsoft-Teams-Tenant-Id,团队是 Microsoft-Teams-Team-Id

  • 默认设置为仅允许用户级别 IAM 角色。

  • 租户 Microsoft-Teams-Tenant-Id 有一个覆盖设置,该设置会允许团队 Microsoft-Teams-Team-Id 的频道级别 IAM 角色和用户级别 IAM 角色。

其他详细信息

  • 底部的 default 块将客户端设置为禁用,除非在更低级别被覆盖,否则将在整个组织中禁用 AWS Chatbot。这意味着此示例中禁用了 Amazon Chime。此默认设置还会禁用 AWS Chatbot 支持的任何新聊天应用程序。例如,假设 AWS Chatbot 支持某个新聊天应用程序,则此默认设置也会禁用该新受支持的聊天应用程序。