

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
<a name="integrating_gitlab"></a>

AWS Secrets Manager terintegrasi dengan GitLab. Anda dapat memanfaatkan rahasia Secrets Manager untuk melindungi GitLab kredensialmu sehingga tidak lagi di-hardcode. GitLab Sebagai gantinya, [GitLab Runner](https://docs.gitlab.com/runner/) mengambil rahasia ini dari Secrets Manager saat aplikasi Anda menjalankan pekerjaan di pipeline GitLab CI/CD.

Untuk menggunakan integrasi ini, Anda akan membuat [penyedia identitas OpenID Connect (OIDC) di IAM dan peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html) AWS Identity and Access Management . Hal ini memungkinkan GitLab Runner untuk mengakses rahasia Secrets Manager Anda. [Untuk informasi lebih lanjut tentang GitLab CI/CD dan OIDC, lihat dokumentasi. GitLab](https://docs.gitlab.com/ci/cloud_services/aws/)

## Pertimbangan-pertimbangan
<a name="gitlab-integration-considerations"></a>

Jika Anda menggunakan GitLab instans non-publik, Anda tidak dapat menggunakan integrasi Secrets Manager ini. Sebagai gantinya, lihat [GitLab dokumentasi untuk instance non-publik](https://docs.gitlab.com/ci/cloud_services/aws/#configure-a-non-public-gitlab-instance).

## Prasyarat
<a name="gitlab-integration-prerequisites"></a>

Untuk mengintegrasikan Secrets Manager dengan GitLab, lengkapi prasyarat berikut:

1. 

**Buat AWS Secrets Manager rahasia**

   Anda akan memerlukan rahasia Secrets Manager yang akan diambil dalam GitLab pekerjaan Anda dan menghilangkan kebutuhan untuk hard-code kredensil ini. Anda akan memerlukan Secrets Manager Secrets Secrets Secrets Secrets saat [mengonfigurasi GitLab pipeline](#configure-gitlab-pipeline). Untuk informasi selengkapnya, lihat [Buat AWS Secrets Manager rahasia](create_secret.md).

1. 

**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 dan dokumentasi OpenID Connect (OIDC)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_providers_create_oidc.html). GitLab](https://docs.gitlab.com/ci/cloud_services/aws/)

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

   1. <a name="step2-oidc-provider"></a>Atur `provider URL` ke GitLab instance Anda. Misalnya, **gitlab.example.com**.

   1. <a name="step2-oidc-audience"></a>Atur `audience` atau `aud` ke**sts.amazonaws.com**.

1. 

**Buat peran dan kebijakan IAM**

   Anda harus membuat peran dan kebijakan IAM. Peran ini diasumsikan oleh GitLab with [AWS Security Token Service (STS)](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html). Lihat [Membuat peran menggunakan kebijakan kepercayaan khusus](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-custom.html) 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](#step2-oidc-provider)) yang Anda gunakan di langkah 2.
      + Setel `Audience` ke [audiens](#step2-oidc-audience) yang sama dengan yang Anda gunakan di langkah 2.

   1. Berikut ini adalah contoh kebijakan kepercayaan yang memungkinkan GitLab untuk mengambil peran. Kebijakan kepercayaan Anda harus mencantumkan Akun AWS, GitLab URL, dan [jalur proyek](https://docs.gitlab.com/user/project/) 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*"
                ]
              }
            }
          }
        ]
      }
      ```

   1. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).  
****  

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

## Integrasi dengan AWS Secrets Manager GitLab
<a name="integrating-aws-secrets-manager-gitlab"></a>

Setelah menyelesaikan prasyarat, Anda dapat mengonfigurasi untuk menggunakan GitLab Secrets Manager untuk melindungi kredensialnya.

### Konfigurasikan GitLab pipeline untuk menggunakan Secrets Manager
<a name="configure-gitlab-pipeline"></a>

Anda harus memperbarui [file konfigurasi GitLab CI/CD](https://docs.gitlab.com/ci/yaml/yaml_optimization/) Anda dengan informasi berikut:
+ Penonton token diatur ke STS.
+ ID rahasia Secrets Manager.
+ Peran IAM yang ingin Anda asumsikan oleh GitLab Runner saat menjalankan pekerjaan di pipeline. GitLab
+ Di Wilayah AWS mana rahasia disimpan.

GitLab mengambil rahasia dari Secrets Manager dan menyimpan nilai dalam file sementara. Path ke file ini disimpan dalam CI/CD variabel, mirip dengan variabel [tipe file CI/CD](https://docs.gitlab.com/ci/variables/#use-file-type-cicd-variables).

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

```
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](https://docs.gitlab.com/ci/secrets/aws_secrets_manager/).

Secara opsional, Anda dapat menguji konfigurasi OIDC Anda di. GitLab Lihat [GitLab dokumentasi untuk menguji konfigurasi OIDC](https://docs.gitlab.com/ci/cloud_services/aws/#test-the-oidc-configuration) untuk informasi selengkapnya.

## Pemecahan masalah
<a name="troubleshooting-integration"></a>

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

### GitLab Masalah pipa
<a name="gitlab-pipeline-issues"></a>

Jika Anda mengalami masalah GitLab pipeline, pastikan hal berikut:
+ File YAMAL Anda diformat dengan benar. Untuk informasi lebih lanjut, lihat [GitLabdokumentasi](https://docs.gitlab.com/ee/ci/yaml/).
+  GitLab Pipeline Anda mengasumsikan peran yang benar, memiliki izin yang sesuai, dan akses ke rahasia yang benar AWS Secrets Manager .

### Sumber daya tambahan
<a name="additional-resources"></a>

Sumber daya berikut dapat membantu Anda memecahkan masalah dengan GitLab dan: AWS Secrets Manager
+ [GitLab Pemecahan masalah OIDC](https://docs.gitlab.com/ci/cloud_services/aws/#troubleshooting)
+ [Mendebug Pipa GitLab CI/CD](https://docs.gitlab.com/ee/ci/troubleshooting.html)
+ [Pemecahan masalah](ascp-eks-installation.md#troubleshooting)