IVS 聊天功能中的 Identity and Access Management - Amazon IVS

IVS 聊天功能中的 Identity and Access Management

AWS Identity and Access Management (IAM) 是一種 AWS 服務,可協助帳戶管理員安全地控制對 AWS 資源的存取。請參閱《IVS 低延遲串流使用者指南》中的 Identity and Access Management

目標對象

根據您在 Amazon IVS 中所進行的工作而定,IAM 的使用方式會不同。請參閱《IVS 低延遲串流使用者指南》中的對象

Amazon IVS 如何與 IAM 搭配運作

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

若要更好地了解 Amazon IVS 如何與 IAM 搭配運作,請參閱 IAM 使用者指南中的與 IAM 搭配運作的 AWS 服務

身分

您可建立的 IAM 身分,以便為 AWS 帳戶中的人員和程序提供身分驗證。IAM 群組是 IAM 使用者集合,您可將它們視為單位進行管理。請參閱 IAM 使用者指南中的身分身分 (使用者、群組和角色)

政策

政策是由元素組成的 JSON 許可政策文件。請參閱《IVS 低延遲串流使用者指南》中的政策

Amazon IVS 聊天功能支援三種元素:

  • 動作 – Amazon IVS 聊天功能政策動作在動作之前使用 ivschat 字首。例如,若要授予某人使用 Amazon IVS 聊天功能 CreateRoom API 方法建立 Amazon IVS 聊天功能聊天室的許可,請在該人員的政策中包括 ivschat:CreateRoom 動作。政策陳述式必須包含 ActionNotAction 元素。

  • 資源 – Amazon IVS 聊天功能聊天室資源具有以下 ARN 格式:

    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:RequestTagaws:TagKeysaws:ResourceTag

您可以在政策中使用變數做為預留位置。例如,您可以只在使用者使用其 IAM 使用者名稱標記時,將存取資源的許可授予該 IAM 使用者。請參閱 IAM 使用者指南中的變數和標籤

Amazon IVS 提供 AWS 受管政策,可用於向身分授予一組預先設定的許可 (唯讀或完整存取權)。您可以選擇使用受管政策,而非下面所示的身分型政策。如需詳細資訊,請參閱 Amazon IVS 聊天功能的受管政策

以 Amazon IVS 標籤為基礎的授權

您可以將標籤附接至 Amazon IVS 聊天功能資源,或是在請求中將標籤傳遞至 Amazon IVS 聊天功能。若要根據標籤控制存取,請使用 aws:ResourceTag/key-nameaws:RequestTag/key-nameaws:TagKeys 條件金鑰,在政策的條件元素中,提供標籤資訊。如需標記 Amazon IVS 聊天功能資源的詳細資訊,請參閱 IVS 聊天功能 API 參考中的「標記」。

角色

請參閱 IAM 使用者指南中的 IAM 角色臨時安全登入資料

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

Amazon IVS 支援使用臨時安全登入資料。您可以搭配聯合使用暫時登入資料登入、擔任 IAM 角色,或是擔任跨帳戶角色。您取得暫時安全登入資料的方式是透過呼叫 AWS Security Token Service API 操作 (例如 AssumeRoleGetFederationToken)。

特權和非特權存取

API 資源擁有特權存取。可以透過私有頻道設定非特權播放存取;請參閱設定 IVS 私有頻道

政策的最佳實務

請參閱 IAM 使用者指南中的 IAM 最佳實務

基於身分的政策相當強大。它們可以判斷您帳戶中的某個人員是否可以建立、存取或刪除 Amazon IVS 資源。這些動作可能會讓您的 AWS 帳戶產生成本。請遵循下列建議:

  • 授予最低權限 – 當您建立自訂政策時,請只授予執行任務所需要的許可。以最小一組許可開始,然後依需要授予額外的許可。如此做比一開始使用太寬鬆的許可更為安全,然後稍後再嘗試將它們限縮。尤其是,保留 ivschat:* 進行管理員存取;不要在應用程式中使用它。

  • 為敏感操作啟用多重要素驗證 (MFA) – 為了增加安全,請要求 IAM 使用者使用 MFA 來存取敏感資源或 API 操作。

  • 使用政策條件以增加安全 – 在切實可行的範圍中,請定義允許存取資源的基於身分的政策條件。例如,您可以撰寫條件,來指定必須發出各種請求的可允許 IP 地址範圍。您也可以撰寫條件,只在指定的日期或時間範圍內允許請求,或要求使用 SSL 或 MFA。

基於身分的政策範例

使用 Amazon IVS 主控台。

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

使用以下政策的各部分可存取:

  • 所有 Amazon IVS 聊天功能 API 端點

  • 您的 Amazon IVS 聊天功能服務配額

  • 列出 lambda 並為所選 lambda 新增許可以進行 Amazon IVS 聊天功能管制

  • Amazon CloudWatch 為您的聊天工作階段取得指標

{ "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 聊天功能的以資源為基礎的政策

您必須授予 Amazon IVS 聊天功能服務調用 lambda 資源的許可,方可審查訊息。為此,請按照為 AWS Lambda 使用以資源為基礎的政策中的說明 (在 AWS Lambda 開發人員指南中) 並填寫下面指定的欄位。

若要控制對 lambda 資源的存取,您可以使用以下列項目為基礎的條件:

  • SourceArn – 我們的政策範例使用萬用字元 (*) 來允許您帳戶中的所有聊天室調用 lambda。您也可以選擇在您的帳戶中指定一個聊天室,以僅允許該聊天室調用 lambda。

  • SourceAccount:在下面的政策範例中,AWS 帳戶 ID 是 123456789012

{ "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/*" } } } ] }

故障診斷

請參閱《IVS 低延遲串流使用者指南》中的疑難排解,以取得診斷和修正使用 Amazon IVS 聊天功能和 IAM 時可能遇到之常見問題的相關資訊。