存取 IAM 資源所需的許可 - AWS Identity and Access Management

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

存取 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 政策 (如下所示) 連接到該使用者:

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

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

JSON
{ "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 動作。(如果動作新增到未來具有「AccessKey」的 IAM 中,則對 iam:*AccessKey* 元素使用 Action 也將授予使用者對該新動作的許可)。下列範例顯示的政策可讓使用者執行與其自己的存取金鑰相關的所有動作 (account-id以您的 AWS 帳戶 ID 取代):

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

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

在 AWS Management Console工作的許可

上述範例顯示允許使用者使用 AWS CLIAWS 開發套件執行動作的政策。

當使用者使用主控台,主控台會向 IAM 發出請求,以列出群組、使用者、角色和政策,並獲得與群組、使用者或角色關聯的政策。主控台也會發出請求,以取得委託人的相關資訊 AWS 帳戶 和資訊。主體是使用者在主控台中提出請求。

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

如果您想要授予使用者使用 管理群組、使用者、角色、政策和登入資料的許可 AWS Management Console,您需要包含主控台執行之動作的許可。如需可以用來授予使用者許可的一些政策範例,請參閱管理 IAM 資源的政策範例

跨 AWS 帳戶授予許可

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

注意

部分服務支援以資源為基礎的政策,如 以身分為基礎和以資源為基礎的政策 (例如 Amazon S3、Amazon SNS 和 Amazon SQS) 中所述。對於這些服務,使用角色的替代方法是將政策連接到您要共用的資源 (儲存貯體、主題或佇列)。以資源為基礎的政策可以指定具有資源存取許可 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 執行個體的許可。

  • 在 中 AWS Data Pipeline,IAM 角色會決定管道可執行的操作;使用者需要許可才能擔任該角色。(有關詳細資訊,請參閱在《AWS Data Pipeline 開發人員指南》中的使用 IAM 授予管道許可)。

如需如何正確設定許可的詳細資訊,以便 AWS 服務能夠完成您想要的任務,請參閱您正在呼叫之服務的文件。若要了解如何為服務建立角色的詳細資訊,請參閱建立角色以將許可委派給 AWS 服務

設定具有 IAM 角色的服務以代表您的工作

當您想要設定 AWS 服務以代表您工作時,通常會為 IAM 角色提供 ARN,以定義允許服務執行的動作。 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:允許使用者建立目錄