的術語和概念 AWS RAM - AWS Resource Access Manager

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

的術語和概念 AWS RAM

下列概念有助於說明如何使用 AWS Resource Access Manager (AWS RAM) 來共用資源。

資源共享

您可以透過建立資源共用 AWS RAM 來使用 共用資源。資源共享具有下列三個元素:

  • 要共用的一或多個 AWS 資源清單。

  • 授予資源存取權的一或多個主體清單。

  • 您在共用中包含之每種資源類型的受管許可。每個受管許可都適用於該資源共享中該類型的所有資源。

使用 AWS RAM 建立資源共享之後,資源共享中指定的主體可以獲得共享資源的存取權。

  • 如果您開啟與 AWS RAM 共用 AWS Organizations,且與 共用的主體位於共用帳戶相同的組織中,則只要這些主體的帳戶管理員授予他們使用 資源的許可,即可取得存取權 AWS Identity and Access Management 。

  • 如果您未開啟與 Organizations AWS RAM 共享,您仍然可以與組織中 AWS 帳戶 的個人共享資源。耗用帳戶中的管理員會收到加入資源共享的邀請,他們必須先接受邀請,才能讓資源共享中指定的主體存取共用資源。

  • 如果資源類型支援,您也可以與組織外部的帳戶共用。耗用帳戶中的管理員會收到加入資源共享的邀請,他們必須先接受邀請,才能讓資源共享中指定的主體存取共用資源。如需有關哪些資源類型支援這種共用類型的資訊,請參閱 可共用 AWS 的資源和檢視 可以與其組織欄外的帳戶共用

共用帳戶

共用帳戶包含共用的資源,而 AWS RAM 管理員會在其中使用 建立 AWS 資源共用 AWS RAM。

AWS RAM 管理員是具有在 中建立和設定資源共用許可的 IAM 主體 AWS 帳戶。由於 AWS RAM 的運作方式是將資源型政策連接至資源共享中的資源, AWS RAM 管理員也必須具有許可,才能 AWS 服務 針對資源共享中包含的每個資源類型,在 中呼叫 PutResourcePolicy操作。

取用主體

耗用帳戶是共用資源 AWS 帳戶 的 。資源共用可以將整個帳戶指定為主體,或指定為帳戶中的某些資源類型、個別角色或使用者。如需有關哪些資源類型支援這種共用類型的資訊,請參閱 可共用 AWS 的資源和檢視可與 IAM 角色和使用者共用欄。

AWS RAM 也支援服務主體做為資源共享的取用者。如需有關哪些資源類型支援這種共用類型的資訊,請參閱 可共用 AWS 的資源和檢視與服務主體共用欄。

耗用帳戶中的主體只能執行下列兩個許可允許的這些動作:

  • 連接到資源共用的受管許可。這些指定可授予耗用帳戶中主體的最大許可。

  • IAM 身分型政策由耗用帳戶中的 IAM 管理員連接到個別角色或使用者。這些政策必須授予共用帳戶中資源的指定動作和 Amazon Resource Name (ARN)Allow存取權。

AWS RAM 支援下列 IAM 主體類型作為資源共用的取用者:

  • 另一個 AWS 帳戶 – 資源共用可讓共用帳戶中包含的資源可供取用帳戶使用。

  • 另一個帳戶中的個別 IAM 角色或使用者 – 有些資源類型支援直接與個別 IAM 角色或使用者共用。依其 ARN 指定此委託人類型。

    • IAM 角色arn:aws:iam::123456789012:role/rolename

    • IAM 使用者arn:aws:iam::123456789012:user/username

  • 服務主體 – 與 AWS 服務共用資源,以授予服務對資源共用的存取權。服務主體共享可讓 AWS 服務代表您採取動作,以減輕營運負擔。

    若要與服務委託人共用,請選擇允許與任何人共用,然後在選取委託人類型下,從下拉式清單中選擇服務委託人。以下列格式指定服務主體的名稱:

    • service-id.amazonaws.com

    為了降低代理人混淆的風險,資源政策會在aws:SourceAccount條件索引鍵中顯示資源擁有者的帳戶 ID。

  • 組織中的帳戶 – 如果共用帳戶是由 管理 AWS Organizations,則資源共用可以指定要與組織中所有帳戶共用的組織 ID。資源共享可以或者指定組織單位 (OU) ID 來與該 OU 中的所有帳戶共享。共用帳戶只能與自己的組織或自己的組織中的 OU IDs 共用。依組織或 OU 的 ARN 在組織中指定帳戶。

    • 組織中的所有帳戶 – 以下是 中組織的範例 ARN AWS Organizations:

      arn:aws:organizations::123456789012:organization/o-<orgid>

    • 組織單位中的所有帳戶 – 以下是 OU ID 的範例 ARN:

      arn:aws:organizations::123456789012:organization/o-<orgid>/ou-<rootid>-<ouid>

    重要

    當您與組織或 OU 共用,且該範圍包含擁有資源共用的帳戶時,共用帳戶中的所有主體都會自動存取共用中的資源。授予的存取權是由與共用相關聯的受管許可所定義。這是因為 AWS RAM 連接至共用中每個資源的資源型政策使用 "Principal": "*"。如需詳細資訊,請參閱在資源型政策"Principal": "*"中使用 的含意

    其他耗用帳戶中的委託人不會立即存取共用的資源。其他帳戶的管理員必須先將身分型許可政策連接至適當的主體。這些政策必須授予對資源共享中個別資源 ARNs的Allow存取權。這些政策中的許可不能超過與資源共用相關聯的受管許可中指定的許可。

