步驟 4:為您的 Amazon IAM執行個體建立EC2執行個體設定檔 - AWS CodeDeploy

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

步驟 4:為您的 Amazon IAM執行個體建立EC2執行個體設定檔

注意

如果您使用的是 Amazon ECS或 AWS Lambda 運算平台 ,請略過此步驟。

您的 Amazon EC2執行個體需要存取存放應用程式的 Amazon S3 儲存貯體或 GitHub 儲存庫的許可。若要啟動與 相容的 Amazon EC2執行個體 CodeDeploy,您必須建立其他IAM角色,即執行個體設定檔 。這些指示說明如何建立IAM執行個體設定檔以連接至您的 Amazon EC2執行個體。此角色可讓 CodeDeploy 代理程式存取存放應用程式的 Amazon S3 儲存貯體或 GitHub 儲存庫。

您可以使用 AWS CLI、 IAM主控台或 IAM 建立IAM執行個體設定檔APIs。

注意

您可以在啟動IAM執行個體時,將執行個體設定檔連接至 Amazon EC2執行個體,或連接至先前啟動的執行個體。如需詳細資訊,請參閱執行個體設定檔

為您的 Amazon IAM執行個體 (CLI) 建立EC2執行個體設定檔

在這些步驟中,假設您已經遵循入門 CodeDeploy 中前三個步驟的說明。

  1. 在您的開發機器上,建立名為 CodeDeployDemo-EC2-Trust.json 的文字檔案。貼上下列內容,讓 Amazon 代表您EC2執行作業:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 在相同的目錄中,建立名為 CodeDeployDemo-EC2-Permissions.json 的文字檔案。貼上下列內容:

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

    建議您將此政策限制為僅 Amazon 執行個體必須存取的 Amazon S3 儲存貯體。 EC2請務必授予包含 CodeDeploy 代理程式的 Amazon S3 儲存貯體存取權。否則,在執行個體上安裝或更新 CodeDeploy 代理程式時,可能會發生錯誤。若要僅授予IAM執行個體設定檔對 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/*" ] } ] }
    注意

    如果您想要搭配 使用IAM授權或 Amazon Virtual Private Cloud (VPC) 端點 CodeDeploy,則需要新增更多許可。如需詳細資訊,請參閱 CodeDeploy 搭配使用 Amazon Virtual Private Cloud

  3. 從相同的目錄中,呼叫 create-role命令,CodeDeployDemo-EC2-Instance-Profile根據第一個檔案中的資訊建立名為 IAM的角色:

    重要

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

    aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
  4. 從相同的目錄中,呼叫 put-role-policy 命令,根據第二個檔案中的資訊,將許可提供給名為 CodeDeployDemo-EC2-Instance-Profile 的角色:

    重要

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

    aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document file://CodeDeployDemo-EC2-Permissions.json
  5. 呼叫 attach-role-policy來授予角色 Amazon EC2 Systems Manager 許可,以便 SSM可以安裝 CodeDeploy 代理程式。如果您打算使用命令列從公有 Amazon S3 儲存貯體安裝代理程式,則不需要此政策。進一步了解安裝 CodeDeploy 代理程式

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
  6. 呼叫 create-instance-profile命令,然後呼叫 add-role-to-instance-profile命令,以建立名為 的IAM執行個體設定檔CodeDeployDemo-EC2-Instance-Profile。執行個體設定檔允許 Amazon 在執行個體首次啟動EC2時將名為 IAM的角色EC2傳遞CodeDeployDemo-EC2-Instance-Profile給 Amazon 執行個體:

    aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile aws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile

    如果您需要取得IAM執行個體設定檔的名稱,請參閱AWS CLI 參考 的 IAM區段中的 list-instance-profiles-for角色

您現在已建立IAM執行個體設定檔以連接至您的 Amazon EC2執行個體。如需詳細資訊,請參閱 IAMAmazon 使用者指南 中的 Amazon 角色EC2 EC2

為您的 Amazon IAM執行個體建立EC2執行個體設定檔 (主控台)

  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在IAM主控台的導覽窗格中,選擇政策 ,然後選擇建立政策

  3. 指定許可頁面上,選擇 JSON

  4. 移除範例JSON程式碼。

  5. 貼上以下程式碼:

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

    建議您將此政策限制為僅 Amazon 執行個體必須存取的 Amazon S3 儲存貯體。 EC2請務必授予包含 CodeDeploy 代理程式的 Amazon S3 儲存貯體存取權。否則,在執行個體上安裝或更新 CodeDeploy 代理程式時,可能會發生錯誤。若要僅授予IAM執行個體設定檔對 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/*" ] } ] }
    注意

    如果您想要搭配 使用IAM授權或 Amazon Virtual Private Cloud (VPC) 端點 CodeDeploy,則需要新增更多許可。如需詳細資訊,請參閱 CodeDeploy 搭配使用 Amazon Virtual Private Cloud

  6. 選擇 Next (下一步)

  7. 檢閱和建立頁面上的政策名稱方塊中,輸入 CodeDeployDemo-EC2-Permissions

  8. (選用) 針對 Description (描述),輸入政策的描述。

  9. 選擇 Create policy (建立政策)。

  10. 在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)

  11. 使用案例 下,選擇EC2使用案例。

  12. 選擇 Next (下一步)

  13. 在政策清單中,選取您剛建立的政策旁的核取方塊 (CodeDeployDemo-EC2-Permissions )。如有需要,請使用搜尋方塊來尋找政策。

  14. 若要使用 Systems Manager 安裝或設定 CodeDeploy 代理程式,請選取 A mazonSSMManagedInstanceCore旁的核取方塊。此 AWS 受管政策可讓執行個體使用 Systems Manager 服務核心功能。如有需要,請使用搜尋方塊來尋找政策。如果您打算使用命令列從公有 Amazon S3 儲存貯體安裝代理程式,則不需要此政策。進一步了解安裝 CodeDeploy 代理程式

  15. 選擇 Next (下一步)

  16. 名稱、檢閱和建立頁面上,在角色名稱 中,輸入服務角色的名稱 (例如,CodeDeployDemo-EC2-Instance-Profile),然後選擇建立角色

    您也可以在角色描述 中輸入此服務角色的描述

您現在已建立IAM執行個體設定檔以連接至您的 Amazon EC2執行個體。如需詳細資訊,請參閱 IAMAmazon 使用者指南 中的 Amazon 角色EC2 EC2