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
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
Prasyarat
Untuk mengintegrasikan Secrets Manager dengan GitLab, lengkapi prasyarat berikut:
-
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.
-
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:
-
Atur
provider URLke GitLab instance Anda. Misalnya,gitlab.example.com. -
Atur
audienceatauaudkests.amazonaws.com.
-
-
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.
-
Di konsol IAM, gunakan pengaturan berikut saat membuat peran IAM:
-
Atur
Trusted entity typekeWeb identity. -
Atur
Groupkeyour GitLab group. -
Setel
Identity providerke URL penyedia yang sama (GitLab instance) yang Anda gunakan pada langkah 2. -
Setel
Audienceke audiens yang sama dengan yang Anda gunakan di langkah 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*" ] } } } ] }
-
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
-
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-1AWS_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
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: