AWS CodeStar 프로젝트 수준 정책 및 권한 - AWS CodeStar

2024년 7월 31일부터 Amazon Web Services (AWS) 는 프로젝트 생성 및 보기에 AWS CodeStar 대한 지원을 중단합니다. 2024년 7월 31일 이후에는 더 이상 AWS CodeStar 콘솔에 액세스하거나 새 프로젝트를 생성할 수 없습니다. 하지만 소스 리포지토리 AWS CodeStar, 파이프라인, 빌드를 포함하여 에서 생성한 AWS 리소스는 이번 변경의 영향을 받지 않고 계속 작동합니다. AWS CodeStar 연결 및 AWS CodeStar 알림은 이번 중단으로 인해 영향을 받지 않습니다.

 

작업을 추적하고, 코드를 개발하고, 애플리케이션을 구축, 테스트 및 배포하려는 경우 CodeCatalyst Amazon은 간소화된 시작 프로세스와 소프트웨어 프로젝트를 관리할 수 있는 추가 기능을 제공합니다. Amazon의 기능가격에 대해 자세히 알아보십시오 CodeCatalyst.

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

AWS CodeStar 프로젝트 수준 정책 및 권한

프로젝트를 생성할 때 프로젝트 리소스를 관리하는 데 필요한 IAM 역할 및 정책을 AWS CodeStar 생성합니다. 정책은 다음 세 가지 범주로 나뉩니다.

  • 프로젝트 팀원에 대한 IAM 정책

  • 작업자 역할에 대한 IAM 정책

  • 런타임 실행 역할에 대한 IAM 정책

팀원에 대한 IAM 정책

프로젝트를 생성할 때 프로젝트에 대한 소유자, 기여자, 최종 사용자 액세스를 위한 세 가지 고객 관리형 정책을 AWS CodeStar 생성합니다. 모든 AWS CodeStar 프로젝트에는 이 세 가지 액세스 수준에 대한 IAM 정책이 포함되어 있습니다. 이러한 액세스 수준은 프로젝트별로 다르며 표준 이름을 사용하는 IAM 관리형 정책에 의해 정의됩니다. 여기서 projt-id는 AWS CodeStar 프로젝트의 ID입니다 (예:). my-first-projec

  • CodeStar_project-id_Owner

  • CodeStar_project-id_Contributor

  • CodeStar_project-id_Viewer

중요

이러한 정책은 에 따라 변경될 수 있습니다. AWS CodeStar수동으로 편집하면 안 됩니다. 권한을 추가하거나 변경하려면 IAM 사용자에 추가 정책을 연결합니다.

프로젝트에 팀원(IAM 사용자)을 추가하고 팀원의 액세스 수준을 선택하면 해당 정책이 IAM 사용자에게 연결되어 프로젝트 리소스를 작업할 적절한 권한 세트가 해당 사용자에게 부여됩니다. 대부분의 경우 IAM에서 정책 또는 권한을 직접 연결하거나 관리할 필요가 없습니다. IAM 사용자에게 AWS CodeStar 액세스 수준 정책을 수동으로 연결하는 것은 권장되지 않습니다. 꼭 필요한 경우 AWS CodeStar 액세스 수준 정책을 보완하기 위해 자체 관리형 또는 인라인 정책을 생성하여 IAM 사용자에게 자체 권한 수준을 적용할 수 있습니다.

정책의 범위는 프로젝트 리소스 및 특정 작업으로 엄격하게 지정됩니다. 새 리소스가 인프라 스택에 추가되면 지원되는 리소스 유형 중 하나인 경우 새 리소스에 액세스할 수 있는 권한을 포함하도록 팀원 정책을 AWS CodeStar 업데이트하려고 시도합니다.

참고

