사용자가 CodeBuild와 상호 작용하도록 허용 - AWS CodeBuild

사용자가 CodeBuild와 상호 작용하도록 허용

콘솔을 사용하여 시작하기의 단계를 따라 처음으로 AWS CodeBuild에 액세스하는 경우 이 주제의 정보가 거의 필요 없습니다. 그러나 CodeBuild를 계속 사용하면 조직의 다른 사용자 및 그룹에 CodeBuild와 상호 작용할 수 있는 기능을 부여하는 등의 작업을 수행할 수 있습니다.

IAM 사용자 또는 그룹이 AWS CodeBuild와 상호 작용하도록 허용하려면 CodeBuild에 대한 액세스 권한을 부여해야 합니다. 이 섹션에서는 IAM 콘솔이나 AWS CLI를 사용하여 이를 수행하는 방법을 설명합니다.

AWS 루트 계정(권장 안 함)을 사용하여 또는 AWS 계정의 관리자 사용자로 CodeBuild에 액세스하는 경우 다음 지침을 따르지 않아도 됩니다.

AWS 계정 루트 사용자 및 관리자 사용자에 대한 자세한 내용은 사용 설명서에서 AWS 계정 루트 사용자첫 번째 AWS 계정 루트 사용자 및 그룹 생성을 참조하세요.

IAM 그룹 또는 사용자에게 CodeBuild 액세스 권한을 추가하려면(콘솔)
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

    다음 중 하나를 사용하여 AWS Management Console에 이미 로그인되어 있어야 합니다.

    • 사용자의 AWS 루트 계정. 이는 권장하지 않습니다. 자세한 내용은 사용 설명서의 AWS 계정 루트 사용자를 참조하세요.

    • AWS 계정의 관리자 사용자. 자세한 내용은 사용 설명서에서 첫 번째 AWS 계정 루트 사용자 및 그룹 생성을 참조하세요.

    • 최소한 다음 작업 세트를 수행할 수 있는 권한이 있는 AWS 계정의 사용자.

      iam:AttachGroupPolicy iam:AttachUserPolicy iam:CreatePolicy iam:ListAttachedGroupPolicies iam:ListAttachedUserPolicies iam:ListGroups iam:ListPolicies iam:ListUsers

      자세한 내용은 사용 설명서의 IAM 정책 개요를 참조하세요.

  2. 탐색 창에서 Policies를 선택합니다.

  3. IAM 그룹이나 IAM 사용자에게 사용자 지정 AWS CodeBuild 액세스 권한 세트를 추가하려면 이 절차의 4단계로 이동합니다.

    IAM 그룹이나 IAM 사용자에게 기본 CodeBuild 액세스 권한 세트를 추가하려면 정책 유형, AWS 관리형을 선택한 후 다음을 수행합니다.

    • CodeBuild에 대한 전체 액세스 권한을 추가하려면 AWSCodeBuildAdminAccess 확인란을 선택하고 정책 작업을 선택한 다음, 연결을 선택합니다. 대상 IAM 그룹 및 사용자 옆의 확인란을 선택하고 정책 연결을 선택합니다. [AmazonS3ReadOnlyAccess] 및 [IAMFullAccess]라는 정책에 대해서도 이 절차를 반복합니다.

    • 빌드 프로젝트 관리를 제외한 모든 항목에 CodeBuild에 대한 액세스 권한을 추가하려면 AWSCodeBuildDeveloperAccess 확인란을 선택하고 정책 작업을 선택한 다음, 연결을 선택합니다. 대상 IAM 그룹 및 사용자 옆의 확인란을 선택하고 정책 연결을 선택합니다. [AmazonS3ReadOnlyAccess] 정책에 대해서도 이 절차를 반복합니다.

    • CodeBuild에 대해 읽기 전용 액세스 권한을 추가하려면 AWSCodeBuildReadOnlyAccess 확인란을 선택합니다. 대상 IAM 그룹 및 사용자 옆의 확인란을 선택하고 정책 연결을 선택합니다. [AmazonS3ReadOnlyAccess] 정책에 대해서도 이 절차를 반복합니다.

    이제 IAM 그룹 또는 사용자에게 기본 CodeBuild 액세스 권한 세트가 추가되었습니다. 이 절차의 나머지 단계는 건너뜁니다.

  4. 정책 생성(Create Policy)을 선택합니다.

  5. [Create Policy] 페이지에서 [Create Your Own Policy] 옆의 [Select]를 선택합니다.

  6. 정책 검토 페이지의 정책 이름에 정책 이름을 입력합니다(예: CodeBuildAccessPolicy). 다른 이름을 사용하는 경우 이 절차 전체에서 해당 이름을 사용해야 합니다.

  7. 정책 문서에 다음을 입력한 다음 정책 생성을 선택합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildAccessPolicy", "Effect": "Allow", "Action": [ "codebuild:*" ], "Resource": "*" }, { "Sid": "CodeBuildRolePolicy", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-ID:role/role-name" }, { "Sid": "CloudWatchLogsAccessPolicy", "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Sid": "S3AccessPolicy", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetObject", "s3:List*", "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }
    참고

    다음 정책은 모든 CodeBuild 작업 및 대다수의 AWS 리소스에 대한 액세스를 허용합니다. 특정 CodeBuild 작업으로 권한을 제한하려면 CodeBuild 정책 명령에서 codebuild:*의 값을 변경합니다. 자세한 내용은 자격 증명 및 액세스 관리 단원을 참조하십시오. 특정 AWS 리소스로 액세스를 제한하려면 Resource 객체 값을 변경하십시오. 자세한 내용은 자격 증명 및 액세스 관리 단원을 참조하십시오.

  8. 탐색 창에서 [Groups] 또는 [Users]를 선택합니다.

  9. 그룹 또는 사용자 목록에서 CodeBuild 액세스 권한을 추가하려는 IAM 그룹 또는 IAM 사용자의 이름을 선택합니다.

  10. 그룹의 경우 그룹 설정 페이지의 권한 탭에서 관리형 정책을 확장한 다음 정책 연결을 선택합니다.

    사용자의 경우 사용자 설정 페이지의 [Permissions] 탭에서 [Add permissions]를 선택합니다.

  11. 그룹의 경우 정책 연결 페이지에서 CodeBuildAccessPolicy를 선택한 후 정책 연결을 선택합니다.

    사용자의 경우 권한 추가 페이지에서 기존 정책 직접 연결을 선택합니다. CodeBuildAccessPolicy, 다음: 검토를 차례로 선택한 후 권한 추가를 선택합니다.

