InfoGrab Docs

GitLab CI/CD에서 AWS Secrets Manager 시크릿 사용

GitLab CI/CD에서 AWS Secrets Manager 시크릿 사용에 대해 설명합니다.

히스토리 GitLab 18.2에서 ci_aws_secrets_manager 라는 플래그 와 함께 도입 되었습니다. 기본적으로 비활성화되어 있습니다. GitLab 18.3에서 일반 사용 가능 이 되었습니다. GitLab CI/CD 파이프라인에서 AWS Secrets Manager 에 저장된 시크릿을 사용할 수 있습니다. 사전 요구 사항: AWS 계정에서 AWS Secrets Manager에 접근할 수 있어야 합니다. 다음 방법 중 하나를 사용하여 인증을 구성합니다: IAM 역할 : GitLab Runner 인스턴스에 할당된 IAM 역할을 사용합니다. OpenID Connect : AWS에서 OpenID Connect 구성 으로 임시 자격 증명을 검색합니다. AWS 구성에 대한 세부 정보를 제공하기 위해 프로젝트에 CI/CD 변수를 추가 합니다: AWS_REGION : 시크릿이 저장된 AWS 리전. AWS_ROLE_ARN : 가정할 AWS IAM 역할의 ARN (OpenID Connect 사용 시 필수). AWS_ROLE_SESSION_NAME : 선택 사항. 가정된 역할에 대한 커스텀 세션 이름. CI/CD 작업에서 AWS Secrets Manager 시크릿 사용 # IAM 역할 인증 사용 # aws_secrets_manager 키워드로 정의하여 작업에서 AWS Secrets Manager에 저장된 시크릿을 사용할 수 있습니다. 이 방법은 GitLab Runner 인스턴스에 할당된 IAM 역할을 사용합니다. Kubernetes executor 또는 자동 확장 을 사용할 때 IAM 역할이 러너 관리자에 적용되어 있는지 확인합니다. 사전 요구 사항: GitLab Runner 18.3 이상. 예를 들어: variables: AWS_REGION: us-east-1 database-migration: secrets: DATABASE_PASSWORD: aws_secrets_manager: secret_id: app-secrets/database field: 'password' file: false stage: deploy script: - echo "Running database migration..." - mysql -h $DB_HOST -u $DB_USER -p$DATABASE_PASSWORD < migration.sql - echo "Migration completed successfully." OpenID Connect 인증 사용 # 강화된 보안을 위해 OpenID Connect를 사용하여 AWS를 인증하고 특정 IAM 역할을 가정할 수 있습니다. 기본적으로 러너는 AWS_ID_TOKEN 이라는 ID 토큰을 찾습니다. 예를 들어: variables: AWS_REGION: us-east-1 AWS_ROLE_ARN: 'arn:aws:iam::123456789012:role/gitlab-secrets-role' database-migration: id_tokens: AWS_ID_TOKEN: aud: 'sts.amazonaws.com' se