使用 register-on-premises-instance 命令 (IAM 使用者 ARN) 來註冊內部部署執行個體 - AWS CodeDeploy

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

使用 register-on-premises-instance 命令 (IAM 使用者 ARN) 來註冊內部部署執行個體

重要

不建議使用IAM使用者註冊執行個體,因為它使用靜態 (永久) 憑證進行身分驗證。為了提高安全性,我們建議您使用暫時性憑證註冊執行個體以進行身分驗證。如需詳細資訊,請參閱使用命 register-on-premises-instance 令 (IAM 工作階段 ARN) 註冊內部部署執行個體

重要

確保您已制定輪換IAM使用者存取金鑰 (永久憑證) 的計劃。如需詳細資訊,請參閱輪換存取金鑰

請依照這些指示,使用靜態IAM使用者憑證進行身分驗證,來設定內部部署執行個體,並註冊和標記 CodeDeploy 它。

步驟 1:建立內部部署執行個體IAM的使用者

建立內部部署執行個體用來驗證並與 互動IAM的使用者 CodeDeploy。

重要

您必須為每個參與的內部部署執行個體建立個別IAM使用者。如果您嘗試在多個內部部署執行個體中重複使用個別IAM使用者,則可能無法成功向 註冊或標記這些內部部署執行個體 CodeDeploy。部署現場部署執行個體也許可能會卡在永久擱置狀態或一起失敗。

建議您為IAM使用者指派可識別其目的的名稱,例如 CodeDeployUser-OnPrem。

您可以使用 AWS CLI 或 IAM主控台來建立IAM使用者。如需詳細資訊,請參閱在 AWS 帳戶中建立IAM使用者。

重要

無論您是使用 AWS CLI 或 IAM主控台來建立新IAM使用者,請記下ARN提供給使用者的使用者。您之後將需要用到這個資訊 步驟 4:將組態檔案新增至內部部署執行個體步驟 8:向 註冊內部部署執行個體 CodeDeploy

步驟 2:將許可指派給IAM使用者

如果您的內部部署執行個體將從 Amazon S3 儲存貯體部署應用程式修訂版,您必須將與這些儲存貯體互動的許可指派給IAM使用者。您可以使用 AWS CLI 或 IAM主控台來指派許可。

注意

如果您只會從 GitHub 儲存庫部署應用程式修訂版,請略過此步驟並直接前往 步驟 3:取得IAM使用者憑證。(您仍然需要您在 中建立IAM的使用者的相關資訊步驟 1:建立內部部署執行個體IAM的使用者。 它將用於後續步驟。)

指派許可 (CLI)
  1. 在您用來呼叫 的 Amazon EC2執行個體或裝置上建立具有下列政策內容的檔案 AWS CLI。為檔案命名如 CodeDeploy-OnPrem-Permissions.json,然後儲存檔案。

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    注意

    建議您將此政策限制為僅內部部署執行個體需要存取的 Amazon S3 儲存貯體。如果您限制此政策,請務必同時授予包含 AWS CodeDeploy 代理程式的 Amazon S3 儲存貯體存取權。否則,每當 CodeDeploy 代理程式安裝在或更新相關聯的內部部署執行個體時,就可能會發生錯誤。

    例如:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
  2. 呼叫 put-user-policy命令,指定IAM使用者名稱 (使用 --user-name選項)、政策名稱 (使用 --policy-name選項),以及新建立的政策文件路徑 (使用 --policy-document選項)。例如,假設 CodeDeploy-OnPrem-Permissions.json 檔案與您正呼叫的命令位於相同的目錄 (資料夾):

    重要

    請確認在檔案名稱之前包含 file://。這是此命令必要項目。

    aws iam put-user-policy --user-name CodeDeployUser-OnPrem --policy-name CodeDeploy-OnPrem-Permissions --policy-document file://CodeDeploy-OnPrem-Permissions.json
指派許可權限 (主控台)
  1. 在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇 Policies (政策),然後選擇 Create Policy (建立政策)。(出現 Get Started (開始使用) 按鈕時先選擇它,然後選擇 Create Policy (建立政策)。)

  3. 建立您自己的政策旁邊,選擇選取

  4. 政策名稱 方塊中,輸入此政策的名稱。(例如,CodeDeploy-OnPrem-Permissions)。

  5. 政策文件方塊中,輸入或貼上下列許可表達式,允許 代表IAM使用者將政策中指定之任何 Amazon S3 AWS CodeDeploy 儲存貯體的應用程式修訂版本部署至內部部署執行個體:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
  6. 選擇 建立政策

  7. 在導覽窗格中,選擇使用者

  8. 在使用者清單中,瀏覽至 並選擇您在 中建立的IAM使用者名稱步驟 1:建立內部部署執行個體IAM的使用者

  9. Permissions (許可) 標籤上,Managed Policies (受管政策) 中,選擇 Attach Policy (連接政策)

  10. 選擇政策的名稱 CodeDeploy-OnPrem-Permissions,然後選擇 Attach Policy (附加政策)

步驟 3:取得IAM使用者憑證

取得IAM使用者的秘密金鑰 ID 和秘密存取金鑰。您將需要使用他們於 步驟 4:將組態檔案新增至內部部署執行個體。您可以使用 AWS CLI 或 IAM主控台來取得秘密金鑰 ID 和秘密存取金鑰。

注意

如果您已經有私密金鑰 ID 和私密存取金鑰,請略過此步驟並直接前往 步驟 4:將組態檔案新增至內部部署執行個體

如果使用者想要與 AWS 外部互動,則需要程式設計存取權 AWS Management Console。授予程式設計存取權的方式取決於存取 的使用者類型 AWS。

若要授與使用者程式設計存取權,請選擇下列其中一個選項。

哪個使用者需要程式設計存取權? By

人力身分

(在 IAM Identity Center 中管理的使用者)

使用暫時憑證簽署對 AWS CLI AWS SDKs、 或 的程式設計請求 AWS APIs。

請依照您要使用的介面所提供的指示操作。

IAM 使用暫時憑證簽署對 AWS CLI AWS SDKs、 或 的程式設計請求 AWS APIs。 遵循 IAM 使用者指南 中的使用臨時憑證與 AWS 資源的指示。
IAM

(不建議使用)

使用長期憑證簽署對 AWS CLI AWS SDKs、 或 的程式設計請求 AWS APIs。

請依照您要使用的介面所提供的指示操作。

若要取得憑證 (CLI)
  1. 呼叫 list-access-keys命令,指定IAM使用者的名稱 (使用 --user-name選項),並僅查詢存取金鑰 IDs(使用 --query--output選項)。例如:

    aws iam list-access-keys --user-name CodeDeployUser-OnPrem --query "AccessKeyMetadata[*].AccessKeyId" --output text
  2. 如果輸出中未顯示任何金鑰,或輸出中僅顯示一個金鑰的相關資訊,請呼叫 create-access-key命令,指定IAM使用者名稱 (使用 --user-name選項):

    aws iam create-access-key --user-name CodeDeployUser-OnPrem

    在呼叫輸出的 create-access-key 命令中,備註 AccessKeyId 的值與 SecretAccessKey 欄位。您將需要這個資訊步驟 4:將組態檔案新增至內部部署執行個體

    重要

    這是唯一您可以存取此私密存取金鑰的時間。如果您忘記或遺失存取此私密存取金鑰,則您需要產生新的私密存取金鑰,請遵循 步驟 3:取得IAM使用者憑證 中的步驟執行。

  3. 如果已列出兩個存取金鑰,您必須呼叫 delete-access-key命令,指定IAM使用者名稱 (使用 --user-name選項) 和要刪除的存取金鑰 ID (使用 --access-key-id選項),以刪除其中一個存取金鑰。接著呼叫 create-access-key 命令,如此步驟中先前所述。以下範例呼叫 delete-access-key 命令:

    aws iam delete-access-key --user-name CodeDeployUser-OnPrem --access-key-id access-key-ID
    重要

    如果您呼叫 delete-access-key命令來刪除其中一個存取金鑰,且內部部署執行個體已如 中所述使用此存取金鑰步驟 4:將組態檔案新增至內部部署執行個體,您將需要步驟 4:將組態檔案新增至內部部署執行個體再次遵循 中的指示,以指定與此IAM使用者相關聯的不同存取金鑰 ID 和秘密存取金鑰。其他,任何部署到現場部署執行個體可能卡在永久擱置狀態或一起失敗。

