자격 증명 기반 정책(IAM)의 예 - AWS CodePipeline

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

자격 증명 기반 정책(IAM)의 예

자격 IAM 증명에 정책을 연결할 수 있습니다. 예를 들어 다음을 수행할 수 있습니다.

  • 사용자 또는 계정의 그룹에 권한 정책 연결 - CodePipeline 콘솔에서 파이프라인을 볼 수 있는 권한을 사용자에게 부여하려면 사용자가 속한 사용자 또는 그룹에 권한 정책을 연결할 수 있습니다.

  • 권한 정책을 역할에 연결(계정 간 권한 부여) - ID 기반 권한 정책을 IAM 역할에 연결하여 계정 간 권한을 부여할 수 있습니다. 예를 들어 계정 A의 관리자는 다음과 AWS 서비스 같이 다른 AWS 계정(예: 계정 B) 또는 에 교차 계정 권한을 부여하는 역할을 생성할 수 있습니다.

    1. 계정 관리자는 IAM 역할을 생성하고 계정 A의 리소스에 대한 권한을 부여하는 권한 정책을 역할에 연결합니다.

    2. 계정 A 관리자는 계정 B를 역할을 수임할 보안 주체로 식별하는 역할에 신뢰 정책을 연결합니다.

    3. 그런 다음 계정 B 관리자는 계정 B의 모든 사용자에게 역할을 수임할 권한을 위임할 수 있습니다. 이렇게 하면 계정 B의 사용자가 계정 A의 리소스를 생성하거나 액세스할 수 있습니다. 역할을 AWS 서비스 수임할 권한을 부여하려는 경우 신뢰 정책의 보안 주체가 보안 AWS 서비스 주체가 될 수도 있습니다.

    를 사용하여 권한을 위임IAM하는 방법에 대한 자세한 내용은 IAM 사용 설명서액세스 관리를 참조하세요.

다음은 권한 정책의 예시입니다. 이 정책은 사용자는 us-west-2 region에서 MyFirstPipeline이라는 이름의 파이프라인에서 모든 단계 간 전환을 활성화하고 비활성화할 권한을 허용합니다.

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codepipeline:EnableStageTransition", "codepipeline:DisableStageTransition" ], "Resource" : [ "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/*" ] } ] }

다음 예제에서는 사용자가 CodePipeline 콘솔에 이름이 지정된 파이프라인을 볼 수 있지만 변경할 수는 없는 111222333444 계정MyFirstPipeline의 정책을 보여줍니다. 이 정책의 기반은 AWSCodePipeline_ReadOnlyAccess 관리형 정책이지만 MyFirstPipeline 파이프라인에 대해 특화되어 있으므로 관리형 정책을 바로 사용할 수 없습니다. 정책을 특정 파이프라인으로 제한하지 않으려면 에서 생성 및 유지 관리하는 관리형 정책 중 하나를 사용하는 것이 좋습니다 CodePipeline. 자세한 내용은 관리형 정책 작업을 참조하세요. 액세스를 위해 생성한 IAM 역할에 이 정책을 연결해야 합니다. 예를 들어 라는 역할이 CrossAccountPipelineViewers있습니다.

{ "Statement": [ { "Action": [ "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListActionExecutions", "codepipeline:ListActionTypes", "codepipeline:ListPipelines", "codepipeline:ListTagsForResource", "iam:ListRoles", "s3:ListAllMyBuckets", "codecommit:ListRepositories", "codedeploy:ListApplications", "lambda:ListFunctions", "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Effect": "Allow", "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline" }, { "Action": [ "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListActionExecutions", "codepipeline:ListActionTypes", "codepipeline:ListPipelines", "codepipeline:ListTagsForResource", "iam:ListRoles", "s3:GetBucketPolicy", "s3:GetObject", "s3:ListBucket", "codecommit:ListBranches", "codedeploy:GetApplication", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeploymentGroups", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironments", "lambda:GetFunctionConfiguration", "opsworks:DescribeApps", "opsworks:DescribeLayers", "opsworks:DescribeStacks" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CodeStarNotificationsReadOnlyAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codepipeline:*" } } } ], "Version": "2012-10-17" }

이 정책을 생성한 후 111222333444 계정에서 IAM 역할을 생성하고 해당 역할에 정책을 연결합니다. 역할의 신뢰 관계에서 이 역할을 수임할 AWS 계정을 추가해야 합니다. 다음 예제에서는 의 사용자를 허용하는 정책을 보여줍니다.111111111111 AWS 111222333444 계정에 정의된 역할을 수임하는 계정:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:root" }, "Action": "sts:AssumeRole" } ] }

다음 예제는 에서 생성된 정책을 보여줍니다.111111111111 AWS 사용자가 라는 역할을 수임할 수 있는 계정 CrossAccountPipelineViewers 111222333444 계정에서:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111222333444:role/CrossAccountPipelineViewers" } ] }

계정의 사용자가 액세스할 수 있는 호출 및 리소스를 제한하는 IAM 정책을 생성한 다음 해당 정책을 관리 사용자에게 연결할 수 있습니다. IAM 역할을 생성하고 에 대한 IAM 정책 설명 예제를 탐색하는 방법에 대한 자세한 내용은 섹션을 CodePipeline참조하세요고객 관리형 정책 예.