

# IVS 聊天功能中的 Identity and Access Management
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) 是一種 AWS 服務，可協助帳戶管理員安全地控制對 AWS 資源的存取。請參閱《*IVS 低延遲串流使用者指南*》中的 [Identity and Access Management](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/security-iam.html)。

## 目標對象
<a name="security-iam-audience"></a>

根據您在 Amazon IVS 中所進行的工作而定，IAM 的使用方式會不同。請參閱《IVS 低延遲串流使用者指南》**中的[對象](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/security-iam.html#security-iam-audience)。

## Amazon IVS 如何與 IAM 搭配運作
<a name="security-iam-how-ivs-works"></a>

在您發出 Amazon IVS API 請求之前，您必須先建立一個或多個 IAM 身分*身分* (使用者、群組和角色) 和 IAM *政策*，然後將政策連接至身分。傳播許可最多需要幾分鐘的時間；在此之前，API 請求會遭到拒絕。

若要更好地了解 Amazon IVS 如何與 IAM 搭配運作，請參閱 *IAM 使用者指南*中的[與 IAM 搭配運作的 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

## 身分
<a name="security-iam-identities"></a>

您可建立的 IAM 身分，以便為 AWS 帳戶中的人員和程序提供身分驗證。IAM 群組是 IAM 使用者集合，您可將它們視為單位進行管理。請參閱 *IAM 使用者指南*中的身分[身分 (使用者、群組和角色)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)。

## 政策
<a name="security-iam-policies"></a>

政策是由*元素*組成的 JSON 許可政策文件。請參閱《IVS 低延遲串流使用者指南》**中的[政策](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/security-iam.html#security-iam-policies)。

Amazon IVS 聊天功能支援三種元素：
+ **動作** – Amazon IVS 聊天功能政策動作在動作之前使用 `ivschat` 字首。例如，若要授予某人使用 Amazon IVS 聊天功能 `CreateRoom` API 方法建立 Amazon IVS 聊天功能聊天室的許可，請在該人員的政策中包括 `ivschat:CreateRoom` 動作。政策陳述式必須包含 `Action` 或 `NotAction` 元素。
+ **資源** – Amazon IVS 聊天功能聊天室資源具有以下 [ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 格式：

  ```
  arn:aws:ivschat:${Region}:${Account}:room/${roomId}
  ```

  例如，若要在陳述式中指定 `VgNkEJgOVX9N` 聊天室，請使用此 ARN：

  ```
  "Resource": "arn:aws:ivschat:us-west-2:123456789012:room/VgNkEJgOVX9N"
  ```

  有些 Amazon IVS 聊天功能動作無法對特定資源執行，例如用來建立資源的動作。在那些情況下，您必須使用萬用字元 (`*`)：

  ```
  "Resource":"*"
  ```
+ **條件** – Amazon IVS 聊天功能支援某些全域條件索引鍵：`aws:RequestTag`、`aws:TagKeys` 和 `aws:ResourceTag`。

您可以在政策中使用變數做為預留位置。例如，您可以只在使用者使用其 IAM 使用者名稱標記時，將存取資源的許可授予該 IAM 使用者。請參閱 *IAM 使用者指南*中的[變數和標籤](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)。

Amazon IVS 提供 AWS 受管政策，可用於向身分授予一組預先設定的許可 (唯讀或完整存取權)。您可以選擇使用受管政策，而非下面所示的身分型政策。如需詳細資訊，請參閱 [Amazon IVS 聊天功能的受管政策](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/security-iam-awsmanpol.html)。

## 以 Amazon IVS 標籤為基礎的授權
<a name="security-iam-authorization"></a>

您可以將標籤附接至 Amazon IVS 聊天功能資源，或是在請求中將標籤傳遞至 Amazon IVS 聊天功能。若要根據標籤控制存取，請使用 `aws:ResourceTag/key-name`、`aws:RequestTag/key-name` 或 `aws:TagKeys` 條件金鑰，在政策的條件元素中，提供標籤資訊。如需標記 Amazon IVS 聊天功能資源的詳細資訊，請參閱 [IVS 聊天功能 API 參考](https://docs.aws.amazon.com/ivs/latest/ChatAPIReference/Welcome.html)中的「標記」。

## 角色
<a name="security-iam-roles"></a>

請參閱 *IAM 使用者指南*中的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)和[臨時安全登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)。

*IAM 角色*是您 AWS 帳戶中具備特定許可的實體。

Amazon IVS 支援使用*臨時安全登入資料*。您可以搭配聯合使用暫時登入資料登入、擔任 IAM 角色，或是擔任跨帳戶角色。您取得暫時安全登入資料的方式是透過呼叫 [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) API 操作 (例如 `AssumeRole` 或 `GetFederationToken`)。

## 特權和非特權存取
<a name="security-iam-privileged-access"></a>

API 資源擁有特權存取。可以透過私有頻道設定非特權播放存取；請參閱[設定 IVS 私有頻道](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/private-channels.html)。

## 政策的最佳實務
<a name="security-iam-policy-best-practices"></a>

請參閱 [IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)中的 *IAM 最佳實務*。

基於身分的政策相當強大。它們可以判斷您帳戶中的某個人員是否可以建立、存取或刪除 Amazon IVS 資源。這些動作可能會讓您的 AWS 帳戶產生成本。請遵循下列建議：
+ **授予最低權限** – 當您建立自訂政策時，請只授予執行任務所需要的許可。以最小一組許可開始，然後依需要授予額外的許可。如此做比一開始使用太寬鬆的許可更為安全，然後稍後再嘗試將它們限縮。尤其是，保留 `ivschat:*` 進行管理員存取；不要在應用程式中使用它。
+ **為敏感操作啟用多重要素驗證 (MFA)** – 為了增加安全，請要求 IAM 使用者使用 MFA 來存取敏感資源或 API 操作。
+ **使用政策條件以增加安全** – 在切實可行的範圍中，請定義允許存取資源的基於身分的政策條件。例如，您可以撰寫條件，來指定必須發出各種請求的可允許 IP 地址範圍。您也可以撰寫條件，只在指定的日期或時間範圍內允許請求，或要求使用 SSL 或 MFA。

## 基於身分的政策範例
<a name="security-iam-policy-examples"></a>

### 使用 Amazon IVS 主控台。
<a name="security-iam-policy-examples-console"></a>

若要存取 Amazon IVS 主控台，您必須有一組符合最低限制的許可，讓您可以列出並檢視您的 AWS 帳戶中 Amazon IVS 聊天功能資源的詳細資訊。如果您建立比最低必要許可更嚴格的基於身分的政策，則對於具有該政策的身分而言，主控台將無法如預期運作。若要確保存取 Amazon IVS 主控台，請將以下政策連接到身分 (請參閱 *IAM 使用者指南*中的[新增和移除 IAM 許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html))。

使用以下政策的各部分可存取：
+ 所有 Amazon IVS 聊天功能 API 操作
+ 您的 Amazon IVS 聊天功能[服務配額](service-quotas.md)
+ 列出 lambda 並為所選 lambda 新增許可以進行 Amazon IVS 聊天功能管制
+ Amazon CloudWatch 為您的聊天工作階段取得指標

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": "ivschat:*",
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Action": [
        "servicequotas:ListServiceQuotas"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Action": [
        "cloudwatch:GetMetricData"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Action": [
        "lambda:AddPermission",
        "lambda:ListFunctions"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

------

## Amazon IVS 聊天功能的以資源為基礎的政策
<a name="security-chat-policy-examples"></a>

您必須授予 Amazon IVS 聊天功能服務調用 lambda 資源的許可，方可審查訊息。為此，請按照[為 AWS Lambda 使用以資源為基礎的政策中的說明](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) (在 *AWS Lambda 開發人員指南*中) 並填寫下面指定的欄位。

若要控制對 lambda 資源的存取，您可以使用以下列項目為基礎的條件：
+ `SourceArn` – 我們的政策範例使用萬用字元 (`*`) 來允許您帳戶中的所有聊天室調用 lambda。您也可以選擇在您的帳戶中指定一個聊天室，以僅允許該聊天室調用 lambda。
+ `SourceAccount`：在下面的政策範例中，AWS 帳戶 ID 是 `123456789012`。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Principal": {
            "Service": "ivschat.amazonaws.com"
         },
         "Action": [
            "lambda:InvokeFunction"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:lambda:us-west-2:123456789012:function:name",
         "Condition": {
            "StringEquals": {
               "AWS:SourceAccount": "123456789012"
            },
            "ArnLike": {
               "AWS:SourceArn": "arn:aws:ivschat:us-west-2:123456789012:room/*"
            }
         }
      }
   ]
}
```

------

## 疑難排解
<a name="security-iam-troubleshooting"></a>

請參閱《IVS 低延遲串流使用者指南》**中的[疑難排解](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/security-iam.html#security-iam-troubleshooting)，以取得診斷和修正使用 Amazon IVS 聊天功能和 IAM 時可能遇到之常見問題的相關資訊。