기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
2단계: 서비스 역할 만들기 CodeDeploy
에서 AWS서비스 역할은 서비스에 권한을 부여하여 리소스에 액세스할 AWS 수 있도록 하는 데 사용됩니다. AWS 서비스 역할에 연결하는 정책에 따라 서비스가 액세스할 수 있는 리소스와 서비스가 그러한 리소스로 수행할 수 있는 작업이 결정됩니다.
생성 대상 서비스 역할에는 컴퓨팅 플랫폼에 필요한 권한을 CodeDeploy 부여해야 합니다. 둘 이상의 컴퓨팅 플랫폼에 배포하는 경우 플랫폼별로 서비스 역할을 하나씩 생성합니다. 권한을 추가하려면 다음 AWS 제공된 정책 중 하나 이상을 첨부하십시오.
EC2/온프레미스 배포의 경우 AWSCodeDeployRole
정책을 연결합니다. 이 정책은 서비스 역할에서 다음을 수행하는 데 필요한 권한을 제공합니다.
-
Amazon EC2 Auto Scaling 그룹 이름으로 인스턴스의 태그를 읽거나 Amazon EC2 인스턴스를 식별합니다.
-
Amazon EC2 Auto Scaling 그룹, 수명 주기 후크 및 크기 조정 정책을 읽고, 생성하고, 업데이트하고, 삭제합니다.
-
Amazon SNS 주제로 정보를 게시합니다.
-
CloudWatch 경보에 대한 정보를 검색합니다.
-
Elastic Load Balancing을 읽고 업데이트합니다.
참고
시작 템플릿으로 Auto Scaling 그룹을 생성한 경우 다음 권한을 추가해야 합니다.
-
ec2:RunInstances
-
ec2:CreateTags
-
iam:PassRole
자세한 내용은 2단계: 서비스 역할 생성, Auto Scaling 그룹을 위한 시작 템플릿 만들기 및 Amazon EC2 Auto Scaling 사용 설명서의 시작 템플릿 지원을 참조하세요.
-
Amazon ECS 배포에 대해 지원 서비스에 대한 전체 액세스 권한을 부여하려는 경우 AWSCodeDeployRoleForECS
정책을 연결합니다. 이 정책은 서비스 역할에서 다음을 수행하는 데 필요한 권한을 제공합니다.
-
Amazon ECS 작업 세트를 읽고, 업데이트하고, 삭제합니다.
-
Elastic Load Balancing 대상그룹, 리스너 및 규칙을 업데이트합니다.
-
함수 호출 AWS Lambda .
-
Amazon S3 버킷에 있는 개정 파일에 액세스합니다.
-
CloudWatch 경보에 대한 정보를 검색합니다.
-
Amazon SNS 주제로 정보를 게시합니다.
Amazon ECS 배포의 경우 서비스 지원을 위한 액세스를 제한하려면 AWSCodeDeployRoleForECSLimited
정책을 사용합니다. 이 정책은 서비스 역할에서 다음을 수행하는 데 필요한 권한을 제공합니다.
-
Amazon ECS 작업 세트를 읽고, 업데이트하고, 삭제합니다.
-
CloudWatch 경보에 대한 정보를 검색합니다.
-
Amazon SNS 주제로 정보를 게시합니다.
AWS Lambda 배포의 경우 Amazon SNS로의 게시를 허용하려면 정책을 첨부하십시오. AWSCodeDeployRoleForLambda
이 정책은 서비스 역할에서 다음을 수행하는 데 필요한 권한을 제공합니다.
-
함수와 별칭을 읽고, 업데이트하고, AWS Lambda 호출할 수 있습니다.
-
Amazon S3 버킷에 있는 개정 파일에 액세스합니다.
-
경보에 CloudWatch 대한 정보를 검색합니다.
-
Amazon SNS 주제로 정보를 게시합니다.
AWS Lambda 배포의 경우 Amazon SNS에 대한 액세스를 제한하려면 정책을 첨부하십시오. AWSCodeDeployRoleForLambdaLimited
이 정책은 서비스 역할에서 다음을 수행하는 데 필요한 권한을 제공합니다.
-
함수와 별칭을 읽고, 업데이트하고, AWS Lambda 호출할 수 있습니다.
-
Amazon S3 버킷에 있는 개정 파일에 액세스합니다.
-
경보에 CloudWatch 대한 정보를 검색합니다.
서비스 역할을 설정하는 과정에서 액세스 권한을 부여하려는 엔드포인트를 지정하도록 신뢰 관계를 업데이트합니다.
IAM 콘솔 AWS CLI, 또는 IAM API를 사용하여 서비스 역할을 생성할 수 있습니다.
서비스 역할 생성(콘솔)
탐색 창에서 역할을 선택한 후 역할 생성을 선택합니다.
-
AWS 서비스를 선택하고 사용 사례의 드롭다운 목록에서 선택합니다. CodeDeploy
-
사용 사례를 선택합니다.
-
EC2/온프레미스 배포의 경우 선택하십시오. CodeDeploy
-
AWS Lambda 배포의 경우 Lambda를 선택하십시오. CodeDeploy
-
Amazon ECS 배포의 경우 - ECS를 선택하십시오CodeDeploy .
-
다음을 선택합니다.
-
권한 추가 페이지에는 사용 사례에 대한 올바른 권한 정책이 표시됩니다. 다음을 선택합니다.
-
이름 지정, 검토 및 생성 페이지의 역할 이름에 서비스 역할의 이름(예:
CodeDeployServiceRole
)을 입력한 후 역할 생성을 선택합니다.이 서비스 역할에 대한 설명을 역할 설명(Role description)에 입력할 수도 있습니다.
-
이 서비스 역할이 현재 지원되는 모든 엔드포인트에 대한 액세스 권한을 갖도록 하려면 여기서 이 절차를 마칩니다.
이 서비스 역할이 일부 엔드포인트에 액세스하지 못하도록 제한하려면 이 절차의 나머지 단계를 계속 진행합니다.
역할 목록에서 방금 생성한 역할(
CodeDeployServiceRole
)을 검색하고 선택합니다.-
신뢰 관계 탭을 선택합니다.
신뢰 정책 편집을 선택합니다.
다음 정책은 지원되는 모든 엔드포인트에 액세스할 수 있는 권한을 서비스 역할에 부여합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
서비스 역할에 지원되는 일부 엔드포인트에 대한 액세스 권한만 부여하려면 신뢰 정책 텍스트 상자의 콘텐츠를 다음 정책으로 바꿉니다. 액세스를 방지하려는 엔드포인트 행을 제거한 후, 정책 업데이트를 선택합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-east-2.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.ap-east-1.amazonaws.com", "codedeploy.ap-northeast-1.amazonaws.com", "codedeploy.ap-northeast-2.amazonaws.com", "codedeploy.ap-northeast-3.amazonaws.com", "codedeploy.ap-southeast-1.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com", "codedeploy.ap-southeast-3.amazonaws.com", "codedeploy.ap-southeast-4.amazonaws.com", "codedeploy.ap-south-1.amazonaws.com", "codedeploy.ap-south-2.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.eu-west-1.amazonaws.com", "codedeploy.eu-west-2.amazonaws.com", "codedeploy.eu-west-3.amazonaws.com", "codedeploy.eu-central-1.amazonaws.com", "codedeploy.eu-central-2.amazonaws.com", "codedeploy.eu-north-1.amazonaws.com", "codedeploy.eu-south-1.amazonaws.com", "codedeploy.eu-south-2.amazonaws.com", "codedeploy.il-central-1.amazonaws.com", "codedeploy.me-central-1.amazonaws.com", "codedeploy.me-south-1.amazonaws.com", "codedeploy.sa-east-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
서비스 역할 생성에 대한 자세한 내용은 IAM 사용 설명서의 AWS 서비스에 권한을 위임하기 위한 역할 생성을 참조하십시오.
서비스 역할 생성(CLI)
-
개발 머신에서 텍스트 파일을 작성합니다(예:
CodeDeployDemo-Trust.json
). 이 파일은 사용자를 대신하여 작업할 수 있도록 CodeDeploy 하는 데 사용됩니다.다음 중 하나를 수행하십시오.
-
지원되는 모든 AWS 지역에 액세스 권한을 부여하려면 파일에 다음 콘텐츠를 저장하세요.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
지원되는 일부 리전에만 액세스를 허용하려면, 파일에 다음 내용을 입력한 후 액세스를 제한할 리전 행을 제거합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-east-2.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.ap-east-1.amazonaws.com", "codedeploy.ap-northeast-1.amazonaws.com", "codedeploy.ap-northeast-2.amazonaws.com", "codedeploy.ap-northeast-3.amazonaws.com", "codedeploy.ap-southeast-1.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com", "codedeploy.ap-southeast-3.amazonaws.com", "codedeploy.ap-southeast-4.amazonaws.com", "codedeploy.ap-south-1.amazonaws.com", "codedeploy.ap-south-2.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.eu-west-1.amazonaws.com", "codedeploy.eu-west-2.amazonaws.com", "codedeploy.eu-west-3.amazonaws.com", "codedeploy.eu-central-1.amazonaws.com", "codedeploy.eu-central-2.amazonaws.com", "codedeploy.eu-north-1.amazonaws.com", "codedeploy.eu-south-1.amazonaws.com", "codedeploy.eu-south-2.amazonaws.com", "codedeploy.il-central-1.amazonaws.com", "codedeploy.me-central-1.amazonaws.com", "codedeploy.me-south-1.amazonaws.com", "codedeploy.sa-east-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
참고
목록에서 마지막 엔드포인트 뒤에는 쉼표를 사용하지 마세요.
-
-
동일한 디렉터리에서 create-role 명령을 호출하여 방금 만든 텍스트 파일의 정보를 바탕으로
CodeDeployServiceRole
이라는 서비스 역할을 만듭니다.aws iam create-role --role-name CodeDeployServiceRole --assume-role-policy-document file://CodeDeployDemo-Trust.json
중요
파일 이름 앞에
file://
를 포함해야 합니다. 이 명령에 필수적입니다.명령의 출력에서
Arn
객체 아래의Role
항목 값을 적어 둡니다. 이 값은 나중에 배포 그룹을 만들 때 필요합니다. 값을 잊어버린 경우, 서비스 역할 ARN 확인(CLI) 의 지침을 따릅니다. -
사용하는 관리형 정책은 컴퓨팅 플랫폼에 따라 다릅니다.
-
EC2/온프레미스 컴퓨팅 플랫폼에 배포하는 경우:
attach-role-policy 명령을 호출하여
CodeDeployServiceRole
이라는 서비스 역할에AWSCodeDeployRole
이라는 IAM 관리형 정책에 기반한 권한을 부여합니다. 예:aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole
-
AWS Lambda 컴퓨팅 플랫폼에 배포하는 경우:
attach-role-policy 명령을 호출하여
CodeDeployServiceRole
이라는 서비스 역할에AWSCodeDeployRoleForLambda
또는AWSCodeDeployRoleForLambdaLimited
라는 IAM 관리형 정책에 기반한 권한을 부여합니다. 예:aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda
-
Amazon ECS 컴퓨팅 플랫폼에 배포하는 경우:
attach-role-policy 명령을 호출하여
CodeDeployServiceRole
이라는 서비스 역할에AWSCodeDeployRoleForECS
또는AWSCodeDeployRoleForECSLimited
라는 IAM 관리형 정책에 기반한 권한을 부여합니다. 예:aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS
-
서비스 역할 생성에 대한 자세한 내용은 IAM 사용 설명서의 AWS 서비스 역할 생성을 참조하십시오.
서비스 역할 ARN 확인(콘솔)
IAM 콘솔을 사용하여 서비스 역할의 ARN을 확인하려면:
-
탐색 창에서 역할을 선택합니다.
-
필터 상자에
CodeDeployServiceRole
을 입력한 후 Enter 키를 누릅니다. -
선택하세요 CodeDeployServiceRole.
-
역할 ARN 필드의 값을 기록해 둡니다.
서비스 역할 ARN 확인(CLI)
를 사용하여 서비스 역할의 ARN을 AWS CLI 가져오려면 다음과 같은 서비스 역할에 대해 get-role 명령을 호출하십시오. CodeDeployServiceRole
aws iam get-role --role-name CodeDeployServiceRole --query "Role.Arn" --output text
반환되는 값은 서비스 역할의 ARN입니다.