與特定組織或組織單位共用 AMI - Amazon Elastic Compute Cloud

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

與特定組織或組織單位共用 AMI

AWS Organizations是一種帳戶管理服務,可讓您 AWS 帳戶 將多個組織合併到您建立並集中管理的組織中。除了與指定的帳戶共享 AMI 之外,您還可以與組織或您建立的組織單位 (OU) 共享 AMI。

組織是您建立來合併並集中管理 AWS 帳戶的實體。您可以將帳戶組織為階層式、類似樹狀目錄的結構,其中的位於頂層,而組織單位在組織根下形成巢狀。每個帳戶都可以直接新增至根中,或放在階層中的其中一個 OU 中。如需帳戶類型的詳細資訊,請參閱 AWS Organizations 使用者指南中的 AWS Organizations 術語與概念

當您與組織或 OU 共用 AMI 時,所有子帳戶都可以存取 AMI。例如,在下圖中,與頂層 OU 共用 AMI (由編號 1 的箭頭表示)。在該頂層 OU 之下形成巢狀的所有 OU 和帳戶 (由編號 2 的虛線表示) 也可以存取 AMI。組織中的帳戶和虛線外的 OU (由編號 3 表示) 無法存取 AMI,因為它們不是與其共用 AMI 之 OU 的子項。

與 OU 共用 AMI,而且所有子 OU 和帳戶都可以存取 AMI。

考量事項

與特定組織或組織單位共享 AMI 時,請考慮以下項目。

  • 擁有權 – 若要共用 AMI,您的 AWS 帳戶 必須擁有 AMI。

  • 共用限制 – AMI 擁有者可以與任何組織或 OU 共用 AMI,包括他們不是其成員的組織和 OU。

    如需可在區域內共用 AMI 的最大實體數量,請參閱 Amazon EC2 服務配額

  • 標籤 – 您無法共用使用者定義的標籤 (連接至 AMI 的標籤)。當您共用 AMI 時,您的使用者定義標籤不適用 AWS 帳戶 於與 AMI 共用的組織或 OU 中的任何標籤。

  • ARN 格式 - 在命令中指定組織或 OU 時,請務必使用正確的 ARN 格式。如果只指定 ID,則您會收到錯誤,例如,如果只指定 o-123exampleou-1234-5example

    正確的 ARN 格式:

    • 組織 ARN:arn:aws:organizations::account-id:organization/organization-id

    • OU ARN:arn:aws:organizations::account-id:ou/organization-id/ou-id

    其中:

    • account-id 是 12 位數的管理帳號,例如,123456789012。如果不知道管理帳號,您可以描述組織或組織單位以取得 ARN,其中包括管理帳號。如需詳細資訊,請參閱 取得 ARN

    • organization-id 是組織 ID,例如,o-123example

    • ou-id 是組織單位 ID,例如,ou-1234-5example

    如需 ARN 格式的詳細資訊,請參閱 IAM 使用者指南中的 Amazon 資源名稱 (ARN)

  • 加密和金鑰 – 您可以共用未加密和加密快照所支援的 AMI。

    • 加密快照必須透過客戶受管金鑰進行加密。您無法共用由使用預設 AWS 受管理金鑰加密的快照支援的 AMI。

    • 如果您共用由加密快照支援的 AMI,您必須允許組織或 OU 使用用於加密快照的客戶管理金鑰。 如需詳細資訊,請參閱允許組織和 OU 使用 KMS 金鑰

  • 區域 - AMI 是一種區域性的資源。共享 AMI 後,只能從共享 AMI 的區域中使用 AMI。若要讓 AMI 在其他區域可用,請將 AMI 複製到該區域,然後共用。如需詳細資訊,請參閱 複製 AMI

  • 使用 - 共享 AMI 後,使用者只能從 AMI 啟動執行個體。他們無法刪除、共用或修改它。不過,他們在使用您的 AMI 啟動了執行個體之後,就可以從其啟動的執行個體建立 AMI。

  • 帳單 — 當其 AWS 帳戶 他人使用您的 AMI 啟動執行個體時,不會向您收取費用。使用 AMI 啟動執行個體的帳戶會根據它們啟動的執行個體計費。

允許組織和 OU 使用 KMS 金鑰

如果您共用由加密快照支援的 AMI,您也必須允許組織或 OU 使用 AWS KMS keys 用來加密快照的 AMI。

使用aws:PrincipalOrgID和索aws:PrincipalOrgPaths引鍵來比較要求原則中 AWS Organizations 路徑的主參與者路徑的路徑。該主體可以是使用者、IAM 角色、聯合身分使用者或 AWS 帳戶 根使用者。在政策中,此條件金鑰可確保申請者是 AWS Organizations中所指定組織根或中 OU 內的帳戶成員。如需更多條件陳述式範例,請參閱《IAM 使用者指南》中的 aws:PrincipalOrgIDaws:PrincipalOrgPaths