CodeBuild 액세스 권한을 IAM 그룹 또는 사용자에게 추가하려면(AWS CLI)
  1. 이전 절차에서 설명한 대로 IAM 엔터티 중 하나에 해당하는 AWS 액세스 키 및 AWS 비밀 액세스 키를 사용하여 AWS CLI를 구성했는지 확인합니다. 자세한 내용은 AWS Command Line Interface 사용 설명서의 AWS Command Line Interface 설정을 참조하세요.

  2. IAM 그룹이나 IAM 사용자에게 사용자 지정 AWS CodeBuild 액세스 권한 세트를 추가하려면 이 절차의 3단계로 이동합니다.

    IAM 그룹 또는 IAM 사용자에게 기본 CodeBuild 액세스 권한 세트를 추가하려면 다음을 수행합니다.

    IAM 그룹 또는 사용자에게 권한을 추가할 것인지에 따라 다음 명령 중 하나를 실행합니다.

    aws iam attach-group-policy --group-name group-name --policy-arn policy-arn aws iam attach-user-policy --user-name user-name --policy-arn policy-arn

    group-name 또는 user-name을 IAM 그룹 이름 또는 사용자 이름으로 변경하고 다음 정책 Amazon 리소스 이름(ARN)마다 한 번씩 policy-arn을 변경하는 등 명령을 3번 실행해야 합니다.

    • CodeBuild에 전체 액세스 권한을 추가하려면 다음 정책 ARN을 사용합니다.

      • arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess

      • arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

      • arn:aws:iam::aws:policy/IAMFullAccess

    • CodeBuild에 빌드 프로젝트 관리를 제외한 전체 액세스 권한을 추가하려면 다음 정책 ARN을 사용합니다.

      • arn:aws:iam::aws:policy/AWSCodeBuildDeveloperAccess

      • arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

    • CodeBuild에 읽기 전용 액세스 권한을 추가하려면 다음 정책 ARN을 사용합니다.

      • arn:aws:iam::aws:policy/AWSCodeBuildReadOnlyAccess

      • arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

    이제 IAM 그룹 또는 사용자에게 기본 CodeBuild 액세스 권한 세트가 추가되었습니다. 이 절차의 나머지 단계는 건너뜁니다.

  3. AWS CLI가 설치된 로컬 워크스테이션 또는 인스턴스의 빈 디렉터리에 put-group-policy.json 또는 put-user-policy.json이라는 파일을 생성합니다. 다른 파일 이름을 선택하는 경우 이 절차 전체에서 해당 이름을 사용해야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildAccessPolicy", "Effect": "Allow", "Action": [ "codebuild:*" ], "Resource": "*" }, { "Sid": "CodeBuildRolePolicy", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-ID:role/role-name" }, { "Sid": "CloudWatchLogsAccessPolicy", "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Sid": "S3AccessPolicy", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetObject", "s3:List*", "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }
    참고

    다음 정책은 모든 CodeBuild 작업 및 대다수의 AWS 리소스에 대한 액세스를 허용합니다. 특정 CodeBuild 작업으로 권한을 제한하려면 CodeBuild 정책 명령에서 codebuild:*의 값을 변경합니다. 자세한 내용은 자격 증명 및 액세스 관리 단원을 참조하십시오. 특정 AWS 리소스로 액세스를 제한하려면 관련된 Resource 객체 값을 변경하십시오. 자세한 정보는 자격 증명 및 액세스 관리 또는 특정 AWS 서비스의 보안 설명서를 참조하십시오.

  4. 파일을 저장한 디렉터리로 전환한 다음, 다음 명령 중 하나를 실행합니다. CodeBuildGroupAccessPolicyCodeBuildUserAccessPolicy에 다른 값을 사용할 수도 있습니다. 다른 값을 사용하는 경우 여기에서 사용해야 합니다.

    IAM 그룹의 경우:

    aws iam put-group-policy --group-name group-name --policy-name CodeBuildGroupAccessPolicy --policy-document file://put-group-policy.json

    사용자의 경우:

    aws iam put-user-policy --user-name user-name --policy-name CodeBuildUserAccessPolicy --policy-document file://put-user-policy.json

    앞의 명령에서 group-name 또는 user-name을 대상 IAM 그룹 또는 사용자의 이름으로 변경합니다.