AWSCodeDeploy에 대한 관리형(미리 정의된) 정책 - AWS CodeDeploy

AWSCodeDeploy에 대한 관리형(미리 정의된) 정책

AWS는 에서 생성하고 관리하는 독립형 IAM 정책을 제공하여 많은 일반 사용 사례를 처리합니다.AWS 이러한 AWS 관리형 정책은 사용자가 어떤 권한이 필요한지 조사하지 않아도 되도록 일반 사용 사례에 대한 권한을 부여합니다. 자세한 내용은 IAM 사용 설명서AWS 관리형 정책을 참조하세요.

CodeDeploy의 AWS 관리형 정책 목록

계정의 사용자에게 연결할 수 있는 다음 AWS 관리형 정책은 CodeDeploy에 고유합니다.

  • AWSCodeDeployFullAccess: CodeDeploy에 전체 액세스 권한 부여

    참고

    AWSCodeDeployFullAccess는 애플리케이션 배포에 필요한 기타 서비스(예: Amazon EC2 및Amazon S3)에서 작업을 수행할 수 있는 권한이 아니라 CodeDeploy 관련 작업을 수행할 수 있는 권한만 제공합니다.

  • AWSCodeDeployDeployerAccess: IAM 사용자에게 개정을 등록 및 배포할 수 있는 액세스 권한을 부여합니다.

     

  • AWSCodeDeployReadOnlyAccess: CodeDeploy에 대한 읽기 전용 액세스 권한을 부여합니다.

     

  • AWSCodeDeployRole: CodeDeploy가 다음 작업을 수행할 수 있도록 합니다.

    • Amazon EC2 Auto Scaling 그룹 이름으로 인스턴스의 태그를 읽거나 Amazon EC2 인스턴스를 식별합니다.

    • Amazon EC2 Auto Scaling 그룹, 수명 주기 후크, 조정 정책 및 웜 풀 기능을 읽고, 생성하고, 업데이트하고, 삭제합니다.

    • Amazon SNS 주제로 정보를 게시합니다.

    • Amazon CloudWatch 경보에 관한 정보를 검색합니다.

    • Elastic Load Balancing 서비스에서 리소스 읽고 업데이트합니다.

    정책에는 다음 코드가 포함됩니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CompleteLifecycleAction", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:EnableMetricsCollection", "autoscaling:DescribePolicies", "autoscaling:DescribeScheduledActions", "autoscaling:DescribeNotificationConfigurations", "autoscaling:SuspendProcesses", "autoscaling:ResumeProcesses", "autoscaling:AttachLoadBalancers", "autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:PutScalingPolicy", "autoscaling:PutScheduledUpdateGroupAction", "autoscaling:PutNotificationConfiguration", "autoscaling:DescribeScalingActivities", "autoscaling:DeleteAutoScalingGroup", "autoscaling:PutWarmPool", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:TerminateInstances", "tag:GetResources", "sns:Publish", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:RegisterTargets", "elasticloadbalancing:DeregisterTargets" ], "Resource": "*" } ] }

     

  • AWSCodeDeployRoleForLambda: CodeDeploy에 AWS Lambda 및 배포에 필요한 기타 리소스에 액세스할 수 있는 권한을 부여합니다.

     

  • AWSCodeDeployRoleForECS: CodeDeploy에 Amazon ECS 및 배포에 필요한 기타 리소스에 액세스할 수 있는 권한을 부여합니다.

     

  • AWSCodeDeployRoleForECSLimited: CodeDeploy에 Amazon ECS 및 배포에 필요한 기타 리소스에 액세스할 수 있는 권한을 부여하지만, 다음과 같은 예외가 있습니다.

    • AppSpec 파일의 hooks 섹션에서 CodeDeployHook_로 시작하는 이름의 Lambda 함수만 사용할 수 있습니다. 자세한 정보는 Amazon ECS 배포를 위한 AppSpec 'hooks' 섹션을 참조하십시오.

    • S3 버킷 액세스는 값이 UseWithCodeDeploy인 등록 태그 true가 있는 S3 버킷으로 제한됩니다. 자세한 내용은 객체 태그 지정을 참조하세요.

  • AmazonEC2RoleforAWSCodeDeployLimited: CodeDeploy Amazon S3 버킷에서 객체를 가져오고 나열할 수 있는 CodeDeploy 권한을 부여합니다. 정책에는 다음 코드가 포함됩니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*/CodeDeploy/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/UseWithCodeDeploy": "true" } } } ] }

