View a markdown version of this page

Gunakan AWS Secrets Manager di GitLab - AWS Secrets Manager

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan AWS Secrets Manager di GitLab

AWS Secrets Manager terintegrasi dengan GitLab. Anda dapat memanfaatkan rahasia Manajer Rahasia untuk melindungi GitLab kredensibilitas Anda sehingga tidak lagi di-hardcode. GitLab Sebagai gant GitLab inya, Runner mengambil rahasia ini dari Secrets Manager saat aplikasi Anda menjalankan pekerjaan di GitLab CI/CD pipeline.

Untuk menggunakan integrasi ini, Anda akan membuat penyedia identitas OpenID Connect (OIDC) di IAM AWS Identity and Access Management dan peran IAM. Ini memungkinkan GitLab Runner untuk mengakses rahasia Manajer Rahasia Anda. Untuk informasi selengkapnya tentang GitLab CI/CD dan OIDC, lihat GitLab dokumentasi.

Pertimbangan-pertimbangan

Jika Anda menggunakan GitLab instance non-publik, Anda tidak dapat menggunakan integrasi Manajer Rahasia ini. Sebagai gantinya, lihat GitLab dokumentasi untuk inst ans non-publik.

Prasyarat

Untuk mengintegrasikan Secrets Manager dengan GitLab, lengkapi prasyarat berikut:

  1. Buat AWS Secrets Manager Rahasia

    Anda akan memerlukan rahasia Manajer Rahasia yang akan diambil di GitLab pekerjaan Anda dan menghilangkan kebutuhan untuk mengkodekan kredenSIAL ini. Anda akan memerlukan ID rahasia Manajer Rahasia saat mengonfigurasi GitLab pipeline Anda. Untuk informasi selengkapnya, lihat Buat AWS Secrets Manager Rahasia.

  2. GitLab Buat penyedia OIDC Anda di konsol IAM.

    Pada langkah ini, Anda akan membuat penyedia OIDC GitLab Anda di konsol IAM. Untuk informasi selengkapnya, lihat Membuat penyedia identitas OpenID Connect (OIDC) dan GitLab dokumentasi.

    Saat membuat penyedia OIDC di konsol IAM, gunakan konfigurasi berikut:

    1. Atur provider URL ke GitLab instance Anda. Misalnya, gitlab.example.com.

    2. Atur audience atau aud kests.amazonaws.com.

  3. Membuat peran dan kebijakan IAM

    Anda harus membuat peran dan kebijakan IAM. Peran ini diasumsikan oleh GitLab dengan AWS Security Token Service (STS). Lihat Membuat peran menggunakan kebijakan kepercayaan khusus untuk informasi selengkapnya.

    1. Di konsol IAM, gunakan pengaturan berikut saat membuat peran IAM:

      • Atur Trusted entity type ke Web identity.

      • Atur Group ke your GitLab group.

      • Setel Identity provider ke URL penyedia yang sama (GitLab instance) yang Anda gunakan pada langkah 2.

      • Setel Audience ke audiens yang sama dengan yang Anda gunakan di langkah 2.

    2. Berikut ini adalah contoh kebijakan kepercayaan yang memungkinkan GitLab untuk mengambil peran. Kebijakan kepercayaan Anda harus mencantumkan GitLab URL Akun AWS, dan jalur proyek Anda.

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRoleWithWebIdentity", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/gitlab.example.com" }, "Condition": { "StringEquals": { "gitlab.example.com:aud": [ "sts.amazon.com" ] }, "StringLike": { "gitlab.example.com:sub": [ "project_path:mygroup/project-*:ref_type:branch-*:ref:main*" ] } } } ] }
    3. Anda juga harus membuat kebijakan IAM untuk mengizinkan GitLab akses ke AWS Secrets Manager. Anda dapat menambahkan kebijakan ini ke kebijakan kepercayaan Anda. Untuk informasi selengkapnya, lihat Membuat kebijakan IAM.

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:your-secret" } ] }

Mengintegrasikan AWS Secrets Manager dengan GitLab

Setelah menyelesaikan prasyarat, Anda dapat mengonfigurasi GitLab untuk menggunakan Manajer Rahasia untuk melindungi kredenSIAL Anda.

Konfigur GitLab asikan pipeline untuk menggunakan Secrets Manager

Anda harus memperbarui file GitLab CI/CD konfigurasi Anda dengan informasi berikut:

  • Penonton token diatur ke STS.

  • ID rahasia Manajer Rahasia.

  • Peran IAM yang Anda ingin GitLab Runner ambil saat menjalankan pekerjaan dalam GitLab pipeline.

  • Dim Wilayah AWS ana rahasianya disimpan.

GitLab mengambil rahasia dari Secrets Manager dan menyimpan nilainya dalam file sementara. Jalur ke file ini disimpan dalam CI/CD variabel, mirip dengan CI/CD variabel tipe file.

Berikut ini adalah cuplikan file YAML untuk file GitLab CI/CD konfigurasi:

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"

Untuk informasi selengkapnya, lihat dokumentasi integrasi GitLab Secrets Manager.

Secara opsional, Anda dapat menguji konfigurasi OIDC Anda di GitLab. Lihat GitLab dokumentasi untuk menguji konfigurasi OIDC untuk informasi selengkapnya.

Pemecahan masalah

Berikut ini dapat membantu Anda memecahkan masalah umum yang mungkin Anda temui saat mengintegrasikan Secrets Manager dengan GitLab.

GitLab Masalah pipa

Jika Anda mengalami masalah GitLab pipeline, pastikan hal berikut:

  • File YAML Anda diformat dengan benar. Untuk informasi selengkapnya, lihat GitLab dokumentasi.

  • GitLab Pipeline Anda mengambil peran yang benar, memiliki izin yang sesuai, dan akses ke AWS Secrets Manager rahasia yang benar.

Sumber daya tambahan

Sumber daya berikut dapat membantu Anda memecahkan masalah dengan GitLab dan AWS Secrets Manager: