本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Global Accelerator 的 Identity and Access Management
AWS Identity and Access Management (IAM) 是一種 AWS 服務,可協助管理員安全地控制對 AWS 資源的存取,包括 AWS Global Accelerator 資源。管理員使用 IAM 控制誰是身分驗證(已登入) 和已授權(具有權限) 來使用全域加速器資源。IAM 是 AWS 帳戶內含的一項功能,無須額外付費。
主題
概念與術語
身分驗證— 若要登入 AWS,您必須使用以下登入資料:根使用者登入資料 (不建議)、IAM 使用者登入資料,或使用 IAM 角色的臨時登入資料。若要進一步了解這些實體,請參閱什麼是身分驗證?。
存取控制— AWS 管理員使用政策來控制對 AWS 資源的存取,例如全球加速器中的加速器。如需進一步了解,請參閱什麼是存取控制?和什麼是政策?。
重要
帳戶內的所有資源由帳戶擁有,無論這些資源的建立者是誰。您必須取得存取權以建立資源。然而,即使是您建立的資源也不表示您會自動擁有存取該資源的完整存取權。管理員必須對您要執行的每個動作明確授與許可。該管理員也可以隨時撤銷您的許可。
為了協助您了解 IAM 運作方式的基本知識,請檢閱以下詞彙:
- 資源
-
AWS 服務 (例如全域加速器和 IAM) 通常包含稱為資源的物件。在大多數情況下,您可以從服務中建立、管理和刪除這些資源。IAM 資源包括使用者、群組、角色和政策:
- 使用者
-
IAM 使用者代表使用登入資料與 AWS 互動的人員或應用程式。使用者由名稱、用於登入 AWS 管理主控台的密碼,以及最多兩個可與 AWS CLI 和 AWS API 一起使用的存取金鑰組成。
- 群組
-
IAM 群組是 IAM 使用者的集合。管理員可以使用群組來指定成員使用者的許可。這可讓管理員輕鬆管理多名使用者的許可。
- 角色
-
IAM 角色沒有任何與之關聯的長期登入資料 (密碼或存取金鑰)。任何需要角色且擁有許可的人員皆可擔任該角色。IAM 使用者可擔任一個角色,為了特定任務來臨時採用不同許可。聯合身分使用者可以使用對應到角色的外部身分供應商來擔任該角色。某些 AWS 服務可以假設服務角色以代您存取 AWS 資源。
- 政策
-
政策為 JSON 文件,可定義所連接的物件的許可。AWS Support身分類型政策您可以連接到身分 (使用者、群組或角色)。某些 AWS 服務允許您將資源型政策資源來控制委託人 (人員或應用程式) 可對該資源執行的操作。全域加速器不支援資源類型政策。
- 身分
-
身分是 IAM 資源,您可以為其定義許可。包括使用者、群組和角色。
- 實體
-
實體是您用於身份驗證的 IAM 資源。包括使用者和角色。
- Principals (委託人)
-
在 AWS 中,委託人是使用實體登入並向 AWS 提出請求的人員或應用程式。身為委託人,您可以使用 AWS 管理主控台、AWS CLI 或 AWS API 來執行操作 (例如刪除加速器)。這會對該操作建立請求。您的請求指定動作、資源、委託人、委託人帳戶以及關於請求的任何其他資訊。所有這些資訊都為 AWS 提供context以取得您的請求。AWS 會檢查所有適用於請求內容的政策。只有在政策允許請求的每個部分時,AWS 才會授權該請求。
若要檢視驗證和存取控制程序的圖表,請參閱了解 IAM 的運作方式中的IAM 使用者指南。如需 AWS 如何決定是否允許請求的詳細資訊,請參閱Policy Evaluation Logic中的IAM 使用者指南。
主控台存取、驗證管理和存取控制所需的權限
若要使用全球加速器或管理授權和為自己或他人存取控制,您必須擁有正確的許可。
建立全域加速器所需的權限
若要建立 AWS Global Accelerator 速器,使用者必須具有建立與全域加速器相關聯的服務連結角色的權限。
若要確保使用者具有在全域加速器中建立加速器的正確權限,請將原則附加至使用者,如下所示。
注意
如果您建立更嚴格的身分型許可政策,則具有該政策的使用者將無法建立加速器。
{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "globalaccelerator.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/globalaccelerator.amazonaws.com/AWSServiceRoleForGlobalAccelerator*" }
使用全域加速器主控台所需的許可
若要存取 AWS Global Accelerator 主控台,您必須擁有一組最基本的許可,讓您可以列出和檢視 AWS 帳戶中全球加速器資源的詳細資訊。如果您建立比最低必要許可更嚴格的身分類型許可政策,則對於具有該政策的實體而言,主控台將無法如預期運作。
為確保那些實體仍可使用全球加速器主控台或 API 動作,請也將以下 AWS 受管政策連接至使用者,如在 JSON 標籤上建立政策:
GlobalAcceleratorReadOnlyAccess GlobalAcceleratorFullAccess
附加第一個原則,GlobalAcceleratorReadOnlyAccess
,如果使用者只需要在主控台中檢視資訊,或呼叫使用List*
或Describe*
操作。
附加第二個原則,GlobalAcceleratorFullAccess
,提供給需要建立或更新加速器的使用者。此完整存取政策包括FULL權限,以及describe權限和 Elastic Load Balancing。
注意
如果您建立的身分授權政策不包含 Amazon EC2 和 Elastic Load Balancing 所需的權限,則具有該政策的使用者將無法將 Amazon EC2 和 Elastic Load Balancing 資源新增到加速器。
以下是完整存取原則:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "globalaccelerator:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeInstances", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:DeleteSecurityGroup", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/AWSServiceName": "GlobalAccelerator" } } }, { "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Effect": "Allow", "Action": "elasticloadbalancing:DescribeLoadBalancers", "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": [ "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:network-interface/*" ] } ] }
驗證管理所需的權限
若要管理自己的登入資料,例如密碼、存取金鑰和多重驗證 (MFA) 裝置,您的管理員必須授與您必要的許可。若要查看包含這些許可的政策,請參閱允許使用者自行管理其認證。
身為 AWS 管理員,您需要完整存取 IAM 的權限,您才能在 IAM 中建立和管理使用者、群組、角色和政策。您應該使用AdministratorAccess
警告
只有管理員使用者應擁有 AWS 的完整存取權。使用此政策的任何人都有許可完全管理身分驗證和存取控制,以及修改 AWS 中的每個資源。若要了解如何建立此使用者,請參閱建立 IAM 管理員使用者。
存取控制所需的權限
如果管理員提供您 IAM 使用者登入資料,則管理員已將政策連接到 IAM 使用者來控制您可以存取哪些資源。若要在 AWS 管理主控台中檢視連接到使用者身分的政策,您必須擁有以下許可:
{ "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": "ListUsersViewGroupsAndPolicies", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
如果您需要額外許可,請要求管理員更新您的政策,以允許您存取所需的動作。
瞭解全球加速器如何搭配 IAM 使用
服務可與 IAM 搭配運作,以多種方式:
- 動作
-
全域加速器支援在政策中使用動作。這可讓管理員控制實體是否可以在全域加速器中完成操作。例如,若要允許實體呼叫
GetPolicy
AWS API 操作來檢視政策,管理員必須附加允許iam:GetPolicy
動作。下列範例政策允許使用者執行
CreateAccelerator
操作以編程方式為您的 AWS 帳戶創建加速器:{ "Version": "2018-08-08", "Statement": [ { "Effect": "Allow", "Action": [ "globalaccelerator:CreateAccelerator" ], "Resource":"*" } ] }
- 資源層級許可
-
全域加速器支援資源層級的許可。資源層級許可讓您可以使用 ARN 在政策中指定個別的資源。
- 以資源為基礎的政策
-
全域加速器不支援資源類型政策。使用以資源為基礎的政策,您可以將政策連接到服務內的資源。以資源為基礎的政策包括
Principal
元素來指定哪些 IAM 身分可以存取該資源。 - 根據標籤的授權
-
全域加速器支援授權型標籤。此功能可讓您在政策的條件中使用資源標籤。
- 暫時性登入資料
-
全域加速器支援臨時登入資料。使用暫時登入資料,您可以搭配聯合登入、擔任 IAM 角色,或是擔任跨帳戶角色。您取得暫時安全登入資料的方式是呼叫 AWS STS API 操作 (例如,
AssumeRole
或GetFederationToken
。 - 服務連結角色
-
Global Accelerator 支援服務連結角色。此功能可讓服務代表您擔任服務連結角色。此角色可讓服務存取其他服務中的資源,以代表您完成動作。服務連結角色會顯示在您的 IAM 帳戶中,並由該服務所擁有。IAM 管理員可以檢視,但不能編輯服務連結角色的許可。
- 服務角色
-
全域加速器不支援服務角色。此功能可讓服務代表您擔任服務角色。此角色可讓服務存取其他服務中的資源,以代表您完成動作。服務角色會出現在您的 IAM 帳戶中,且由該帳戶所擁有。這表示 IAM 管理員可以變更此角色的許可。不過,這可能會破壞此服務的功能。
驗證與存取控制疑難排解
請使用以下資訊來協助您診斷和修復使用 IAM 時發生的常見問題。
我未獲授權,不得在全域加速器中執行動作
若 AWS 管理主控台告知您並未獲得執行動作的授權,您必須聯絡提供您使用者名稱和密碼的管理員。
下列範例會在名為my-user-name
會嘗試使用主控台執行globalaccelerator:CreateAccelerator
動作,但沒有權限:
User: arn:aws:iam::
123456789012
:user/my-user-name
is not authorized to perform:aws-globalaccelerator:CreateAccelerator
on resource:my-example-accelerator
在這種情況下,要求管理員更新您的政策,以允許您存取my-example-accelerator
資源使用aws-globalaccelerator:CreateAccelerator
動作。
我是管理員,想要允許其他人存取全域加速器
若要允許其他人存取全球加速器,您必須針對需要存取的人員或應用程式建立 IAM 實體 (使用者或角色)。他們將使用該實體的登入資料來存取 AWS。您接著必須將原則連線到實體,在全域加速器中授與正確的許可。
若要立即開始,請參閱入門 IAM。
我想要了解 IAM 而無需成為專家
若要進一步了解 IAM 詞彙、概念和程序,請參閱下列主題:
標籤型政策
設計 IAM 政策時,您可能會透過授予對特定資源的存取來設定精密許可。隨著您管理的資源數量增加,此任務變得越來越困難。標記加速器並在政策陳述式條件中使用標籤,可讓此任務更輕鬆。您可以對具有特定標籤的任何加速器大量授予存取。然後,您會在建立加速器或稍後更新加速器時,對相關的加速器重複套用此標籤。
注意
在條件中使用標記是控制資源和請求的存取權限的方式之一。如需 Clobal Accelerator 標記功能的詳細資訊,請參閱AWS Global Accelerator 中的標籤。
可以將標記連接到資源或在請求中將標記傳遞至支援標記的服務。在全域加速器中,只有加速器可以包含標籤。在建立 IAM 政策時,可使用標記條件鍵來控制以下項目:
可在加速器上執行動作的使用者 (根據資料已具有的標記)。
可在動作請求中傳遞的標記。
是否可在請求中使用特定的標籤索引鍵。
關於標籤條件索引鍵的完整語法和語義,請參閱使用 IAM 標籤控制存取中的IAM 使用者指南。
例如,全域加速器GlobalAcceleratorFullAccess
受管使用者政策可提供使用者在任何資源上執行任何全域加速器動作的許可。以下政策會限制此能力,拒絕未授權的使用者許可,禁止在任何生產加速器。除了受管使用者政策之外,客戶的管理員必須將此 IAM 政策連接到未授權的 IAM 使用者。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Deny", "Action":"*", "Resource":"*", "Condition":{ "ForAnyValue:StringEquals":{ "aws:RequestTag/stage":"prod" } } }, { "Effect":"Deny", "Action":"*", "Resource":"*", "Condition":{ "ForAnyValue:StringEquals":{ "aws:ResourceTag/stage":"prod" } } } ] }