배포 프로세스의 일부 측면은 IAM 사용자보다는 CodeDeploy을 대신해 작동하는 두 가지 다른 역할 유형에 대하여 권한이 허용됩니다.

  • IAM 인스턴스 프로파일이란 Amazon EC2 인스턴스에 연결하는 IAM 역할입니다. 이 프로파일에는 애플리케이션이 저장되는 Amazon S3 버킷 또는 GitHub 리포지토리에 액세스할 때 필요한 권한이 포함됩니다. 자세한 정보는 4단계: Amazon EC2 인스턴스에 대한 IAM 인스턴스 프로파일 만들기을 참조하십시오.

  • 서비스 역할이란 AWS 리소스에 액세스할 수 있는 권한을 AWS 서비스에 부여하는 IAM 역할입니다. 서비스 역할에 연결하는 정책에 따라 서비스에 액세스할 수 있는 AWS 리소스와 서비스에서 이러한 리소스로 수행할 수 있는 작업이 결정됩니다. CodeDeploy의 경우 서비스 역할은 다음 작업에 사용됩니다.

    • 인스턴스에 적용된 태그 또는 인스턴스와 연결된 Amazon EC2 Auto Scaling 그룹 이름을 읽습니다. 이를 통해 CodeDeploy는 애플리케이션을 배포할 수 있는 인스턴스를 식별할 수 있습니다.

    • Amazon EC2 Auto Scaling 그룹 및 Elastic Load Balancing 로드 밸런서의 인스턴스에 대한 작업을 수행합니다.

    • 지정된 배포 또는 인스턴스 이벤트가 발생할 때 알림을 전송할 수 있도록 Amazon SNS 주제에 정보를 게시합니다.

    • CloudWatch 경보에 대한 정보를 검색하여 배포에 대한 경보 모니터링을 설정합니다.

    자세한 정보는 2단계: CodeDeploy에 대한 서비스 역할 생성을 참조하십시오.

사용자 지정 IAM 정책을 생성하여 CodeDeploy 작업 및 리소스에 대한 권한을 부여할 수도 있습니다. 해당 권한이 필요한 IAM 사용자 또는 그룹에 이러한 사용자 지정 정책을 연결할 수 있습니다.

CodeDeploy 관리형 정책 및 알림

CodeDeploy에서는 사용자가 배포에 대한 중요한 변경 사항을 알 수 있도록 알림을 지원합니다. CodeDeploy에 대한 관리형 정책에는 알림 기능에 대한 정책 설명이 포함되어 있습니다. 자세한 내용은 알림이란 무엇입니까?를 참조하세요.

전체 액세스 관리형 정책의 알림에 대한 권한

AWSCodeDeployFullAccess 관리형 정책에는 알림에 대한 전체 액세스를 허용하는 다음 설명이 포함되어 있습니다. 이러한 관리형 정책이 적용된 사용자는 알림에 대한 Amazon SNS 주제를 생성 및 관리하고, 주제에 대해 사용자를 구독 및 구독 취소 처리하고, 알림 규칙의 대상으로 선택할 주제를 나열할 수도 있습니다.

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }

읽기 전용 관리형 정책의 알림에 대한 권한

AWSCodeDeployReadOnlyAccess 관리형 정책에는 알림에 대한 읽기 전용 액세스를 허용하는 다음 설명이 포함되어 있습니다. 이 관리형 정책이 적용된 사용자는 리소스에 대한 알림을 볼 수 있지만 리소스를 생성, 관리 또는 구독할 수는 없습니다.

{ "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules" ], "Resource": "*" }

자세한 내용은 AWS CodeStar 알림의 Identity and Access Management를 참조하세요.