如需有關編輯金鑰原則的詳細資訊,請參閱AWS Key Management Service 開發人員指南中的允許其他帳戶中的使用者使用 KMS 金鑰

若要許可組織或 OU 使用 KMS 金鑰,請將以下陳述式新增至金鑰政策。

{ "Sid": "Allow access for organization root", "Effect": "Allow", "Principal": "*", "Action": [ "kms:Describe*", "kms:List*", "kms:Get*", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-123example" } } }

若要與多個 OU 共用 KMS 金鑰,您可以使用類似下列範例的政策。

{ "Sid": "Allow access for specific OUs and their descendants", "Effect": "Allow", "Principal": "*", "Action": [ "kms:Describe*", "kms:List*", "kms:Get*", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-123example" }, "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-123example/r-ab12/ou-ab12-33333333/*", "o-123example/r-ab12/ou-ab12-22222222/*" ] } } }

共用 AMI

您可以使用 Amazon EC2 主控台或與組織或 OU 共用 AMI。 AWS CLI

共用 AMI (主控台)

使用主控台與組織或 OU 共用 AMI
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 AMIs (AMI)。

  3. 在清單中選取您的 AMI,然後選取 Actions (動作)、Edit AMI permissions (編輯 AMI 許可)。

  4. AMI availability (AMI 可用性) 下,選擇 Private (私有)。

  5. Shared organizations/OUs (共用組織/OU) 旁邊,選擇 Add organization/OU ARN (新增組織/OU ARN)。

  6. 對於 Organization/OU ARN (組織/OU ARN),輸入要與之共用 AMI 的組織 ARN 或 OU ARN,然後選擇 Share AMI (共用 AMI)。請注意,您必須指定完整的 ARN,而不只是 ID。

    若要與多個組織或 OU 共用此 AMI,請重覆此步驟,直到新增所有需要的組織或 OU。

    注意

    共享 AMI 時,不需要共享 AMI 所參考的 Amazon EBS 快照。需要共用的只有 AMI 本身,而且系統可自動讓執行個體存取參考的 Amazon EBS 快照,以進行啟動。不過,您確實需要共用用來加密 AMI 參照之快照的 KMS 金鑰。 如需詳細資訊,請參閱允許組織和 OU 使用 KMS 金鑰

  7. 完成後,請選擇 Save changes (儲存變更)。

  8. (選用) 若要查看與其共用 AMI 的組織或 OU,請從清單中選取 AMI,然後選取 Permissions (許可) 索引標籤,向下滾動至 Shared organizations/OUs (共用的組織/OU)。若要尋找與您共用的 AMI,請參閱尋找共享 AMI

共用 AMI (視窗工具 PowerShell)

使用Edit-EC2ImageAttribute命令 (Windows 工具 PowerShell) 來共用 AMI,如下列範例所示。

與組織或 OU 共用 AMI

下列命令可將所指定 AMI 的啟動許可授予指定的組織。

PS C:\> Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission -OperationType add -OrganizationArn "arn:aws:organizations::123456789012:organization/o-123example"
注意

共享 AMI 時,不需要共享 AMI 所參考的 Amazon EBS 快照。需要共用的只有 AMI 本身,而且系統可自動讓執行個體存取參考的 Amazon EBS 快照,以進行啟動。不過,您的確需要共用 KMS 金鑰,而這些金鑰用來加密 AMI 參考的快照。如需詳細資訊,請參閱允許組織和 OU 使用 KMS 金鑰

停止與組織或 OU 共用 AMI

下列命令可從指定的組織移除所指定 AMI 的啟動許可。

PS C:\> Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission -OperationType remove -OrganizationArn "arn:aws:organizations::123456789012:organization/o-123example"

停止與所有組織、OU 和共用 AMI AWS 帳戶

下列命令可從指定的 AMI 移除所有的公有和明確啟動許可。請注意,AMI 擁有者一律具備啟動許可,因此不受此命令影響。

PS C:\> Reset-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission

共用 AMI (AWS CLI)

使用 modify-image-attribute 命令 (AWS CLI) 來共用 AMI。

若要與組織共用 AMI,請使用 AWS CLI

modify-image-attribute 命令可將所指定 AMI 的啟動許可授予給指定組織。請注意,您必須指定完整的 ARN,而不只是 ID。

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Add=[{OrganizationArn=arn:aws:organizations::123456789012:organization/o-123example}]"
若要使用與 OU 共用 AMI AWS CLI

此命modify-image-attribute令會將指定 AMI 的啟動權限授與指定的 OU。請注意,您必須指定完整的 ARN,而不只是 ID。

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Add=[{OrganizationalUnitArn=arn:aws:organizations::123456789012:ou/o-123example/ou-1234-5example}]"
注意

共享 AMI 時,不需要共享 AMI 所參考的 Amazon EBS 快照。需要共用的只有 AMI 本身,而且系統可自動讓執行個體存取參考的 Amazon EBS 快照,以進行啟動。不過,您的確需要共用 KMS 金鑰,而這些金鑰用來加密 AMI 參考的快照。如需詳細資訊,請參閱允許組織和 OU 使用 KMS 金鑰

停止共用 AMI

您可以使用 Amazon EC2 主控台或停 AWS CLI 止與組織或 OU 共用 AMI。

停止共用 AMI (主控台)

使用主控台停止與組織或 OU 共用 AMI
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 AMIs (AMI)。

  3. 在清單中選取您的 AMI,然後選取 Actions (動作)、Edit AMI permissions (編輯 AMI 許可)。

  4. Shared organizations/OUs (共用的組織/OU),選取要停止與其共用 AMI 的組織或 OU,然後選取 Remove Selected (移除所選項)。

  5. 完成後,請選擇 Save changes (儲存變更)。

  6. (選用) 若要確認您已停止與組織或 OU 共用 AMI,請從清單中選取此 AMI,然後選取Permissions (許可) 索引標籤,向下滾動至 Shared organizations/OUs (共用的組織/OU)。

停止共用 AMI (AWS CLI)

使用modify-image-attributereset-image-attribute指令 (AWS CLI) 停止共用 AMI。

若要停止與組織或 OU 共用 AMI,請使用 AWS CLI

此命modify-image-attribute令會從指定組織移除指定 AMI 的啟動權限。請注意,您必須指定 ARN。

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Remove=[{OrganizationArn=arn:aws:organizations::123456789012:organization/o-123example}]"
若要停止與所有組織、OU 共用 AMI,並 AWS 帳戶 使用 AWS CLI

reset-image-attribute 命令可從指定的 AMI 移除所有的公有和明確啟動許可。請注意,AMI 擁有者始終具備啟動許可,因此不受此命令影響。

aws ec2 reset-image-attribute \ --image-id ami-0abcdef1234567890 \ --attribute launchPermission
注意

如果特定帳戶位於與其共用 AMI 的組織或 OU 中,則無法停止與該帳戶共用 AMI。如果您嘗試透過移除帳戶的啟動許可來停止共用 AMI,Amazon EC2 會傳回成功訊息。不過,會繼續與該帳戶共用 AMI。

查看與之共用 AMI 的組織和 OU

您可以使用 Amazon EC2 主控台或檢 AWS CLI 查您已與哪些組織和 OU 共用您的 AMI。

查看與之共用 AMI 的組織和 OU (主控台)

使用主控台檢查已與哪些組織和 OU 共用 AMI
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 AMIs (AMI)。

  3. 從清單中選取 AMI,選取 Permissions (許可) 索引標籤,然後向下滾動至 Shared organizations/OUs (共用的組織/OU)。

    若要尋找與您共用的 AMI,請參閱尋找共享 AMI

查看與之共用 AMI 的組織和 OU (AWS CLI)

您可以使用 describe-image-attribute 命令 (AWS CLI) 和 launchPermission 屬性,檢查已與哪些組織和 OU 共用您的 AMI。

若要檢查您使用的 AMI 與哪些組織和 OU 共用 AWS CLI

describe-image-attribute 命令會描述所指定 AMI 的 launchPermission 屬性,並傳回您與其共用 AMI 的組織和 OU。

aws ec2 describe-image-attribute \ --image-id ami-0abcdef1234567890 \ --attribute launchPermission

回應範例

{ "ImageId": "ami-0abcdef1234567890", "LaunchPermissions": [ { "OrganizationalUnitArn": "arn:aws:organizations::111122223333:ou/o-123example/ou-1234-5example" } ] }

取得 ARN

組織和組織單位 ARN 包含 12 位數的管理帳號。如果不知道管理帳號,您可以描述組織或組織單位以取得其中每一個的 ARN。在下列範例中,123456789012 是管理帳號。

在取得 ARN 之前,您必須具有描述組織和組織單位的許可。下列政策提供必要的許可。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "organizations:Describe*" ], "Resource": "*" } ] }
取得組織的 ARN

使用 describe-organization 命令和設定為 'Organization.Arn'--query 參數,以只傳回組織 ARN。

aws organizations describe-organization --query 'Organization.Arn'

回應範例

"arn:aws:organizations::123456789012:organization/o-123example"
取得組織單位的 ARN

使用 describe-organizational-unit 命令,指定 OU ID,並將 --query 參數設定為 'OrganizationalUnit.Arn',以只傳回組織單位 ARN。

aws organizations describe-organizational-unit --organizational-unit-id ou-1234-5example --query 'OrganizationalUnit.Arn'

回應範例

"arn:aws:organizations::123456789012:ou/o-123example/ou-1234-5example"