

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 聊天應用程式政策語法和範例
<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 Developer。此預設值也會停用聊天應用程式中 Amazon Q Developer 支援的任何新聊天應用程式。例如，如果聊天應用程式中的 Amazon Q Developer 支援新的聊天應用程式，則此預設也會停用該新支援的聊天應用程式。

**注意**  
如需頻道層級 IAM 角色和使用者層級 IAM 角色的詳細資訊，請參閱《[聊天應用程式管理員指南》中的了解聊天應用程式中的 Amazon Q 開發人員許可](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 團隊**
+ Microsoft Teams 用戶端已停用。

**對於 Amazon Chime**
+ Amazon Chime 用戶端已停用。

**其他詳細資訊**
+ 底部的 `default`區塊會將用戶端設定為停用，這會停用整個組織中聊天應用程式中的 Amazon Q Developer，除非在較低層級覆寫。此預設值也會停用聊天應用程式中 Amazon Q Developer 支援的任何新聊天應用程式。例如，如果聊天應用程式中的 Amazon Q Developer 支援新的聊天應用程式，則此預設也會停用該新支援的聊天應用程式。

### 範例 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 團隊**
+ Microsoft Teams 用戶端已停用。

**對於 Amazon Chime**
+ Amazon Chime 用戶端已停用。

**其他詳細資訊**
+ 底部的 `default`區塊會將用戶端設定為停用，這會停用整個組織中聊天應用程式中的 Amazon Q Developer，除非在較低層級覆寫。此預設值也會停用聊天應用程式中 Amazon Q Developer 支援的任何新聊天應用程式。例如，如果聊天應用程式中的 Amazon Q Developer 支援新的聊天應用程式，則此預設也會停用該新支援的聊天應用程式。

### 範例 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 團隊**
+ 僅允許特定租用戶 *Microsoft-Teams-Tenant-Id*，使用萬用字元`"*"`允許該租用戶中的所有團隊。

**對於 Amazon Chime**
+ Amazon Chime 用戶端已停用。

**其他詳細資訊**
+ 底部的 `default`區塊會將用戶端設定為停用，這會停用整個組織中聊天應用程式中的 Amazon Q Developer，除非在較低層級覆寫。此預設值也會停用聊天應用程式中 Amazon Q Developer 支援的任何新聊天應用程式。例如，如果聊天應用程式中的 Amazon Q Developer 支援新的聊天應用程式，則此預設也會停用該新支援的聊天應用程式。

### 範例 4：允許聊天應用程式中受限的 Amazon Q Developer 存取 Slack 工作區和 Microsoft Teams 租用戶
<a name="chatbot-policy-example-4"></a>

下列政策允許聊天應用程式中受限的 Amazon Q Developer 存取所選 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 團隊**
+ Microsoft Teams 已啟用。
+ 允許的 Teams 租用戶為 *Microsoft-Teams-Tenant-Id*，團隊為 *Microsoft-Teams-Team-Id*。
+ 預設設定為僅允許使用者層級 IAM 角色。
+ 租用戶 *Microsoft-Teams-Tenant-Id* 有一個覆寫，允許團隊 *Microsoft-Teams-Team-Id* 的頻道層級 IAM 角色和使用者層級 IAM 角色。

**其他詳細資訊**
+ 底部的 `default`區塊會將用戶端設定為停用，這會停用整個組織中聊天應用程式中的 Amazon Q Developer，除非在較低層級覆寫。這表示在此範例中已停用 Amazon Chime。此預設值也會停用聊天應用程式中 Amazon Q Developer 支援的任何新聊天應用程式。例如，如果聊天應用程式中的 Amazon Q Developer 支援新的聊天應用程式，則此預設也會停用該新支援的聊天應用程式。