管理您的 AWS 組織的存取許可 - AWS Organizations

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

管理您的 AWS 組織的存取許可

組織中的所有 AWS 資源,包括根、OU、帳戶和政策,是由 AWS 帳戶 管理,而建立或存取資源的許可,則是由許可政策所控管。如果是組織,其管理帳戶擁有所有資源。身為帳戶管理員,您可以透過連接許可政策到 IAM 身分 (使用者、群組和角色) 來控制對於 AWS 資源的存取。

注意

帳戶管理員 (或管理員使用者) 是具有管理員許可的使用者。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 中的安全性最佳實務

當您授予許可時,能夠決定取得許可的對象、這些對象取得的資源許可,以及可對上述資源進行的特定動作。

根據預設,IAM 使用者、群組和角色沒有許可。身為組織的管理帳戶中的管理員,您可以對管理帳戶中的其他 IAM 使用者或角色執行管理任務或委派管理員許可。若要委派許可,您必須將 IAM 許可政策附加到 IAM 使用者、群組或角色。根據預設,使用者不具任何許可;這種情況有時稱為隱含拒絕。政策會將隱含拒絕覆寫為明確允許,其指定使用者可以執行的動作,以及可以對其執行動作的資源。如果將許可授予角色,則組織中其他帳戶的使用者可以擔任該角色。

AWS Organizations 資源和操作

本節旨在討論將 AWS Organizations 概念對應至 IAM 同等概念的方式。

資源

在 AWS Organizations 中,您可以控制對下列資源的存取:

  • 組成組織階層結構的根和 OU

  • 屬於組織成員的帳戶

  • 您連接到組織中實體的政策

  • 您用來變更組織狀態的交握

這些資源中每一項都擁有一個相關聯的唯一 Amazon Resource Name (ARN)。您會在 IAM 許可政策的 Resource 元素中指定 ARN,藉此控制對資源的存取。如需中使用之資源之 ARN 格式的完整清單AWS Organizations,請參閱服務授權參考AWS Organizations所定義的資源類型

操作

AWS 提供一組操作以搭配使用組織中的資源。它們可讓您執行建立、列出、修改、存取資源的內容、刪除資源等動作。大多數操作都在 IAM 政策的 Action 元素中參考,以控制能使用該操作的對象。如需可用AWS Organizations作 IAM 政策中許可的作業清單,請參閱服務授權參考的 Organ AWS izations 定義的動作

當您在單一許可政策 Statement 中結合 ResourceAction 時,您可以控制可使用該特定動作所在的資源。

條件索引鍵

AWS 提供可供您查詢的條件金鑰,以對特定動作提供更精確的控制。您可以在 IAM 政策的 Condition 元素中參考這些條件金鑰,以指定必須符合陳述式才能被視為相符的額外情況。