프로젝트의 액세스 수준 정책은 해당 AWS CodeStar 프로젝트에만 적용됩니다. 이렇게 하면 사용자가 역할에 따라 결정된 수준에서만 권한이 있는 AWS CodeStar 프로젝트를 보고 상호 작용할 수 있습니다. AWS CodeStar 프로젝트를 만드는 사용자에게만 프로젝트와 상관없이 모든 AWS CodeStar 리소스에 대한 액세스를 허용하는 정책을 적용해야 합니다.

모든 AWS CodeStar 액세스 수준 정책은 액세스 수준이 연결된 프로젝트와 관련된 AWS 리소스에 따라 달라집니다. 다른 AWS 서비스와 달리, 이러한 정책은 프로젝트가 만들어질 때와 프로젝트 리소스가 변경됨에 따라 업데이트될 때 사용자 지정됩니다. 따라서 정식 소유자, 기고자 또는 최종 사용자 관리형 정책은 없습니다.

AWS CodeStar 소유자 역할 정책

CodeStar_project-id_Owner고객 관리형 정책을 사용하면 사용자가 AWS CodeStar 프로젝트의 모든 작업을 제한 없이 수행할 수 있습니다. 이는 사용자가 팀원을 추가하거나 제거할 수 있도록 허용하는 유일한 정책입니다. 정책의 내용은 프로젝트와 연결된 리소스에 따라 다릅니다. 예제는 AWS CodeStar 소유자 역할 정책 단원을 참조하세요.

이 정책을 사용하는 IAM 사용자는 프로젝트의 모든 AWS CodeStar 작업을 수행할 수 있지만 AWSCodeStarFullAccess 정책을 사용하는 IAM 사용자와 달리 사용자는 프로젝트를 생성할 수 없습니다. codestar:*권한 범위는 특정 리소스 (해당 프로젝트 ID와 연결된 AWS CodeStar 프로젝트) 로 제한됩니다.

AWS CodeStar 기여자 역할 정책

CodeStar_project-id_Contributor 고객 관리형 정책은 사용자가 프로젝트에 참가하고 프로젝트 대시보드를 변경하는 것은 허용하지만, 팀원을 추가하거나 제거하는 것은 허용하지 않습니다. 정책의 내용은 프로젝트와 연결된 리소스에 따라 다릅니다. 예제는 AWS CodeStar 기고자 역할 정책 단원을 참조하세요.

AWS CodeStar 시청자 역할 정책

CodeStar_project-id_Viewer 고객 관리형 정책은 사용자가 AWS CodeStar에서 프로젝트를 보는 것은 허용하지만, 리소스를 변경하거나 팀원을 추가 또는 제거하는 것은 허용하지 않습니다. 정책의 내용은 프로젝트와 연결된 리소스에 따라 다릅니다. 예제는 AWS CodeStar 뷰어 역할 정책 단원을 참조하세요.

작업자 역할에 대한 IAM 정책

2018년 12월 6일 (PDT) 이후에 AWS CodeStar 프로젝트를 생성하는 경우 AWS는 두 개의 작업자 역할을 CodeStar 생성합니다. CodeStar-project-id-ToolChain CodeStar-project-id-CloudFormation 작업자 역할은 서비스에 전달하기 위해 AWS CodeStar 생성하는 프로젝트별 IAM 역할입니다. 서비스가 프로젝트 컨텍스트에서 리소스를 생성하고 작업을 실행할 수 있도록 권한을 부여합니다. AWS CodeStar 툴체인 작업자 역할은 CodeBuild, CodeDeploy, 등의 툴체인 서비스와 설정된 신뢰 관계를 갖습니다. CodePipeline 프로젝트 팀원(소유자 및 기고자)에게는 작업자 역할을 신뢰할 수 있는 다운스트림 서비스로 전달할 수 있는 액세스 권한이 부여됩니다. 이 역할에 대한 인라인 정책 설명의 예제는 AWS CodeStar 툴체인 작업자 역할 정책 (2018년 12월 6일 (PDT) 이후) 단원을 참조하십시오.

