識別與存取管理 - Amazon Interactive Video Service

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

識別與存取管理

AWS Identity and Access Management (IAM) 是一種 AWS 服務,可協助帳戶管理員安全地控制對 AWS 資源的存取。每項 AWS 資源均由某個 AWS 帳戶所持有,而建立或存取資源的許可則由許可政策管理。IAM 帳戶管理員可以控制經過身分驗證 (已登入) 和得到授權 (具有許可) 來使用 Amazon IVS 資源的人員。IAM 是 AWS 帳戶可享的一項功能,無須額外付費。

重要事項:如需完整資訊,請參閱 AWS IAM 產品頁面、《IAM 使用者指南》和簽署 AWS API 請求。在本節中,我們還會提供 IAM 使用者指南特定章節的連結。在繼續之前,您應該熟悉此材料。

對象

根據您在 Amazon IVS 中所進行的工作而定,IAM 的使用方式會不同。

  • 服務使用者 – 若您使用 Amazon IVS 來執行您的任務,您的管理員可以提供您需要的登入資料和許可。隨著您為了執行作業而使用的 Amazon IVS 功能數量變多,您可能會需要額外的許可。了解存取的管理方式可協助您向管理員請求正確的許可。如果您無法存取 Amazon IVS 中的功能,請參閱 故障診斷

  • 服務管理員 – 若您在公司負責管理 Amazon IVS 資源,您可能擁有 Amazon IVS 的完整存取權。您的任務是要判斷員工應存取哪些 Amazon IVS 功能和資源。您接著必須將請求提交給您的 IAM 管理員,來變更您服務使用者的許可。檢閱此頁面上的資訊,了解基本 IAM 概念。若要進一步了解貴公司可搭配 Amazon IVS 使用 IAM 的方式,請參閱 Amazon IVS 如何與 IAM 搭配運作

  • IAM 管理員 – 如果您是 IAM 管理員,您可寫入政策以管理 Amazon IVS 存取權。若要檢視您可以在 IAM 中使用的基於 Amazon IVS 身分的政策範例,請參閱基於身分的政策範例

Amazon IVS 如何與 IAM 搭配運作

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

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

身分

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

政策

請參閱 IAM 使用者指南中的以下章節:

預設情況下,IAM 使用者和角色沒有建立或修改 Amazon IVS 資源 (甚至變更他們自己的密碼) 的許可。他們也無法使用 AWS 主控台、AWS CLI 或 AWS API 執行任務。IAM 管理員必須建立 IAM 政策,授予使用者和角色在指定資源上執行特定 API 操作的所需許可。

IAM 政策定義該動作的許可,無論使用何種方法來執行操作。例如,假設您有一個允許 iam:GetRole 動作的政策。具備該政策的使用者便可以從 AWS 管理主控台、AWS CLI 或 AWS API 取得角色資訊。

政策是由元素組成的 JSON 許可政策文件。Amazon IVS 支援三種元素:

  • 動作 — Amazon IVS 政策動作在動作之前使用 ivs 字首。例如,若要授予某人使用 Amazon IVS CreateChannel API 方法建立 Amazon IVS 頻道的許可,請在該人員的政策中包括 ivs:CreateChannel 動作。政策陳述式必須包含 ActionNotAction 元素。

  • 資源 — Amazon IVS 頻道資源具有以下 ARN 格式:

    arn:aws:ivs:${Region}:${Account}:channel/${channelId}

    例如,若要在陳述式中指定 VgNkEJgOVX9N 頻道,請使用此 ARN:

    "Resource": "arn:aws:ivs:us-west-2:123456789012:channel/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 參考IVS 即時串流 API 參考,以及 IVS 聊天功能 API 參考中的「標記」。

如需範例,請參閱 根據標籤檢視 Amazon IVS 頻道

角色

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

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

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

特權和非特權存取

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

政策的最佳實務

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

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

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

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

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

基於身分的政策範例

使用 Amazon IVS 主控台。

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

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

  • 所有 Amazon IVS API 端點

  • 您的 Amazon IVS 服務配額

  • IVS 自動錄製到 S3 功能 (低延遲串流) 和 IVS 複合錄製功能 (即時串流) 所需的 Amazon S3 端點。

  • 自動錄製到 S3 服務連結角色建立

  • Amazon CloudWatch 為您的即時串流工作階段取得指標

