存取 IAM 資源所需的許可 - AWS 身分和存取權管理

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

存取 IAM 資源所需的許可

資源是服務中的物件。IAM資源包括群組、使用者、角色和策略。如果您使用以下方式登入 AWS 帳戶根使用者 認證時,您對管理認IAM證或IAM資源沒有任何限制。不過,IAM使用者必須明確獲得管理認證或IAM資源的權限。您可以透過將以身分為基礎的政策連接到使用者來執行此操作。

注意

在整個 AWS 說明文件中,當我們參照IAM政策而未提及任何特定類別時,我們指的是以身分識別為基礎的客戶管理政策。如需政策類別的詳細資訊,請參閱中的策略和權限 AWS Identity and Access Management

管理 IAM 身分的許可

管理IAM群組、使用者、角色和認證所需的權限通常與工API作的動作相對應。例如,若要建立IAM使用者,您必須擁有具有對應API指令:的iam:CreateUser權限CreateUser。若要允許IAM使用者建立其他使IAM用者,您可以將下列IAM原則附加至該使用者:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:CreateUser", "Resource": "*" } }

在政策中,Resource 元素的值取決於動作以及動作可以影響的資源。在上述範例中,政策可讓使用者建立任何使用者 (* 是符合所有字串的萬用字元)。相反地,允許使用者只變更自己的存取金鑰 (API動作CreateAccessKeyUpdateAccessKey) 的原則通常具有Resource元素。在此情況下,ARN包含解析為目前使用者名稱的變數 (${aws:username}),如下列範例所示:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListUsersForConsole", "Effect": "Allow", "Action": "iam:ListUsers", "Resource": "arn:aws:iam::*:*" }, { "Sid": "ViewAndUpdateAccessKeys", "Effect": "Allow", "Action": [ "iam:UpdateAccessKey", "iam:CreateAccessKey", "iam:ListAccessKeys" ], "Resource": "arn:aws:iam::*:user/${aws:username}" } ] }

在上述範例中,${aws:username} 是一個解析為目前使用者的使用者名稱的變數。如需有關政策變數的詳細資訊,請參閱 IAM 政策元素:變數與標籤

在動作名稱中使用萬用字元 (*) 通常可讓您更輕鬆地授予許可給與特定任務相關的所有動作。例如,若要允許使用者執行任何IAM動作,您可以使iam:*用動作。為了允許使用者能夠執行只與存取金鑰相關的任何動作,您可以在政策陳述式的 iam:*AccessKey* 元素中使用 Action。如此可提供使用者許可來執行 CreateAccessKeyDeleteAccessKeyGetAccessKeyLastUsedListAccessKeysUpdateAccessKey 動作。(如果 future 在名稱IAM中加入具有 "AccessKey" 的動作,則使用 of Action 元素也會授予使用者iam:*AccessKey*對該新動作的權限。) 下列範例顯示的原則可讓使用者執行與自己存取金鑰相關的所有動作 (取代account-id為 AWS 帳戶 識別碼):

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:*AccessKey*", "Resource": "arn:aws:iam::account-id:user/${aws:username}" } }

有些任務 (例如刪除群組) 涉及多個動作:您必須先從群組中移除使用者,然後分開或刪除群組的政策,然後實際刪除該群組。如果您希望使用者能夠刪除群組,則必須確保授予使用者執行所有相關動作的許可。

在中工作的權限 AWS Management Console

上述範例顯示允許使用者使用 AWS CLIAWS SDKs.

當使用者使用主控台時,主控台會發出IAM要求列出群組、使用者、角色和原則,以及取得與群組、使用者或角色相關聯的原則。控制台還發出請求以獲取 AWS 帳戶 有關主體的信息和信息。主體是使用者在主控台中提出請求。

一般而言,要執行動作,您必須擁有只包含在政策中的符合動作。要建立使用者,您需要有呼叫 CreateUser 動作的許可。通常,當您使用主控台來執行動作時,您必須具有在主控台中顯示、列出、取得或以其他方式查看資源的許可。這是必要的,以便您可以在主控台中導覽以執行指定的動作。例如,如果用戶豪爾赫想使用控制台來改變自己的訪問密鑰,他去IAM控制台,並選擇用。此動作會導致主控台發出 ListUsers 請求。如果 Jorge 沒有 iam:ListUsers 動作的許可,則在嘗試列出使用者時,主控台將被拒絕存取。因此,Jorge 無法取得自己的名稱和自己的存取金鑰,即使他擁有 CreateAccessKeyUpdateAccessKey 動作的許可。

如果您想要授與使用者管理群組、使用者、角色、原則和認證的權限 AWS Management Console時,您需要包含控制台執行的操作的權限。如需可以用來授予使用者許可的一些政策範例,請參閱管理 IAM 資源的政策範例

授予權限 AWS 帳戶

您可以直接授與您自己帳IAM戶中的使用者存取您的資源。如果來自其他帳戶的使用者需要存取您的資源,您可以建立IAM角色,該角色是包含權限但與特定使用者無關聯的實體。然後,其他帳戶中的使用者可以使用該角色,並根據您為該角色分配的許可存取資源。如需詳細資訊,請參閱您擁有的其他IAM使用者 AWS 帳戶 的存取權

注意

某些服務支援以資源為基礎的政策,如中所述 以身分為基礎和以資源為基礎的政策 (例如 Amazon S3 SNS、Amazon 和 AmazonSQS)。對於這些服務,使用角色的替代方法是將政策連接到您要共用的資源 (儲存貯體、主題或佇列)。以資源為基礎的策略可以指定 AWS 具有存取資源之權限的帳號。

由一個服務來存取另一個服務的許可

許多 AWS 服務訪問其他 AWS 服務。例如,幾個 AWS 服務 (包括 Amazon EMR、Elastic Load Balancing 和 Amazon EC2 Auto Scaling) 管理 Amazon 執行個體。EC2其他 AWS 服務利用 Amazon S3 存儲桶,Amazon SNS 主題,Amazon SQS 隊列等。

在這些情況下管理許可的方案因服務而異。以下是一些如何處理不同服務許可的範例:

  • 在 Amazon EC2 Auto Scaling 中,使用者必須擁有使用 Auto Scaling 的權限,但不需要明確授與管理 Amazon EC2 執行個體的權限。

  • In (入) AWS Data Pipeline,IAM角色決定管道可以執行的動作;使用者需要權限才能擔任該角色。如需詳細資訊,請參閱將權限授與 IAM AWS Data Pipeline 開發人員指南。)

有關如何正確配置權限的詳細信息,以便 AWS 服務能夠完成您想要的任務,請參閱您正在調用的服務的文檔。若要了解如何為服務建立角色的詳細資訊,請參閱建立角色以將權限委派給 AWS 服務

配置具有IAM角色的服務以代表您工作

當您想要設定 AWS 服務代表您工作,您通常會提ARN供定義服務允許執行的操作的IAM角色。 AWS 檢查以確保您具有將角色傳遞給服務的權限。如需詳細資訊,請參閱授與使用者將角色傳遞給 AWS 服務的權限

必要的動作

動作是您可以對資源執行的動作,例如查看、建立、編輯和刪除該資源。動作由每個人定義 AWS 服務。

若要允許某人執行動作,您必須在適用於呼叫身分或受影響資源的政策中包含必要的動作。一般而言,要提供執行動作所需的許可,您必須在政策中包含該動作。例如,若要建立使用者,您需要將 CreateUser 動作新增至您的政策。

在某些情況下,動作可能要求您在政策中包含其他相關動作。例如,要為某人提供在其中創建目錄的權限 AWS Directory Service 使用此ds:CreateDirectory作業時,您必須在其策略中包含下列動作:

  • ds:CreateDirectory

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

  • ec2:CreateSecurityGroup

  • ec2:CreateNetworkInterface

  • ec2:DescribeNetworkInterfaces

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:AuthorizeSecurityGroupEgress

使用視覺化編輯器建立或編輯政策時,會收到警告和提示,以幫助您選擇政策的所有必需操作。

如需有關在中建立目錄所需權限的詳細資訊 AWS Directory Service,請參閱範例 2:允許使用者建立目錄