CloudFormation 작업자 역할에는 에서 지원하는 AWS CloudFormation일부 리소스에 대한 권한뿐만 아니라 애플리케이션 스택에서 IAM 사용자, 역할 및 정책을 생성할 수 있는 권한이 포함됩니다. 또한 신뢰 관계도 구축되어 있습니다 AWS CloudFormation. 권한 상승 및 파괴적인 조치의 위험을 줄이기 위해 AWS CloudFormation 역할 정책에는 인프라 스택에서 생성된 모든 IAM 개체 (사용자 또는 역할) 에 대해 프로젝트별 권한 경계를 요구하는 조건이 포함되어 있습니다. 이 역할에 대한 인라인 정책 설명의 예제는 AWS CloudFormation 작업자 역할 정책 단원을 참조하십시오.

2018년 12월 6일 이전에 생성된 AWS CodeStar 프로젝트의 경우, PDT는 AWS CodeStar , CodePipeline, CodeBuild CloudWatch Events와 같은 툴체인 리소스에 대한 개별 작업자 역할을 생성하고 제한된 리소스 세트를 AWS CloudFormation 지원하는 작업자 역할도 생성합니다. 이러한 각 역할은 해당 서비스와 신뢰 관계를 수립합니다. 프로젝트 팀원(소유자 및 기고자) 및 일부 다른 작업자 역할에는 신뢰할 수 있는 다운스트림 서비스로 역할을 전달할 수 있는 액세스 권한이 부여됩니다. 작업자 역할의 권한은 인라인 정책에 정의되어 있는데 이 역할이 프로젝트 리소스 세트에 대해 수행할 수 있는 기본 작업 세트로 범위가 지정됩니다. 이러한 권한은 정적입니다. 생성 시 프로젝트에 포함된 리소스에 대한 권한을 포함하지만, 프로젝트에 새로운 리소스가 추가되더라도 업데이트되지 않습니다. 이러한 정책 설명의 예제는 다음을 참조하십시오.

실행 역할에 대한 IAM 정책

2018년 12월 6일 (PDT) 이후에 생성된 프로젝트의 경우 AWS는 애플리케이션 스택의 샘플 프로젝트에 대한 일반 실행 역할을 CodeStar 생성합니다. 이 역할의 범위는 권한 경계 정책을 사용하여 프로젝트 리소스로 좁혀집니다. 샘플 프로젝트를 확장하면서 추가 IAM 역할을 생성할 수 있으며, AWS CloudFormation 역할 정책에 따르면 권한 에스컬레이션을 방지하기 위해 권한 경계를 사용하여 이러한 역할의 범위를 축소해야 합니다. 자세한 정보는 프로젝트에 IAM 역할 추가을 참조하세요.

2018년 12월 6일 (PDT) 이전에 생성된 Lambda 프로젝트의 경우, 프로젝트 스택의 리소스에서 작업을 수행할 권한이 있는 인라인 정책이 연결된 Lambda 실행 역할을 AWS CodeStar 생성합니다. AWS SAM 새 리소스가 SAM 템플릿에 추가되면 지원되는 리소스 유형 중 하나인 경우 새 리소스에 대한 권한을 포함하도록 Lambda 실행 역할 정책을 AWS CodeStar 업데이트하려고 시도합니다.

IAM 권한 경계

2018년 12월 6일 (PDT) 이후, 프로젝트를 생성하면 AWS는 고객 관리형 정책을 CodeStar 생성하고 해당 정책을 프로젝트의 IAM 역할에 대한 IAM 권한 경계로 할당합니다. AWS는 애플리케이션 스택에 생성된 모든 IAM 엔티티에 권한 경계를 CodeStar 요구합니다. 권한 경계는 역할이 가질 수 있는 최대 권한을 제어하지만, 역할에 권한을 제공하지는 않습니다. 권한 정책은 역할의 권한을 정의합니다. 즉 역할에 추가된 권한 수가 몇 개이든, 역할을 사용하는 사람은 권한 경계에 포함된 작업 이상을 수행할 수 없습니다. 권한 정책 및 권한 경계를 평가하는 방법에 대한 자세한 내용은 IAM 사용 설명서정책 평가 로직을 참조하십시오.