以下條件金鑰對於 AWS Organizations 特別有用:

  • aws:PrincipalOrgID – 簡化在以資源為基礎的政策中指定 Principal 元素。此全球金鑰提供了列出組織中所有 AWS 帳戶 的所有帳戶 ID 的替代方法。您可以在 Condition 元素中指定組織 ID,而不是列出組織成員的所有帳戶。

    注意

    此全域條件也適用於組織的管理帳戶。

    如需詳細資訊,請參閱《IAM 使用者指南》中的PrincipalOrgIDAWS全域條件內容金鑰說明。

  • aws:PrincipalOrgPaths – 使用此條件金鑰來比對特定組織根、OU 或其子系的成員。當提出請求的委託人 (根使用者、IAM 使用者或角色) 位於指定的組織路徑時,aws:PrincipalOrgPaths 條件金鑰會傳回 true。路徑是 AWS Organizations 實體結構的文字表示。如需有關路徑的詳細資訊,請參閱IAM 使用者指南》中的了解AWS Organizations實體路徑。如需有關使用此條件金鑰的詳細資訊,請參閱 IAM 使用者指南PrincipalOrgPaths中的 aws:

    例如,下列條件元素符合相同組織中兩個 OU 之中任一個的成員。

    "Condition": { "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-def0-awsbbbbb/", "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-jkl0-awsddddd/" ] } }
  • organizations:PolicyType – 您可以使用此條件金鑰,將 Organizations 政策相關 API 操作限制為僅在指定類型的 Organizations 政策上運作。您可以將此條件金鑰套用至任何政策陳述式,其中包含與 Organizations 政策互動的動作。

    您可以搭配此條件金鑰使用下列值:

    • AISERVICES_OPT_OUT_POLICY

    • BACKUP_POLICY

    • SERVICE_CONTROL_POLICY

    • TAG_POLICY

    例如,下列範例政策允許使用者執行任何 Organizations 操作。不過,如果使用者執行一個採取政策引數的操作,則只有在指定的政策是標記政策時,才允許此操作。如果使用者指定任何其他類型的政策,則此操作會失敗。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "IfTaggingAPIThenAllowOnOnlyTaggingPolicies", "Effect": "Allow", "Action": "organizations:*", "Resource": "*", "Condition": { "StringLikeIfExists": { "organizations:PolicyType": [ "TAG_POLICY" ] } } } ] }
  • organizations:ServicePrincipal— 如果您使用 [啟用] 或 [停用] AWSServiceAccess 作業來用AWSServiceAccess或用對其他AWS服務的受信任存取,則可作為條件使用。您可以使用 organizations:ServicePrincipal 來限制這些操作對核准的服務委託人名稱清單所做的請求。

    例如,對 AWS Organizations 啟用和停用信任存取時,以下政策只允許使用者指定 AWS Firewall Manager。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOnlyAWSFirewallIntegration", "Effect": "Allow", "Action": [ "organizations:EnableAWSServiceAccess", "organizations:DisableAWSServiceAccess" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "organizations:ServicePrincipal": [ "fms.amazonaws.com" ] } } } ] }

如需可在 IAM 政策中用作許可的所有 AWS Organizations —specific 條件金鑰清單,請參閱服務授權參考AWS Organizations的條件金鑰

了解資源所有權

AWS 帳戶 擁有在帳戶內所建立的資源,無論資源的建立者是誰。具體而言,資源擁有者就是對資源建立請求進行身分驗證的主體實體 (即根使用者、IAM 使用者或 IAM 角色) 的 AWS 帳戶。對於 AWS 組織,一律會是管理帳戶。您無法呼叫從成員帳戶建立或存取組織資源的大多數操作。下列範例說明其如何運作:

  • 如果您使用管理帳戶的根憑證來建立 OU,則您的管理帳戶即為資源的擁有者。(在 AWS Organizations 中,資源為 OU。)

  • 如果您在管理帳戶中建立 IAM 使用者,並將建立 OU 的許可授予該使用者,則該使用者可以建立 OU。不過,使用者所屬的管理帳戶會擁有資源。

  • 如果您在管理帳戶中建立 IAM 角色,並將建立 OU 的許可授予該角色,則任何可擔任該角色的人都能建立 OU。角色所屬的管理帳戶 (非擔任使用者) 會擁有該 OU 資源。

管理資源存取

許可政策描述誰可以存取哪些資源。下一節說明可用來建立許可政策的選項。

注意

本節著重討論如何在 AWS Organizations​ 的環境中使用 IAM,它不提供 IAM 服務的詳細資訊。如需完整的 IAM 文件,請參閱 IAM 使用者指南。如需 IAM 政策語法和說明的相關資訊,請參閱 IAM 使用者指南中的 IAM JSON 政策參考資料。

附加至 IAM 身分的政策稱為以身分為基礎的政策 (IAM 政策)。連接至資源的政策稱為以資源為基礎的政策。AWS Organizations 僅支援以身分為基礎的政策 (IAM 政策)。

身分型許可政策 (IAM 政策)

您可以將策略連接至 IAM 身分,以允許這些身分對 AWS 資源執行操作。例如,您可以執行下列動作:

  • 將許可政策連接至您帳戶中的使用者或群組 – 若要授予使用者建立 AWS Organizations 資源的許可,例如服務控制政策 (SCP) 或 OU ,您可以將許可政策連接至使用者或使用者所屬的群組。使用者或群組必須位在組織的管理帳戶中。

  • 將許可政策連接至角色 (授予跨帳戶許可) – 您可以將以身分為基礎的許可政策連接至 IAM 角色,藉此對組織授予跨帳戶許可。例如,管理帳戶中的管理員可以建立角色,將跨帳戶許可授予成員帳戶中的使用者,如下所示:

    1. 管理帳戶管理員會建立 IAM 角色,並將會授予許可給組織資源的許可政策連接至該角色。

    2. 管理帳戶管理員將信任政策連接至角色,該角色會將成員帳戶 ID 識別為可以擔任角色的 Principal

    3. 然後成員帳戶管理員可以委派許可給成員帳戶中的任何使用者,以擔任該角色。這樣做可讓成員帳戶中的使用者可以在管理帳戶和組織中建立或存取資源。如果您想要將許可授予 AWS 服務來擔任該角色,則信任政策的委託人也可以是 AWS 服務委託人。

    如需使用 IAM 來委派許可的詳細資訊,請參閱 IAM 使用者指南中的存取管理

以下為允許使用者在您的組織中執行 CreateAccount 動作的範例政策。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"Stmt1OrgPermissions", "Effect":"Allow", "Action":[ "organizations:CreateAccount" ], "Resource":"*" } ] }

您也可在政策的 Resource 元素中提供部分 ARN,用於指示資源的類型。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowCreatingAccountsOnResource", "Effect":"Allow", "Action":"organizations:CreateAccount", "Resource":"arn:aws:organizations::*:account/*" } ] }

您也可以拒絕建立未將特定標籤納入正在建立的帳戶中的帳戶。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyCreatingAccountsOnResourceBasedOnTag", "Effect":"Deny", "Action":"organizations:CreateAccount", "Resource":"*", "Condition":{ "StringEquals":{ "aws:ResourceTag/key":"value" } } } ] }

如需有關使用者、群組、角色和許可的詳細資訊,請參閱 IAM 使用者指南中的 IAM 身分(使用者、使用者群組和角色)

資源型政策

某些服務 (例如 Amazon S3) 支援以資源為基礎的許可政策。例如,您可以將政策連接到 Amazon S3 儲存貯體,以管理對該儲存貯體的存取許可。AWS Organizations 目前不支援以資源為基礎的政策。

指定政策元素:Actions、Conditions、Effects 和 Resources

對於每個 AWS Organizations 資源,服務會定義一組 API 操作或動作,可用來以某種方式與資源互動。為授予對這些操作的許可,AWS Organizations 定義了一組您可以在政策中指定的動作。例如,針對 OU 資源,AWS Organizations 會定義如下的動作:

  • AttachPolicyDetachPolicy

  • CreateOrganizationalUnitDeleteOrganizationalUnit

  • ListOrganizationalUnitsDescribeOrganizationalUnit

在某些情況下,執行 API 操作可能需要多個動作的許可,並且可能需要多個資源的許可。

以下是您可以在 IAM 許可政策中使用的最基本元素:

  • 動作 – 使用此關鍵字,可辨識要允許或拒絕的操作 (動作)。例如,organizations:CreateAccount 會根據指定的 Effect,進而允許或拒絕使用者執行 AWS Organizations CreateAccount 操作的許可。如需詳細資訊,請參閱 IAM JSON 政策元素:IAM 使用者指南中的動作

  • 資源 – 使用此關鍵字指定政策陳述式套用的資源的 ARN。如需詳細資訊,請參閱 IAM JSON 政策元素:IAM 使用者指南中的資源

  • 條件 – 使用此關鍵字,可指定必須達到才能套用政策陳述式的條件。Condition 通常會指定必須成立政策才會符合的額外情況。如需更多資訊,請參閱《IAM 使用者指南》中的 IAM JSON 政策元素:條件

  • 效果 – 使用此關鍵字,可指定政策陳述式應允許或拒絕對資源執行動作。如果您未明確授予存取 (或允許) 資源,則隱含地拒絕存取。您也可以明確拒絕存取資源,您可能會這樣做,以確保使用者無法對特定資源執行特定動作,即使另有其他政策授予存取。如需詳細資訊,請參閱 IAM JSON 政策元素:IAM 使用者指南中的效果

  • 委託人 – 在以身分為基礎的政策 (IAM 政策) 中,政策附加到的使用者會自動且隱含成為委託人。對於以資源為基礎的政策,您可以指定想要收到許可的使用者、帳戶、服務或其他實體 (僅適用於以資源為基礎的政策)。AWS Organizations 目前僅支援以身分為基礎的政策,不支援以資源為基礎的政策。

若要進一步了解 IAM 政策語法和說明,請參閱 IAM 使用者指南中的 IAM JSON 政策參考資料。