3단계: CodeDeploy 사용자 권한 제한 - AWS CodeDeploy

3단계: CodeDeploy 사용자 권한 제한

보안상의 이유로 1단계: 설정에서 생성한 관리 사용자의 권한을 CodeDeploy에서 배포를 생성 및 관리하는 데 필요한 권한으로만 제한하는 것이 좋습니다.

CodeDeploy 관리 사용자의 권한을 제한하려면 다음 일련의 절차를 사용합니다.

시작하기 전 준비 사항
  • 1단계: 설정의 지침에 따라 IAM Identity Center에서 CodeDeploy 관리 사용자를 생성했는지 확인합니다.

권한 세트를 생성하려면

이 권한 세트는 나중에 CodeDeploy 관리 사용자에게 할당해야 합니다.

  1. AWS Management 콘솔에 로그인하여 https://console.aws.amazon.com/singlesignon/에서 AWS IAM Identity Center 콘솔을 엽니다.

  2. 탐색 창에서 권한 세트를 선택한 다음 권한 세트 생성을 선택합니다.

  3. 사용자 지정 권한 세트를 선택합니다.

  4. 다음을 선택합니다.

  5. 인라인정책을 선택합니다.

  6. 샘플 코드를 제거합니다.

  7. 다음 정책 코드를 추가합니다.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "CodeDeployAccessPolicy", "Effect": "Allow", "Action": [ "autoscaling:*", "codedeploy:*", "ec2:*", "lambda:*", "ecs:*", "elasticloadbalancing:*", "iam:AddRoleToInstanceProfile", "iam:AttachRolePolicy", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:ListInstanceProfilesForRole", "iam:ListRolePolicies", "iam:ListRoles", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:*", "ssm:*" ], "Resource": "*" }, { "Sid": "CodeDeployRolePolicy", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::111122223333:role/CodeDeployServiceRole" } ] }

    이 정책에서 arn:aws:iam::account-ID:role/CodeDeployServiceRole2단계: CodeDeploy에 대한 서비스 역할 생성에서 생성한 CodeDeploy 서비스 역할의 ARN 값으로 대체합니다. IAM 콘솔의 서비스 역할 세부 정보 페이지에서 ARN 값을 찾을 수 있습니다.

    위의 정책을 통해 AWS Lambda 컴퓨팅 플랫폼, EC2/온프레미스 컴퓨팅 플랫폼 및 Amazon ECS 컴퓨팅 플랫폼에 애플리케이션을 배포할 수 있습니다.

    이 설명서에 제공된 CloudFormation 템플릿을 사용하여 CodeDeploy와 호환되는 Amazon EC2 인스턴스를 시작할 수 있습니다. CloudFormation 템플릿을 사용하여 애플리케이션, 배포 그룹 또는 배포 구성을 만들려면 다음과 같이 CodeDeploy 관리 사용자의 권한 정책에 cloudformation:* 권한을 추가하여 CloudFormation에 대한 액세스 권한 및 CloudFormation이 사용하는 AWS 서비스와 작업에 대한 액세스 권한을 부여해야 합니다.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": "*" } ] }
  8. 다음을 선택합니다.

  9. 권한 세트 이름에 다음을 입력합니다.

    CodeDeployUserPermissionSet
  10. 다음을 선택합니다.

  11. 검토 및 생성 페이지에서 정보를 검토하고 생성을 선택합니다.

이 권한 세트를 CodeDeploy 관리 사용자에게 할당하려면
  1. 탐색 창에서 AWS 계정을 선택한 다음 현재 로그인한 AWS 계정 옆의 확인란을 선택합니다.

  2. 사용자 또는 그룹 할당 버튼을 선택합니다.

  3. 사용자 탭을 선택합니다.

  4. CodeDeploy 관리 사용자 옆의 확인란을 선택합니다.

  5. 다음을 선택합니다.

  6. CodeDeployUserPermissionSet 옆의 확인란을 선택합니다.

  7. 다음을 선택합니다.

  8. 정보를 검토하고 제출을 선택합니다.

    이제 CodeDeploy 관리 사용자와 CodeDeployUserPermissionSet를 AWS 계정에 할당하여 함께 바인딩했습니다.

로그아웃했다가 CodeDeploy 관리 사용자로 다시 로그인하려면
  1. 로그아웃하기 전에 AWS 액세스 포털 URL과 CodeDeploy 관리 사용자의 사용자 이름 및 일회용 암호가 있는지 확인합니다.

    참고

    이 정보가 없는 경우 IAM Identity Center의 CodeDeploy 관리 사용자 세부 정보 페이지로 이동하여 암호 재설정, 일회용 암호 생성 [...]을 선택한 후 암호 재설정을 다시 선택하면 화면에 해당 정보가 표시됩니다.

  2. AWS에서 로그아웃합니다.

  3. AWS 액세스 포털 URL을 브라우저의 주소 표시줄에 붙여 넣습니다.

  4. CodeDeploy 관리 사용자로 로그인합니다.

    화면에 AWS 계정 상자가 나타납니다.

  5. AWS 계정을 선택한 다음 CodeDeploy 관리 사용자 및 권한 세트를 할당한 AWS 계정의 이름을 선택합니다.

  6. CodeDeployUserPermissionSet 옆에 있는 관리 콘솔을 선택합니다.

    AWS Management 콘솔이 나타납니다. 이제 제한된 권한을 가진 CodeDeploy 관리 사용자로 로그인되었습니다. 이제 이 사용자로 오직 CodeDeploy 관련 작업만 수행할 수 있습니다.