CodeStar AWS는 프로젝트별 권한 경계를 사용하여 프로젝트 외부 리소스에 대한 권한 상승을 방지합니다. AWS CodeStar 권한 경계에는 프로젝트 리소스용 ARN이 포함됩니다. 이 정책 설명의 예제는 AWS CodeStar 권한 경계 정책 단원을 참조하십시오.

AWS CodeStar Transform은 애플리케이션 스택 (template.yml) 을 통해 지원되는 리소스를 프로젝트에 추가하거나 제거할 때 이 정책을 업데이트합니다.

기존 프로젝트에 IAM 권한 경계 추가

2018년 12월 6일 (PDT) 이전에 생성된 AWS CodeStar 프로젝트가 있는 경우, 프로젝트의 IAM 역할에 권한 경계를 수동으로 추가해야 합니다. 모범 사례로써 프로젝트 외부의 리소스로의 권한 상승을 방지하도록 프로젝트의 리소스만 포함하는 프로젝트별 경계를 사용하는 것이 좋습니다. 다음 단계에 따라 프로젝트가 발전함에 따라 CodeStar 업데이트되는 AWS 관리형 권한 경계를 사용하십시오.

  1. AWS CloudFormation 콘솔에 로그인하고 프로젝트의 툴체인 스택용 템플릿을 찾으십시오. 이 템플릿 이름은 awscodestar-project-id입니다.

  2. 해당 템플릿을 선택하고 작업을 선택한 다음 Designer에서 템플릿 보기/편집을 선택합니다.

  3. Resources 섹션을 찾은 후 섹션 상단에 다음 조각을 포함시킵니다.

    PermissionsBoundaryPolicy: Description: Creating an IAM managed policy for defining the permissions boundary for an AWS CodeStar project Type: AWS::IAM::ManagedPolicy Properties: ManagedPolicyName: !Sub 'CodeStar_${ProjectId }_PermissionsBoundary' Description: 'IAM policy to define the permissions boundary for IAM entities created in an AWS CodeStar project' PolicyDocument: Version: '2012-10-17' Statement: - Sid: '1' Effect: Allow Action: ['*'] Resource: - !Sub 'arn:${AWS::Partition}:cloudformation:${AWS::Region}:${AWS::AccountId}:stack/awscodestar-${ProjectId}-*'

    AWS CloudFormation 콘솔에서 스택을 업데이트할 추가 IAM 권한이 필요할 수 있습니다.

  4. (선택 사항) 애플리케이션별 역할을 만들려는 경우 이 단계를 완료합니다. IAM 콘솔에서 다음 스니펫을 포함하도록 프로젝트 AWS CloudFormation 역할에 연결된 인라인 정책을 업데이트하십시오. 정책을 업데이트하려면 추가 IAM 리소스가 필요할 수 있습니다.

    { "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::{AccountId}:role/CodeStar-{ProjectId}*", "Effect": "Allow" }, { "Action": [ "iam:CreateServiceLinkedRole", "iam:GetRole", "iam:DeleteRole", "iam:DeleteUser" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "iam:AttachRolePolicy", "iam:AttachUserPolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRolePolicy", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:DetachRolePolicy", "iam:PutUserPermissionsBoundary", "iam:PutRolePermissionsBoundary" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PermissionsBoundary": "arn:aws:iam::{AccountId}:policy/CodeStar_{ProjectId}_PermissionsBoundary" } }, "Effect": "Allow" }
  5. AWS가 적절한 권한으로 권한 경계를 CodeStar 업데이트하도록 프로젝트 파이프라인을 통해 변경 사항을 푸시하십시오.

자세한 정보는 프로젝트에 IAM 역할 추가을 참조하세요.