4단계: Amazon IAM 인스턴스의 EC2 인스턴스 프로파일 생성 - AWS CodeDeploy

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

4단계: Amazon IAM 인스턴스의 EC2 인스턴스 프로파일 생성

참고

Amazon ECS 또는 AWS Lambda 컴퓨팅 플랫폼 를 사용하는 경우 이 단계를 건너뜁니다.

Amazon EC2 인스턴스는 애플리케이션이 저장된 Amazon S3 버킷 또는 GitHub 리포지토리에 액세스할 수 있는 권한이 필요합니다. 와 호환되는 Amazon EC2 인스턴스를 시작하려면 인스턴스 프로파일 인 추가 IAM 역할을 생성 CodeDeploy해야 합니다. 이 지침은 Amazon IAM 인스턴스에 연결할 EC2 인스턴스 프로파일을 생성하는 방법을 보여줍니다. 이 역할은 CodeDeploy 에이전트에게 애플리케이션이 저장된 Amazon S3 버킷 또는 리 GitHub 포지토리에 액세스할 수 있는 권한을 부여합니다.

AWS CLI, IAM 콘솔 또는 를 사용하여 IAM 인스턴스 프로파일을 생성할 수 있습니다IAMAPIs.

참고

IAM 인스턴스 프로파일을 시작할 때 Amazon EC2 인스턴스에 연결하거나 이전에 시작된 인스턴스에 연결할 수 있습니다. 자세한 내용은 인스턴스 프로파일을 참조하세요.

Amazon IAM 인스턴스에 대한 EC2 인스턴스 프로파일 생성(CLI)

이 단계에서는 시작하기 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 에이전트가 인스턴스에 설치되거나 업데이트될 때 오류가 발생할 수 있습니다. Amazon S3의 일부 CodeDeploy 리소스 키트 버킷에만 IAM 인스턴스 프로파일 액세스 권한을 부여하려면 다음 정책을 사용하고 액세스를 차단하려는 버킷의 라인을 제거합니다.

    { "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해야 합니다. 자세한 내용은 Amazon Virtual Private Cloud CodeDeploy 에서 사용을 참조하세요.

  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 역할에 CodeDeploy 에이전트를 설치할 SSM 수 있는 권한을 부여합니다. 명령줄을 사용하여 퍼블릭 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. 인스턴스 프로파일을 사용하면 EC2 인스턴스가 처음 시작될 때 Amazon이 라는 IAM 역할을 CodeDeployDemo-EC2-Instance-Profile Amazon 인스턴스에 EC2 전달할 수 있습니다.

    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-역할을 참조하세요.

이제 Amazon IAM 인스턴스에 연결할 EC2 인스턴스 프로파일을 생성했습니다. 자세한 내용은 IAM Amazon 사용 설명서EC2의 Amazon 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 에이전트가 인스턴스에 설치되거나 업데이트될 때 오류가 발생할 수 있습니다. Amazon S3의 일부 CodeDeploy 리소스 키트 버킷에만 IAM 인스턴스 프로파일 액세스 권한을 부여하려면 다음 정책을 사용하고 액세스를 차단하려는 버킷의 라인을 제거합니다.

    { "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해야 합니다. 자세한 내용은 Amazon Virtual Private Cloud CodeDeploy 에서 사용을 참조하세요.

  6. Next(다음)를 선택합니다.

  7. 검토 및 생성 페이지에서 정책 이름CodeDeployDemo-EC2-Permissions를 입력합니다.

  8. (선택 사항) 설명에 정책에 대한 설명을 입력합니다.

  9. 정책 생성을 선택합니다.

  10. 탐색 창에서 역할을 선택한 후 역할 생성을 선택합니다.

  11. 사용 사례에서 EC2 사용 사례를 선택합니다.

  12. Next(다음)를 선택합니다.

  13. 정책 목록에서 방금 생성한 정책 옆의 확인란을 선택합니다(CodeDeployDemo-EC2-권한 ). 필요한 경우 검색 상자를 사용하여 정책을 찾습니다.

  14. Systems Manager를 사용하여 CodeDeploy 에이전트를 설치하거나 구성하려면 A 옆에mazonSSMManagedInstanceCore 있는 확인란을 선택합니다. 이 AWS 관리형 정책을 사용하면 인스턴스가 Systems Manager 서비스 핵심 기능을 사용할 수 있습니다. 필요한 경우 검색 상자를 사용하여 정책을 찾습니다. 명령줄을 사용하여 퍼블릭 Amazon S3 버킷에서 에이전트를 설치하려는 경우에는 이 정책이 필요하지 않습니다. 자세한 내용은 CodeDeploy 에이전트 설치를 참조하십시오.

  15. Next(다음)를 선택합니다.

  16. 이름 지정, 검토 및 생성 페이지의 역할 이름에 서비스 역할의 이름(예: CodeDeployDemo-EC2-Instance-Profile)을 입력한 후 역할 생성을 선택합니다.

    이 서비스 역할에 대한 설명을 역할 설명(Role description)에 입력할 수도 있습니다.

이제 Amazon IAM 인스턴스에 연결할 EC2 인스턴스 프로파일을 생성했습니다. 자세한 내용은 IAM Amazon 사용 설명서EC2의 Amazon EC2 역할을 참조하세요.