GitLab AWS Secrets Manager 에서 사용 - AWS Secrets Manager

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

GitLab AWS Secrets Manager 에서 사용

AWS Secrets Manager 는 GitLab과 통합됩니다. Secrets Manager 보안 암호를 활용하여 GitLab에서 더 이상 하드코딩되지 않도록 GitLab 자격 증명을 보호할 수 있습니다. 대신 GitLab Runner는 애플리케이션이 GitLab CI/CD 파이프라인에서 작업을 실행할 때 Secrets Manager에서 이러한 보안 암호를 검색합니다.

이 통합을 사용하려면 IAM 및 IAM 역할에 OpenID Connect(OIDC) 자격 증명 공급자 AWS Identity and Access Management 를 생성합니다. 이렇게 하면 GitLab Runner가 Secrets Manager 보안 암호에 액세스할 수 있습니다. GitLab CI/CD 및 OIDC에 대한 자세한 내용은 GitLab 설명서를 참조하세요.

고려 사항

비공개 GitLab 인스턴스를 사용하는 경우이 Secrets Manager 통합을 사용할 수 없습니다. 대신 비공개 인스턴스에 대한 GitLab 설명서를 참조하세요.

사전 조건

Secrets Manager를 GitLab과 통합하려면 다음 사전 조건을 완료합니다.

  1. AWS Secrets Manager 보안 암호 생성

    GitLab 작업에서 검색되고 이러한 자격 증명을 하드 코딩할 필요가 없는 Secrets Manager 보안 암호가 필요합니다. GitLab 파이프라인을 구성할 때 Secrets Manager 보안 암호 ID가 필요합니다. 자세한 정보는 AWS Secrets Manager 보안 암호 생성을 참조하세요.

  2. IAM 콘솔에서 GitLab을 OIDC 공급자로 설정합니다.

    이 단계에서는 IAM 콘솔에서 GitLab을 OIDC 공급자로 설정합니다. 자세한 내용은 OpenID Connect(OIDC) 자격 증명 공급자 생성GitLab 설명서를 참조하세요.

    IAM 콘솔에서 OIDC 공급자를 생성할 때 다음 구성을 사용합니다.

    1. 를 GitLab 인스턴스provider URL로 설정합니다. 예를 들어 gitlab.example.com입니다.

    2. audience 또는를 aud로 설정합니다sts.amazonaws.com.

  3. IAM 역할 및 정책 생성

    IAM 역할 및 정책을 생성해야 합니다. 이 역할은 GitLab with AWS Security Token Service (STS)에서 수임합니다. 자세한 내용은 사용자 지정 신뢰 정책을 사용하여 역할 생성을 참조하세요.

    1. IAM 콘솔에서 IAM 역할을 생성할 때 다음 설정을 사용합니다.

      • Trusted entity typeWeb identity으로 설정합니다.

      • Groupyour GitLab group로 설정합니다.

      • Identity provider를 2단계에서 사용한 것과 동일한 공급자 URL(GitLab 인스턴스)로 설정합니다.

      • 2단계에서 사용한 것과 동일한 대상으로 Audience 설정합니다.

    2. 또한 GitLab 액세스를 허용하려면 IAM 정책을 생성해야 합니다 AWS Secrets Manager. 이 정책을 신뢰 정책에 추가할 수 있습니다. 자세한 내용은 IAM 정책 생성을 참조하세요.

GitLab AWS Secrets Manager 과 통합

사전 조건을 완료한 후 Secrets Manager를 사용하여 자격 증명을 보호하도록 GitLab을 구성할 수 있습니다.

Secrets Manager를 사용하도록 GitLab 파이프라인 구성

GitLab CI/CD 구성 파일을 다음 정보로 업데이트해야 합니다.

  • STS로 설정된 토큰의 대상입니다.

  • Secrets Manager 보안 암호 ID입니다.

  • GitLab 파이프라인에서 작업을 실행할 때 GitLab Runner가 수임할 IAM 역할입니다.

  • 보안 암호가 저장 AWS 리전 되는 입니다.

GitLab은 Secrets Manager에서 암호를 가져와 임시 파일에 값을 저장합니다. 이 파일의 경로는 파일 유형 CI/CD 변수와 유사한 CI/CD 변수에 저장됩니다.

다음은 GitLab CI/CD 구성 파일의 YAML 파일 조각입니다.

variables: AWS_REGION: us-east-1 AWS_ROLE_ARN: 'arn:aws:iam::111122223333:role/gitlab-role' job: id_tokens: AWS_ID_TOKEN: aud: 'sts.amazonaws.com' secrets: DATABASE_PASSWORD: aws_secrets_manager: secret_id: "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name"

자세한 내용은 GitLab Secrets Manager 통합 설명서를 참조하세요.

선택적으로 GitLab에서 OIDC 구성을 테스트할 수 있습니다. 자세한 내용은 OIDC 구성 테스트에 대한 GitLab 설명서를 참조하세요.

문제 해결

다음은 Secrets Manager를 GitLab과 통합할 때 발생할 수 있는 일반적인 문제를 해결하는 데 도움이 될 수 있습니다.

GitLab 파이프라인 문제

GitLab 파이프라인 문제가 발생하는 경우 다음을 확인하세요.

  • YAML 파일의 형식이 올바르게 지정되었습니다. 자세한 내용은 GitLab 설명서를 참조하세요.

  • GitLab 파이프라인이 올바른 역할을 수임하고, 적절한 권한을 가지며, 올바른 AWS Secrets Manager 보안 암호에 액세스합니다.

추가 리소스

다음 리소스는 GitLab 및 관련 문제를 해결하는 데 도움이 될 수 있습니다. AWS Secrets Manager