{ "Version": "2012-10-17", "Statement": [ { "Action": "ivs:*", "Effect": "Allow", "Resource": "*" }, { "Action": [ "servicequotas:ListServiceQuotas" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "s3:CreateBucket", "s3:DeleteBucketPolicy", "s3:GetBucketLocation", "s3:GetBucketPolicy", "s3:ListAllMyBuckets", "s3:PutBucketPolicy" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "iam:AttachRolePolicy", "iam:CreateServiceLinkedRole", "iam:PutRolePolicy" ], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/aws-service-role/ivs.amazonaws.com/AWSServiceRoleForIVSRecordToS3*" }, { "Action": [ "cloudwatch:GetMetricData" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "lambda:AddPermission", "lambda:ListFunctions" ], "Effect": "Allow", "Resource": "*" } ] }

允許使用者檢視自己的許可

此範例會示範一個政策,它允許 IAM 使用者檢視連接到其使用者身分的內嵌及受管政策。此政策包含在 AWS 主控台上,或是使用 AWS CLI 或 AWS API 透過編寫程式的方式完成此動作的許可。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": [ "arn:aws:iam:*:*:user/${aws:username}" ] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

存取 Amazon IVS 頻道

在此,您希望授予 AWS 帳戶中的 IAM 使用者存取您的其中一個 Amazon IVS 頻道:VgNkEJgOVX9N。您也希望允許使用者停止串流 (ivs:StopStream)、新增中繼資料 (ivs:PutMetadata),並更新頻道 (ivs:UpdateChannel)。該政策也授予 Amazon IVS 主控台所需的許可:ivs:ListChannelsivs:ListStreamsivs:GetChannelivs:GetStream

{ "Version":"2012-10-17", "Statement":[ { "Sid":"ListChannelsInConsole", "Effect":"Allow", "Action":[ "ivs:ListChannels", "ivs:ListStreams" ], "Resource":"arn:aws:ivs:*:*:channel/*" }, { "Sid":"ViewSpecificChannelInfo", "Effect":"Allow", "Action":[ "ivs:GetChannel", "ivs:GetStream" ], "Resource":"arn:aws:ivs:*:*:channel/VgNkEJgOVX9N" }, { "Sid":"ManageChannel", "Effect":"Allow", "Action":[ "ivs:StopStream", "ivs:PutMetadata", "ivs:UpdateChannel" ], "Resource":"arn:aws:ivs:*:*:channel/VgNkEJgOVX9N" } ] }

根據標籤檢視 Amazon IVS 頻道

您可以在基於身分的政策中使用條件,根據標籤控制 Amazon IVS 的存取權。此範例會示範允許檢視頻道的政策。此政策也會授予在 Amazon IVS 主控台上完成此動作的必要許可。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListWidgetsInConsole", "Effect": "Allow", "Action": "ivs:ListChannels", "Resource": "arn:aws:ivs:*:*:channel/*" }, { "Sid": "ViewChannelIfOwner", "Effect": "Allow", "Action": "ivs:GetChannel", "Resource": "arn:aws:ivs:*:*:channel/*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ] }

您可以將此政策連接到您帳戶中的 IAM 使用者。但是,只有在頻道標籤的值是該使用者的使用者名稱時,才會授予許可。如果名為 richard-roe 的使用者嘗試檢視 Amazon IVS 頻道,該頻道必須標記 Owner=richard-roeowner=richard-roe;否則他便會被拒絕存取。(條件標籤金鑰 Owner 符合 Ownerowner,因為條件金鑰名稱不區分大小寫。)

故障診斷

請使用以下資訊來協助您診斷和修正使用 Amazon IVS 和 IAM 時可能遇到的常見問題。

  • 我未獲授權,不得在 Amazon IVS 中執行動作。

    當 mateojackson IAM 使用者嘗試使用 AWS 主控台來檢視頻道詳細資訊但卻沒有 ivs:GetChannel 許可時,會發生以下範例錯誤。

    User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: ivs:GetChannel on resource: arn:aws:ivs:us-west-2:123456789012:channel/VgNkEJgOVX9N

    在此情況下,Mateo 會要求管理員更新他的政策,允許他使用 ivs:GetChannel 動作存取 arn:aws:ivs:us-west-2:123456789012:channel/VgNkEJgOVX9N 資源。

  • 我想要檢視我的存取金鑰

    在您建立 IAM 使用者存取金鑰後,您可以隨時檢視您的存取金鑰 ID。但是,您無法再次檢視您的私密存取金鑰。若您遺失了秘密金鑰,您必須建立新的存取金鑰對。存取金鑰有兩部分:

    • 存取金鑰 ID (例如,AKIAIOSFODNN7EXAMPLE)

    • 私密存取金鑰 (例如,wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)

    如同使用者名稱和密碼,您必須一起使用存取金鑰 ID 和私密存取金鑰來驗證您的請求。就如對您的使用者名稱和密碼一樣,安全地管理您的存取金鑰。

    重要:勿向第三方提供您的存取金鑰,而甚至讓他人找到您的正式使用者 ID。如果這麼做,就可能會讓他人能夠永久存取您的帳戶。

    建立存取金鑰對時,您會收到提示,要求您將存取金鑰 ID 和私密存取金鑰儲存在安全位置。只有在您建立的時候才可使用私密存取金鑰。若您遺失了私密存取金鑰,您必須將新的存取金鑰新增到您的 IAM 使用者。

    您最多可有兩個存取金鑰。若您已有兩個存取金鑰,您必須先刪除其中一個金鑰對,才能建立新的金鑰對。請參閱 IAM 使用者指南中的管理 IAM 使用者的存取金鑰

  • 我是管理員,想要允許其他人存取 Amazon IVS。

    若要允許其他人存取 Amazon IVS,您必須針對需要存取的人員或應用程式建立 IAM 實體 (使用者或角色)。該人員或應用程式將使用該實體的憑證來存取 AWS。您接著必須將政策連接到實體,在 Amazon IVS 中授予正確的許可。

    若要開始使用,請參閱 IAM 使用者指南中的建立您的第一個 IAM 委派使用者及群組

  • 我想允許 AWS 帳戶外的人員存取我的 Amazon IVS 資源。

    您可以建立一個角色,讓其他帳戶中的使用者或您組織外部的人員使用它來存取您的資源。您可以指定要允許哪些信任對象取得該角色。針對支援以資源為基礎的政策或存取控制清單 (ACL) 的服務,您可以使用那些政策來授予人員存取您資源的權限。如需相關資訊,請參閱 IAM 使用者指南中的這些章節:

    若要了解... 請參閱...
    如何存取您擁有的 AWS 帳戶中的資源

    在您擁有的另一個 AWS 帳戶中提供 IAM 使用者存取權

    如何為第三方 AWS 帳戶提供資源的存取權

    提供由第三方持有之 AWS 帳戶的存取權限

    如何透過聯合身分提供存取權

    向外部驗證的使用者提供存取權 (聯合身分)

    使用角色和以資源為基礎的政策進行跨帳戶存取之間的差異

    IAM 角色與以資源為基礎的政策有何差異