如何取得登入資料 (主控台)
    1. 在 開啟IAM主控台https://console.aws.amazon.com/iam/

    2. 如果未顯示於使用者清單,於導覽窗格請選擇 Users (使用者)

    3. 在使用者清單中,瀏覽至 並選擇您在 中建立的IAM使用者名稱步驟 1:建立內部部署執行個體IAM的使用者

  1. Security credentials (安全登入資料) 標籤,如果沒有金鑰或只有列出一個金鑰,請選擇 Create access key (建立存取金鑰)

    如果列出兩個存取金鑰,則您必須刪除其中一個。選擇其中一個存取金鑰旁的 Delete (刪除),然後選擇 Create access key (建立存取金鑰)

    重要

    如果您選擇其中一個存取金鑰旁的刪除,且內部部署執行個體已如 中所述使用此存取金鑰步驟 4:將組態檔案新增至內部部署執行個體,則需要步驟 4:將組態檔案新增至內部部署執行個體再次遵循 中的指示,以指定與此IAM使用者相關聯的不同存取金鑰 ID 和秘密存取金鑰。否則,部署到現場部署執行個體可能卡在永久擱置狀態或一起失敗。

  2. 選擇 顯示 和備註的存取金鑰 ID 和私密存取金鑰。下一個步驟您將需要這個資訊。或者,您可以選擇 下載 .csv 檔案,儲存存取金鑰ID以及秘密存取金鑰的副本。

    重要

    除非您註記或下載登入資料,否則這將是唯一一次您可以存取到此祕密存取金鑰的機會。如果您忘記或遺失存取此私密存取金鑰,則您需要產生新的私密存取金鑰,請遵循 步驟 3:取得IAM使用者憑證 中的步驟執行。

  3. 選擇關閉以返回使用者 IAM User Name 頁面。

步驟 4:將組態檔案新增至內部部署執行個體

使用 root 或管理員許可,將組態檔案新增至現場部署執行個體。此組態檔案將用於宣告IAM使用者憑證和要用於 的目標 AWS 區域 CodeDeploy。該檔案必須新增至現場部署執行個體上的特定位置。檔案必須包含IAM使用者的 ARN、秘密金鑰 ID、秘密存取金鑰和目標 AWS 區域。這個檔案必須遵循特定的格式。

  1. 在RHEL內部部署執行個體的下列位置建立名為 codedeploy.onpremises.yml(適用於 Ubuntu 伺服器或內部部署執行個體) 或 conf.onpremises.yml(適用於 Windows Server 內部部署執行個體) 的檔案:

    • 對於 Ubuntu 伺服器: /etc/codedeploy-agent/conf

    • 對於 Windows Server: C:\ProgramData\Amazon\CodeDeploy

  2. 使用文字編輯器,將下列資訊新增至新建立的 codedeploy.onpremises.ymlconf.onpremises.yml 檔案:

    --- aws_access_key_id: secret-key-id aws_secret_access_key: secret-access-key iam_user_arn: iam-user-arn region: supported-region

    其中:

    重要

    如果您選擇在 中的其中一個存取金鑰旁邊刪除步驟 3:取得IAM使用者憑證,且您的內部部署執行個體已使用相關聯的存取金鑰 ID 和秘密存取金鑰,則需要遵循 中的指示步驟 4:將組態檔案新增至內部部署執行個體指定與此IAM使用者相關聯的不同存取金鑰 ID 和秘密存取金鑰。其他,任何部署到您的現場部署執行個體可能卡在永久擱置狀態或一起失敗。