以資源為基礎政策

資源型政策是實作 IAM 政策語言的 JSON 文字文件。與您連接到主體的身分型政策不同,例如 IAM 角色或使用者,您會將資源型政策連接到 資源。 會根據您為資源共享提供的資訊,代表您 AWS RAM 撰寫資源型政策。您必須指定Principal政策元素,以決定誰可以存取資源。如需詳細資訊,請參閱《IAM 使用者指南》中的身分型政策和資源型政策

產生的資源型政策 AWS RAM 會與所有其他 IAM 政策類型一起評估。這包括連接到嘗試存取資源之主體的任何 IAM 身分型政策,以及 AWS Organizations 可能適用於 的服務控制政策 (SCPs) AWS 帳戶。所產生的資源型政策會 AWS RAM 參與與所有其他 IAM 政策相同的政策評估邏輯。如需政策評估的完整詳細資訊,以及如何判斷產生的許可,請參閱《IAM 使用者指南》中的政策評估邏輯

AWS RAM 透過提供easy-to-use抽象資源型政策,提供簡單且安全的資源共享體驗。

對於支援資源型政策的資源類型, AWS RAM 會自動為您建構和管理資源型政策。對於指定的資源, AWS RAM 會結合來自包含該資源之所有資源共用的資訊,以建置資源型政策。例如,請考慮您使用 共用的 Amazon SageMaker AI 管道, AWS RAM 並包含在兩個不同的資源共用中。您可以使用一個資源共享來提供整個組織的唯讀存取權。然後,您可以使用其他資源共享,僅將 SageMaker AI 執行許可授予單一帳戶。 AWS RAM 會自動將這兩組不同的許可組合為具有多個陳述式的單一資源政策。然後,它會將合併的資源型政策連接到管道資源。您可以透過呼叫 GetResourcePolicy操作來檢視此基礎資源政策。 AWS 服務 然後使用該資源型政策來授權任何嘗試對共用資源執行動作的委託人。

雖然您可以手動建立以資源為基礎的政策,並呼叫 將其連接至您的資源PutResourcePolicy,但我們建議您使用 AWS RAM ,因為它提供下列優點:

  • 共用消費者的可探索性 – 如果您使用 共用資源 AWS RAM,使用者可以在擁有服務主控台和 API 操作的資源中直接看到與他們共用的所有資源,就像這些資源直接位於使用者帳戶中一樣。例如,如果您與另一個帳戶共用 AWS CodeBuild 專案,耗用帳戶中的使用者可以在 CodeBuild 主控台和執行的 CodeBuild API 操作結果中查看專案。直接連接以資源為基礎的政策所共用的資源,不會以這種方式顯示。反之,您必須探索並明確地參考其 ARN 的資源。

  • 共用擁有者的可管理性 – 如果您使用 共用資源 AWS RAM,共用帳戶中的資源擁有者可以集中查看哪些其他帳戶可以存取其資源。如果您使用以資源為基礎的政策共用資源,則只有在相關服務主控台或 API 中檢查個別資源的政策,才能查看耗用帳戶。

  • 效率 – 如果您使用 共用資源 AWS RAM,則可以共用多個資源,並以一個單位管理它們。僅使用以資源為基礎的政策來共用的資源,需要將個別政策連接到您共用的每個資源。

  • 簡單 – 使用 時 AWS RAM,您不需要了解 JSON 型 IAM 政策語言。 AWS RAM ready-to-use AWS 受管許可,您可以從中選擇連接到資源共用。

透過使用 AWS RAM,您甚至可以共用一些尚不支援資源型政策的資源類型。對於這類資源類型, AWS RAM 會自動產生以資源為基礎的政策,以表示實際的許可。使用者可以呼叫 來檢視此表示GetResourcePolicy。這包括下列資源類型:

  • Amazon Aurora – 資料庫叢集

  • Amazon EC2 – 容量保留和專用主機

  • AWS License Manager – 授權組態

  • AWS Outposts – 本機閘道路由表、前哨站和網站

  • Amazon Route 53 – 轉送規則

  • Amazon Virtual Private Cloud – 客戶擁有的 IPv4 地址、字首清單、子網路、流量鏡射目標、傳輸閘道和傳輸閘道多點傳送網域

AWS RAM 產生的資源型政策範例

