풀 요청에 대한 승인 규칙 생성 - AWS CodeCommit

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

풀 요청에 대한 승인 규칙 생성

풀 요청에 대한 승인 규칙을 생성하면 코드를 대상 브랜치로 병합하기 전에 사용자가 풀 요청을 승인하도록 하여 코드의 품질을 보장할 수 있습니다. 풀 요청을 승인해야 하는 사용자 수를 지정할 수 있습니다. 규칙에 대한 승인 사용자 풀을 지정할 수도 있습니다. 이렇게 하면 해당 사용자의 승인만 규칙에 필요한 승인 수에 합산됩니다.

참고

또한 승인 규칙 템플릿을 생성하여, 리포지토리 간의 모든 풀 요청에 적용되는 승인 규칙 생성을 자동화할 수 있습니다. 자세한 내용은 승인 규칙 템플릿 작업 섹션을 참조하세요.

AWS CodeCommit 콘솔 또는 AWS CLI를 사용하여 리포지토리에 대한 승인 규칙을 생성할 수 있습니다.

풀 요청에 대한 승인 규칙 생성 (콘솔)

CodeCommit 콘솔을 사용하여 CodeCommit 리포지토리에 풀 요청에 대한 승인 규칙을 생성할 수 있습니다.

  1. https://console.aws.amazon.com/codesuite/codecommit/home에서 CodeCommit 콘솔을 엽니다.

  2. 리포지토리에서 풀 요청에 대한 승인 규칙을 생성할 리포지토리의 이름을 선택합니다.

  3. 탐색 창에서 풀 요청을 선택합니다.

  4. 목록에서 승인 규칙을 생성할 풀 요청을 선택합니다. 미결 상태인 풀 요청에 대해서만 승인 규칙을 생성할 수 있습니다.

    CodeCommit 콘솔에 표시된 리포지토리의 풀 요청 목록.
  5. 풀 요청에서 승인을 선택한 다음 승인 규칙 생성을 선택합니다.

  6. 규칙 이름에서 규칙에 해당 용도를 알 수 있도록 설명이 포함된 이름을 지정합니다. 예를 들어 풀 요청을 병합하기 전에 두 사람이 승인하도록 요구하려면 규칙 이름으로 Require two approvals before merge를 지정할 수 있습니다.

    참고

    승인 규칙을 생성한 후에는 이름을 변경할 수 없습니다.

    필요한 승인 수에 원하는 숫자를 입력합니다. 기본값은 1입니다.

    풀 요청에 대한 승인 규칙 생성
  7. (선택 사항) 특정 사용자 그룹에서 풀 요청에 대한 승인을 받도록 하려면 승인 규칙 멤버에서 추가를 선택합니다. 승인자 유형에서 다음 중 하나를 선택합니다.

    • IAM 사용자 이름 또는 위임된 역할: 이 옵션은 로그인할 때 사용한 계정으로 AWS 계정 ID를 미리 채우며 오로지 이름만 필요로 합니다. 이 옵션은 제공된 이름과 일치하는 IAM 사용자 및 페더레이션 액세스 사용자 모두에 사용할 수 있습니다. 이 옵션은 폭넓은 유연성을 제공하는 매우 강력한 옵션입니다. 예를 들어, Amazon Web Services 계정 123456789012로 로그인하여 이 옵션을 선택하고 Mary_Major를 지정한 경우, 다음은 모두 해당 사용자의 승인으로 간주됩니다.

      • 해당 계정의 IAM 사용자 (arn:aws:iam::123456789012:user/Mary_Major)

      • IAM에서 Mary_Major로 식별되는 페더레이션 사용자 (arn:aws:sts::123456789012:federated-user/Mary_Major)

      이 옵션은 와일드카드가 포함되지 않는 한(*Mary_Major) 역할 세션 이름 Mary_Major(arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major)를 사용하여 CodeCommitReview 역할을 수임한 누군가의 활성 세션을 인식하지 못합니다. 역할 이름을 명시적으로 지정할 수도 있습니다(CodeCommitReview/Mary_Major).

    • 정규화된 ARN: 이 옵션을 사용하면 IAM 사용자 또는 역할의 정규화된 Amazon 리소스 이름(ARN)을 지정할 수 있습니다. 이 옵션은 AWS Lambda 및 AWS CodeBuild와 같은 다른 AWS 서비스에서 사용하는 수임된 역할도 지원합니다. 수임된 역할의 경우 ARN 형식은 역할 및 기능에 대해 각각 arn:aws:sts::AccountID:assumed-role/RoleNamearn:aws:sts::AccountID:assumed-role/FunctionName 형식이어야 합니다.

    승인자 유형으로 IAM 사용자 이름 또는 수임된 역할을 선택한 경우, 에는 IAM 사용자나 역할의 이름 또는 사용자나 역할의 정규화된 ARN을 입력합니다. 필요한 승인 수에 해당 승인이 합산되는 모든 사용자 또는 역할을 추가할 때까지 추가 다시 선택하여 사용자 또는 역할을 추가합니다.

    두 승인자 유형 모두 값에 와일드카드(*)를 사용할 수 있습니다. 예를 들어, IAM 사용자 이름 또는 수임된 역할 옵션을 선택하고 CodeCommitReview/*를 지정하면, CodeCommitReview의 역할을 맡은 모든 사용자가 승인 풀에 포함됩니다. 개별 역할 세션 이름은 필요한 승인자 수에 포함됩니다. 이러한 방식으로 Mary_Major 및 Li_Juan은 로그인하여 CodeCommitReview 역할을 수임하면 승인으로 합산됩니다. IAM ARN, 와일드카드, 형식 등에 대한 자세한 내용은 IAM 식별자를 참조하세요.

    참고

    승인 규칙은 교차 계정 승인을 지원하지 않습니다.

  8. 승인 규칙 구성을 완료했으면 제출을 선택합니다.

풀 요청에 대한 승인 규칙 생성 (AWS CLI)

CodeCommit에서 AWS CLI 명령을 사용하려면 AWS CLI를 설치합니다. 자세한 내용은 명령줄 참조 섹션을 참조하세요.

CodeCommit 리포지토리에 풀 요청에 대한 승인 규칙을 생성하려면

  1. 다음을 지정하여 create-pull-request-approval-rule 명령을 실행합니다.

    • 풀 요청의 ID(--id 옵션 사용).

    • 승인 규칙의 이름(--approval-rule-name 옵션 사용).

    • 승인 규칙의 내용(--approval-rule-content 옵션 사용).

    승인 규칙을 생성할 때 다음 두 가지 방법 중 하나로 승인 풀에 승인자를 지정할 수 있습니다.

    • CodeCommitApprovers: 이 옵션에는 Amazon Web Services 계정과 리소스만 필요합니다. 이 옵션은 이름이 제공된 리소스 이름과 일치하는 IAM 사용자 및 페더레이션 액세스 사용자 모두에 사용할 수 있습니다. 이 옵션은 폭넓은 유연성을 제공하는 매우 강력한 옵션입니다. 예를 들어, Amazon Web Services 계정 123456789012 및 Mary_Major를 지정한 경우, 다음은 모두 해당 사용자의 승인으로 간주됩니다.

      • 해당 계정의 IAM 사용자 (arn:aws:iam::123456789012:user/Mary_Major)

      • IAM에서 Mary_Major로 식별되는 페더레이션 사용자 (arn:aws:sts::123456789012:federated-user/Mary_Major)

      이 옵션은 와일드카드가 포함되지 않는 한(*Mary_Major) 역할 세션 이름 Mary_Major(arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major)를 사용하여 CodeCommitReview 역할을 수임한 누군가의 활성 세션을 인식하지 못합니다.

    • 정규화된 ARN: 이 옵션을 사용하면 IAM 사용자 또는 역할의 정규화된 Amazon 리소스 이름(ARN)을 지정할 수 있습니다.

    IAM ARN, 와일드카드, 형식 등에 대한 자세한 내용은 IAM 식별자를 참조하세요.

    다음 예제에서는 ID가 27인 풀 요청에 대해 Require two approved approvers라는 승인 규칙을 생성합니다. 이 규칙은 하나의 승인 풀에서 두 개의 승인이 필요하도록 지정합니다. 이 풀에는 123456789012 Amazon Web Services 계정에서 CodeCommitReview의 역할을 수임하고 CodeCommit에 액세스할 수 있는 모든 사용자가 포함됩니다. 또한 동일한 Amazon Web Services 계정의 Nikhil_Jayashankar라는 IAM 사용자 또는 페더레이션 사용자도 포함됩니다.

    aws codecommit create-pull-request-approval-rule --pull-request-id 27 --approval-rule-name "Require two approved approvers" --approval-rule-content "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}"
  2. 이 명령이 제대로 실행되면 다음과 비슷하게 출력됩니다.

    { "approvalRule": { "approvalRuleName": "Require two approved approvers", "lastModifiedDate": 1570752871.932, "ruleContentSha256": "7c44e6ebEXAMPLE", "creationDate": 1570752871.932, "approvalRuleId": "aac33506-EXAMPLE", "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major" } }