步驟 5:安裝和設定 AWS CLI

在內部部署執行個體 AWS CLI 上安裝和設定 。( AWS CLI 將在 中使用 步驟 7:安裝 CodeDeploy 代理程式 來下載代理程式,並在內部部署執行個體上安裝 CodeDeploy 代理程式。)

  1. 若要在內部部署執行個體 AWS CLI 上安裝 ,請遵循 AWS Command Line Interface 使用者指南 中的使用 進行設定 AWS CLI中的指示。

    注意

    CodeDeploy 使用內部部署執行個體的 命令已在 1.7.19 版中推出 AWS CLI。如果您有 AWS CLI 已安裝的 版本,您可以呼叫 來檢查其版本aws --version

  2. 若要在內部部署執行個體 AWS CLI 上設定 ,請遵循 AWS Command Line Interface 使用者指南 中的設定 AWS CLI 中的指示。

    重要

    當您設定 時 AWS CLI (例如,透過呼叫 aws configure命令),除了 中指定的存取許可之外,請務必指定至少具有下列 AWS 存取許可之IAM使用者的秘密金鑰 ID 和秘密存取金鑰設定內部部署執行個體的前提。這可讓您在內部部署執行個體下載並安裝 CodeDeploy 代理程式:

    { "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }

    這些存取權限可以指派給您在 中建立IAM的使用者,步驟 1:建立內部部署執行個體IAM的使用者也可以指派給不同的IAM使用者。若要將這些許可指派給IAM使用者,請遵循 中的指示步驟 1:建立內部部署執行個體IAM的使用者,使用這些存取許可,而不是該步驟中的許可。

步驟 6:設定AWS_REGION環境變數 (RHEL僅限 Ubuntu 伺服器 和 )

如果您未在內部部署執行個體RHEL上執行 Ubuntu Server 或 ,請略過此步驟並直接前往 步驟 7:安裝 CodeDeploy 代理程式

在 Ubuntu 伺服器或RHEL內部部署執行個體上安裝 CodeDeploy 代理程式,並在新版本推出時讓執行個體更新 CodeDeploy 代理程式。您可以透過將執行個體上的AWS_REGION環境變數設定為 支援的其中一個區域的識別碼來執行此操作 CodeDeploy。建議您將 值設定為 CodeDeploy 應用程式、部署群組和應用程式修訂版所在的區域 (例如 us-west-2)。如需區域清單,請參閱中的區域和端點AWS 一般參考

若要設定環境變數,請從終端機呼叫下列項目:

export AWS_REGION=supported-region

位置 supported-region 是區域識別符 (例如 us-west-2)。

步驟 7:安裝 CodeDeploy 代理程式

在內部部署執行個體上安裝 CodeDeploy 代理程式:

步驟 8:向 註冊內部部署執行個體 CodeDeploy

此步驟中的指示,假設您正在從現場部署執行個體本身註冊現場部署執行個體。您可以從 AWS CLI 已安裝並設定 的個別裝置或執行個體註冊內部部署執行個體,如 中所述步驟 5:安裝和設定 AWS CLI

使用 AWS CLI 向 註冊內部部署執行個體, CodeDeploy 以便在部署中使用。

  1. 在使用 之前 AWS CLI,您將需要在 中IAM建立ARN的使用者的使用者步驟 1:建立內部部署執行個體IAM的使用者。如果您還沒有使用者 ARN,請呼叫 get-user 命令,指定IAM使用者的名稱 (使用 --user-name選項),並僅查詢使用者 ARN(使用 --query--output選項):

    aws iam get-user --user-name CodeDeployUser-OnPrem --query "User.Arn" --output text
  2. 呼叫 register-on-premises-instance 命令,並指定:

    • 唯一識別現場部署執行個體的名稱 (使用 --instance-name 選項)。

      重要

      為了幫助鑑別現場部署執行個體,特別是偵錯程序,我們強烈建議您指定一個名稱,其對應到一些現場部署執行個體的獨特字元 (例如,序列數字或一個內部資產鑑別者,若適用的話)。如果您將MAC地址指定為名稱,請注意MAC地址包含 CodeDeploy 不允許的字元,例如冒號 (:)。針對允許使用的字元清單,請參閱 CodeDeploy 配額

    • 您在 中建立IAM的使用者 ARN 步驟 1:建立內部部署執行個體IAM的使用者(使用 --iam-user-arn選項)。

      例如:

      aws deploy register-on-premises-instance --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem

步驟 9:標記內部部署執行個體

您可以使用 AWS CLI 或 CodeDeploy 主控台來標記內部部署執行個體。(CodeDeploy 在部署期間使用內部部署執行個體標籤來識別部署目標。)

標記內部部署執行個體 (CLI)
  • 呼叫 add-tags-to-on-premises-instances 命令,指定:

    • 唯一識別現場部署執行個體的名稱 (使用 --instance-names 選項)。

    • 現場部署執行個體標籤金鑰的名稱,以及您想使用的標籤值 (使用--tags選項)。您必須同時指定名稱和值。 CodeDeploy 不允許僅具有值的內部部署執行個體標籤。

      例如:

      aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem
若要標記現場部署執行個體 (主控台)
  1. 登入 AWS Management Console 並在 https://console.aws.amazon.com/codedeploy 開啟 CodeDeploy 主控台。

    注意

    使用您在 中設定的相同使用者登入入門 CodeDeploy

  2. 從 CodeDeploy 功能表中,選擇內部部署執行個體

  3. 在現場部署執行個體的清單中,選擇箭號到下一個您想標籤的內部部署執行個體。

  4. 在標籤清單中,選擇或輸入的標籤金鑰或標籤值。在您輸入標籤金鑰及標籤值後,將顯示另一個資料列。您最多可重複此標籤 10 次。若要移動標籤,請選擇刪除圖示 ( The delete icon. )。

  5. 新增標籤後,選擇 Update Tags (更新標籤)

步驟 10:將應用程式修訂版部署至內部部署執行個體

您現在已準備好將應用程式修訂部署至已註冊和加上標籤的現場部署執行個體。

您以類似將應用程式修訂部署至 Amazon 執行個體的方式,將應用程式修訂部署至內部部署EC2執行個體。如需說明,請參閱 使用 建立部署 CodeDeploy。這些指示含有一個連接到先決條件的連結,包含建立應用程式、建立部署群組以及準備應用程式修改版。如果您需要簡單的範例應用程式修訂來部署,您可以建立一個,如教學課程:使用 CodeDeploy (Windows Server、Ubuntu Server 或 Red Hat Enterprise Linux) 將應用程式部署至內部部署執行個體 中的步驟 2:建立範例應用程式修訂所述。

重要

如果您在建立目標為內部部署執行個體的部署群組時重複使用 CodeDeploy 服務角色,則必須包含 Tag:get* 至服務角色政策陳述式Action的部分。如需詳細資訊,請參閱步驟 2:建立服務角色 CodeDeploy

步驟 11:追蹤內部部署執行個體的部署

在您將應用程式修訂部署至已註冊和加入標籤的現場部署執行個體後,您可以追蹤部署的進度。

您可以追蹤內部部署執行個體的部署,方式類似於追蹤 Amazon EC2執行個體的部署。如需說明,請參閱「檢視 CodeDeploy 部署詳情 」。