如果您與個別帳戶共用 EC2 Image Builder 映像資源, AWS RAM 會產生如下所示的政策,並將其連接到資源共用中包含的任何映像資源。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:root"}, "Action": [ "imagebuilder:GetImage", "imagebuilder:ListImages", ], "Resource": "arn:aws:imagebuilder:us-east-1:123456789012:image/testimage/1.0.0/44" } ] }

如果您與不同 中的 IAM 角色或使用者共用 EC2 Image Builder 映像資源 AWS 帳戶, AWS RAM 會產生如下所示的政策,並將其連接至資源共用中包含的任何映像資源。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MySampleRole" }, "Action": [ "imagebuilder:GetImage", "imagebuilder:ListImages", ], "Resource": "arn:aws:imagebuilder:us-east-1:123456789012:image/testimage/1.0.0/44" } ] }

如果您與組織中的所有帳戶或 OU 帳戶共用 EC2 Image Builder 映像資源, AWS RAM 會產生如下所示的政策,並將其連接到資源共用中包含的任何映像資源。

注意

此政策會使用 "Principal": "*" ,然後使用 "Condition"元素來限制與指定 相符的身分的許可PrincipalOrgID。如需詳細資訊,請參閱在資源型政策"Principal": "*"中使用 的含意

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "imagebuilder:GetImage", "imagebuilder:ListImages", ], "Resource": "arn:aws:imagebuilder:us-east-1:123456789012:image/testimage/1.0.0/44" "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-123456789" } } } ] }

在資源型政策"Principal": "*"中使用 的含意

當您將 包含在以資源為基礎的政策"Principal": "*"中時,政策會授予 帳戶中包含資源的所有 IAM 主體存取權,如果存在,則受Condition元素施加的任何限制所約束。適用於呼叫主體的任何政策中的明確Deny陳述式會覆寫此政策授予的許可。不過,任何適用的身分政策、許可界限政策或工作階段政策中的隱含 Deny(表示缺少明確的 Allow) 不會導致 Deny被此類資源型政策授予存取 動作的委託人。

如果您的案例不想要此行為,則可以將明確Deny陳述式新增至會影響相關角色和使用者的身分政策、許可界限或工作階段政策,來限制此行為。

受管許可

受管許可定義主體可以在資源共享中支援的資源類型上執行的動作。當您建立資源共用時,您必須指定要針對資源共用中包含的每個資源類型使用哪個受管許可。受管許可會列出主體可以使用 共用資源執行的一組 actions條件 AWS RAM。

您只能為資源共享中的每個資源類型連接一個受管許可。您無法建立資源共享,其中特定類型的部分資源使用一個受管許可,而相同類型的其他資源使用不同的受管許可。若要這樣做,您需要建立兩個不同的資源共享,並在其中分割資源,為每個集提供不同的受管許可。受管許可有兩種類型:

AWS 受管許可

AWS 受管許可由 建立和維護 AWS ,並授予常見客戶案例的許可。 為每個支援的資源類型 AWS RAM 定義至少一個 AWS 受管許可。有些資源類型支援多個 AWS 受管許可,其中有一個受管許可指定為 AWS 預設值。除非您另有指定,否則預設 AWS 受管許可會相關聯。

客戶受管許可

客戶受管許可是您編寫和維護的受管許可,可精確指定哪些動作可在使用 共用資源的條件下執行 AWS RAM。例如,您想要限制 Amazon VPC IP Address Manager (IPAM) 集區的讀取存取權,這可協助您大規模管理 IP 地址。您可以建立客戶受管許可,讓開發人員指派 IP 地址,但無法檢視其他開發人員帳戶指派的 IP 地址範圍。您可以遵循最低權限的最佳實務,僅授予對共用資源執行任務所需的許可。

您可以在資源共享中定義資源類型的許可,並可選擇新增條件,例如全域內容金鑰和服務特定金鑰,以指定主體可存取資源的條件。這些許可可用於一或多個 AWS RAM 共用。客戶受管許可為區域特定。

AWS RAM 接受 受管許可做為輸入,為您共用的資源撰寫以資源為基礎的政策

受管許可版本

受管許可的任何變更都會顯示為該受管許可的新版本。新版本是所有新資源共用的預設值。每個受管許可一律有一個指定為預設版本的版本。當您或 AWS 建立新的受管許可版本時,您必須明確更新每個現有資源共享的受管許可。您可以在此步驟中將變更套用至資源共享之前進行評估。所有新的資源共享都會自動使用對應資源類型的受管許可新版本。

AWS 受管許可版本

AWS 會處理受 AWS 管許可的所有變更。此類變更可解決新功能或移除發現的缺點。您只能將預設受管許可版本套用至資源共用。

客戶受管許可版本

您可以處理客戶受管許可的所有變更。您可以建立新的預設版本、將較舊版本設定為預設版本,或刪除不再與任何資源共用相關聯的版本。每個客戶受管許可最多可以有五個版本。

當您建立或更新資源共享時,您只能連接指定受管許可的預設版本。如需詳細資訊,請參閱將 AWS 受管許可更新至較新版本