本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在不同的 AWS 帳戶中部署應用程式
Organizations 通常會有多個用於不同用途的 AWS 帳戶 (例如,一個用於系統管理工作,另一個用於開發、測試和生產工作,或一個與開發和測試環境相關聯,另一個與生產環境相關聯)。
雖然您可能會在不同的帳戶中執行相關工作,但 CodeDeploy 部署群組和其部署的 Amazon EC2 執行個體會嚴格關聯到建立這些執行個體的帳戶。無法作的事如,新增在帳戶啟動的執行個體至其他帳戶的部署群組中。
假設您有兩個 AWS 帳戶:您的開發帳戶和生產帳戶。您主要在開發帳戶中工作,但您希望能夠在生產帳戶中啟動部署,同時不需要完整的登入資料確認,也不用登出開發帳戶和登入生產帳戶。
遵循跨帳戶組態步驟後,您可以啟動屬於您組織的另一個帳戶的部署,同時無需使用該帳戶的完整登入資料。您可以執行此操作,部分是使用 AWS Security Token Service (AWS STS) 提供的功能,該功能授予您對該帳戶的臨時訪問權限。
步驟 1:在任一帳戶中建立 S3 儲存貯體
無論是開發帳戶或生產帳戶:
-
如果您尚未這麼做,請建立 Amazon S3 儲存貯體,在其中存放生產帳戶的應用程式修訂版本。如需詳細資訊,請參閱在 Amazon S3 中建立儲存貯體。您甚至可以讓兩個帳戶使用相同的儲存貯體以及應用程式修改版,部署相同檔案到您的生產環境,讓您測試和驗證開發帳戶。
步驟 2:將 Amazon S3 儲存貯體許可授與生產帳戶的 IAM 執行個體設定檔
如果您在步驟 1 中建立的 Amazon S3 儲存貯體位於您的生產帳戶中,則不需要執行此步驟。稍後您假設的角色可以存取此儲存貯體,因為它也在生產帳戶中了。
如果您在開發帳戶中建立 Amazon S3 儲存貯體,請執行下列動作:
-
在生產帳戶中,建立 IAM 執行個體設定檔。如需相關資訊,請參閱步驟 4:為您的 Amazon IAM執行個體建立EC2執行個體設定檔。
注意
記下此 IAM 執行個體設定檔的 ARN。您將需要新增它到您接下來建立的跨儲存貯體政策中。
-
在開發帳戶中,將您在開發帳戶中建立的 Amazon S3 儲存貯體存取權授與您剛在生產帳戶中建立的 IAM 執行個體設定檔。如需詳細資訊,請參閱範例 2:授與跨帳戶值區權限的值區擁有者。
在完成授予跨帳戶儲存貯體權限許可的過程中,請注意以下事項:
-
在範例攻略中,帳戶 A 代表您的開發帳戶,帳戶 B 代表您的生產帳戶。
-
當您 執行帳戶 A (開發帳戶) 任務、修改以下儲存貯體政策以授與跨帳戶許可,而不使用範例政策,請參閱逐步解說。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Cross-account permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account-id
:role/role-name
" }, "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::bucket-name
/*" ] } ] }account t-id
代表您剛建立 IAM 執行個體設定檔的生產帳戶的帳戶編號。角色名稱
代表您剛建立的 IAM 執行個體設定檔的名稱。bucket-name
表示您在步驟一中建立的儲存貯體名稱。請確認在您的儲存貯體名稱後含有的/*
,提供對儲存貯體內每個文件的存取權限。
-
步驟 3:在生產帳戶中建立資源與跨帳戶角色
在您的生產帳戶中:
-
使用本指南中的指示建立 CodeDeploy 資源,包括應用程式、部署群組、部署組態、Amazon EC2 執行個體、Amazon EC2 執行個體設定檔、服務角色等。
-
建立其他角色 (跨帳戶 IAM 角色),讓開發帳戶中的使用者可以假設在此生產帳戶中執行 CodeDeploy 作業。
使用逐步解說:使用 IAM 角色指導跨 AWS 帳戶委派存取權,以協助您建立跨帳戶角色。除了將逐步解說中的範例權限新增至您的政策文件,您應該至少將下列兩個 AWS 提供的原則附加至該角色:
-
AmazonS3FullAccess
:僅在 S3 儲存貯體位於開發帳戶時才需要。提供假定的生產帳戶角色,以完整存取開發帳戶中 Amazon S3 服務和資源 (其中存放修訂)。 -
AWSCodeDeployDeployerAccess
:可讓使用者註冊和部署修訂。
如果您想要建立以及管理部署群組以及不只是初始化部署,新增
AWSCodeDeployFullAccess
原則而不是AWSCodeDeployDeployerAccess
原則。如需使用 IAM 受管政策授與 CodeDeploy 任務許可的詳細資訊,請參閱AWS 的受管 (預先定義) 政策 CodeDeploy。您可以附加原則,如果您想要在其他 AWS 服務執行工作,使用此跨帳戶角色。
-
重要
建立跨帳戶 IAM 角色時,請記下存取生產帳戶所需的詳細資料。
若要使用 AWS Management Console 來切換角色,您必須提供下列其中一項:
-
URL 用於啟動生產帳戶與假設角色認證。您將在 檢視 頁面上找到URL,其顯示在跨帳戶角色建立程序的末端。
-
跨帳戶角色的名稱及帳戶 ID 數或別名都可以。
若要使用 AWS CLI 來切換角色,您必須提供下列項目:
-
跨帳戶角色的 ARN,您將假設。
步驟 4:將應用程式修訂版上傳到 Amazon S3 儲存貯體
在您建立 Amazon S3 儲存貯體的帳戶中:
-
將您的應用程式修訂版上傳到 Amazon S3 儲存貯體。如需相關資訊,請參閱將 的修訂推送 CodeDeploy 至 Amazon S3 (僅限EC2/內部部署部署)。
步驟 5:假設跨帳戶角色並部署應用程式
在開發帳戶中,您可以使用 AWS CLI 或 AWS Management Console 來承擔跨帳戶角色,並在生產帳戶中啟動部署。
如需有關如何使用切 AWS Management Console 換角色和初始化部署的指示,請參閱切換至角色 (AWS Management Console) 和建立 EC2/內部部署運算平台部署 (主控台)。
如需如何使用 AWS CLI 來擔任跨帳戶角色和啟動部署的指示,請參閱切換至 IAM 角色 (AWS Command Line Interface) 和建立 EC2/內部部署運算平台部署 (CLI)。
若要取得有關使用角色的更多資訊 AWS STS,請參閱《AWS Security Token Service 使用指南》AssumeRole中的〈指AWS CLI 令參考〉中的〈assume-role〉中的〈〉。
相關主題: