聊天机器人策略语法和示例
本页介绍聊天机器人策略语法并提供了示例。
聊天机器人策略的语法
聊天机器人策略是一个纯文本文件,根据 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-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 工作区列表,以逗号分隔。在此示例中,该 Slack 工作区为Slack-Workspace-Id2
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-Id1
和Slack-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 支持某个新聊天应用程序,则此默认设置也会禁用该新受支持的聊天应用程序。