

 **Bantu tingkatkan halaman ini** 

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

Untuk berkontribusi pada panduan pengguna ini, pilih **Edit halaman ini pada GitHub** tautan yang terletak di panel kanan setiap halaman.

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

# Konfigurasikan akses repositori
<a name="argocd-configure-repositories"></a>

Sebelum menerapkan aplikasi, konfigurasikan Argo CD untuk mengakses repositori Git dan registrasi bagan Helm Anda. Argo CD mendukung beberapa metode otentikasi untuk GitHub, Bitbucket GitLab,, dan ECR. AWS CodeCommit AWS 

**catatan**  
Untuk integrasi AWS layanan langsung (bagan Helm ECR, CodeCommit repositori, dan CodeConnections), Anda dapat mereferensikannya secara langsung di sumber daya Aplikasi tanpa membuat konfigurasi Repositori. Peran Kemampuan harus memiliki izin IAM yang diperlukan. Lihat [Konfigurasikan izin Argo CD](argocd-permissions.md) untuk detail.

## Prasyarat
<a name="_prerequisites"></a>
+ Cluster EKS dengan kemampuan Argo CD dibuat
+ Repositori Git yang berisi manifes Kubernetes
+  `kubectl`dikonfigurasi untuk berkomunikasi dengan cluster Anda

**catatan**  
 AWS CodeConnections dapat terhubung ke server Git yang berada di AWS Cloud atau lokal. Untuk informasi selengkapnya, lihat [AWS CodeConnections](https://docs.aws.amazon.com/codeconnections/latest/userguide/welcome.html).

## Metode otentikasi
<a name="_authentication_methods"></a>


<table>
<thead>
  <tr><th>Metode</th><th>Kasus Penggunaan</th><th>Izin IAM Diperlukan</th></tr>
</thead>
<tbody>
  <tr><td colspan="3"> **Integrasi langsung dengan AWS layanan** </td></tr>
  <tr><td>CodeCommit</td><td>Integrasi langsung dengan AWS CodeCommit repositori Git. Tidak diperlukan konfigurasi Repositori.</td><td> `codecommit:GitPull` </td></tr>
  <tr><td>CodeConnections</td><td>Connect to GitHub, GitLab, atau Bitbucket dengan autentikasi terkelola. Membutuhkan pengaturan koneksi.</td><td> `codeconnections:UseConnection` </td></tr>
  <tr><td>Artefak ECR OCI</td><td>Integrasi langsung dengan AWS ECR untuk bagan Helm OCI dan gambar manifes. Tidak diperlukan konfigurasi Repositori.</td><td> `arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly` </td></tr>
  <tr><td colspan="3"> **Konfigurasi repositori dengan kredensional** </td></tr>
  <tr><td> AWS Secrets Manager (Nama Pengguna/Token)</td><td>Simpan token atau kata sandi akses pribadi. Mengaktifkan rotasi kredenal tanpa akses Kubernetes.</td><td> `arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess` </td></tr>
  <tr><td> AWS Secrets Manager (Kunci SSH)</td><td>Gunakan otentikasi kunci SSH. Mengaktifkan rotasi kredenal tanpa akses Kubernetes.</td><td> `arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess` </td></tr>
  <tr><td> AWS Secrets Manager (GitHub Aplikasi)</td><td>GitHub Otentikasi aplikasi dengan kunci pribadi. Mengaktifkan rotasi kredenal tanpa akses Kubernetes.</td><td> `arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess` </td></tr>
  <tr><td>Rahasia Kubernetes</td><td>Metode CD Argo standar menggunakan rahasia in-cluster</td><td>Tidak ada (izin ditangani oleh EKS Access Entry dengan Kubernetes RBAC)</td></tr>
</tbody>
</table>


## Akses langsung ke AWS layanan
<a name="direct_access_to_shared_aws_services"></a>

Untuk AWS layanan, Anda dapat mereferensikannya secara langsung di sumber daya Aplikasi tanpa membuat konfigurasi Repositori. Peran Kemampuan harus memiliki izin IAM yang diperlukan.

### CodeCommit repositori
<a name="_codecommit_repositories"></a>

 CodeCommit Repositori referensi langsung di Aplikasi:

```
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
  namespace: argocd
spec:
  source:
    repoURL: https://git-codecommit.{{region}}.amazonaws.com/v1/repos/{{repository-name}}
    targetRevision: main
    path: kubernetes/manifests
```

Izin Peran Kemampuan yang Diperlukan:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codecommit:GitPull",
      "Resource": "arn:aws:codecommit:region:account-id:repository-name"
    }
  ]
}
```

### CodeConnections
<a name="_codeconnections"></a>

Referensi GitHub, GitLab, atau repositori Bitbucket melalui. CodeConnections Format URL repositori berasal dari koneksi CodeConnections ARN.

Format URL repositori adalah:

```
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
  namespace: argocd
spec:
  source:
    repoURL: https://codeconnections.{{region}}.amazonaws.com/git-http/{{account-id}}/{{region}}/{{connection-id}}/{{owner}}/{{repository}}.git
    targetRevision: main
    path: kubernetes/manifests
```

Izin Peran Kemampuan yang Diperlukan:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codeconnections:UseConnection",
      "Resource": "arn:aws:codeconnections:region:account-id:connection/connection-id"
    }
  ]
}
```

### Grafik ECR Helm
<a name="_ecr_helm_charts"></a>

ECR menyimpan bagan Helm sebagai artefak OCI. Argo CD mendukung dua cara untuk mereferensikannya:

 **Format helm** (direkomendasikan untuk bagan Helm):

```
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app-helm
  namespace: argocd
spec:
  source:
    repoURL: {{account-id}}.dkr.ecr.{{region}}.amazonaws.com/{{repository-name}}
    targetRevision: {{chart-version}}
    chart: {{chart-name}}
    helm:
      valueFiles:
        - values.yaml
```

Catatan: Jangan sertakan `oci://` awalan saat menggunakan format Helm. Gunakan `chart` bidang untuk menentukan nama bagan.

 **Format OCI** (untuk artefak OCI dengan manifes Kubernetes):

```
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app-oci
  namespace: argocd
spec:
  source:
    repoURL: oci://{{account-id}}.dkr.ecr.{{region}}.amazonaws.com/{{repository-name}}
    targetRevision: {{artifact-version}}
    path: {{path-to-manifests}}
```

Catatan: Sertakan `oci://` awalan saat menggunakan format OCI. Gunakan `path` bidang sebagai ganti`chart`.

Izin Peran Kemampuan yang Diperlukan - lampirkan kebijakan terkelola:

```
arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
```

Kebijakan ini mencakup izin ECR yang diperlukan:`ecr:GetAuthorizationToken`,`ecr:BatchGetImage`, dan. `ecr:GetDownloadUrlForLayer`

## Menggunakan AWS Secrets Manager
<a name="using_shared_aws_secrets_manager"></a>

Simpan kredensyal repositori di Secrets Manager dan referensikan mereka dalam konfigurasi Argo CD Repository. Menggunakan Secrets Manager memungkinkan rotasi kredenal otomatis tanpa memerlukan akses Kubernetes RBAC — kredensyal dapat diputar menggunakan izin IAM ke Secrets Manager, dan Argo CD secara otomatis membaca nilai yang diperbarui.

**catatan**  
Untuk penggunaan kembali kredensyal di beberapa repositori (misalnya, semua repositori di bawah GitHub organisasi), gunakan templat kredensyal repositori dengan. `argocd.argoproj.io/secret-type: repo-creds` Ini memberikan UX yang lebih baik daripada membuat rahasia repositori individu. Untuk informasi selengkapnya, lihat [Kredensial Repositori](https://argo-cd.readthedocs.io/en/stable/operator-manual/argocd-repo-creds-yaml/) dalam dokumentasi Argo CD.

### Otentikasi nama pengguna dan token
<a name="_username_and_token_authentication"></a>

Untuk repositori HTTPS dengan token atau kata sandi akses pribadi:

 **Buat rahasia di Secrets Manager**:

```
aws secretsmanager create-secret \
  --name argocd/my-repo \
  --description "GitHub credentials for Argo CD" \
  --secret-string '{"username":"your-username","token":"your-personal-access-token"}'
```

 **Bidang sertifikat klien TLS opsional** (untuk server Git pribadi):

```
aws secretsmanager create-secret \
  --name argocd/my-private-repo \
  --secret-string '{
    "username":"your-username",
    "token":"your-token",
    "tlsClientCertData":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi4uLgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t",
    "tlsClientCertKey":"LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi4uLgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0t"
  }'
```

**catatan**  
`tlsClientCertKey`Nilai `tlsClientCertData` dan harus dikodekan base64.

 **Buat Rahasia Repositori yang mereferensikan Secrets Manager**:

```
apiVersion: v1
kind: Secret
metadata:
  name: my-repo
  namespace: argocd
  labels:
    argocd.argoproj.io/secret-type: repository
stringData:
  type: git
  url: https://github.com/your-org/your-repo
  secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/my-repo-AbCdEf
  project: default
```

### Otentikasi kunci SSH
<a name="_ssh_key_authentication"></a>

Untuk akses Git berbasis SSH, simpan kunci pribadi sebagai plaintext (bukan JSON):

 **Buat rahasia dengan kunci pribadi SSH**:

```
aws secretsmanager create-secret \
  --name argocd/my-repo-ssh \
  --description "SSH key for Argo CD" \
  --secret-string "-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
...
-----END OPENSSH PRIVATE KEY-----"
```

 **Buat Rahasia Repositori untuk SSH**:

```
apiVersion: v1
kind: Secret
metadata:
  name: my-repo-ssh
  namespace: argocd
  labels:
    argocd.argoproj.io/secret-type: repository
stringData:
  type: git
  url: git@github.com:your-org/your-repo.git
  secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/my-repo-ssh-AbCdEf
  project: default
```

### GitHub Otentikasi aplikasi
<a name="_github_app_authentication"></a>

Untuk otentikasi GitHub Aplikasi dengan kunci pribadi:

 **Buat rahasia dengan kredensyal GitHub Aplikasi**:

```
aws secretsmanager create-secret \
  --name argocd/github-app \
  --description "GitHub App credentials for Argo CD" \
  --secret-string '{
    "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=",
    "githubAppID":"123456",
    "githubAppInstallationID":"12345678"
  }'
```

**catatan**  
`githubAppPrivateKeySecret`Nilai harus dikodekan base64.

 **Bidang opsional untuk GitHub Perusahaan**:

```
aws secretsmanager create-secret \
  --name argocd/github-enterprise-app \
  --secret-string '{
    "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=",
    "githubAppID":"123456",
    "githubAppInstallationID":"12345678",
    "githubAppEnterpriseBaseUrl":"https://github.example.com/api/v3"
  }'
```

 **Buat Rahasia Repositori untuk GitHub Aplikasi**:

```
apiVersion: v1
kind: Secret
metadata:
  name: my-repo-github-app
  namespace: argocd
  labels:
    argocd.argoproj.io/secret-type: repository
stringData:
  type: git
  url: https://github.com/your-org/your-repo
  secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/github-app-AbCdEf
  project: default
```

### Templat kredensi repositori
<a name="_repository_credential_templates"></a>

Untuk penggunaan kembali kredensyal di beberapa repositori (misalnya, semua repositori di bawah GitHub organisasi atau pengguna), gunakan templat kredensi repositori dengan. `argocd.argoproj.io/secret-type: repo-creds` Ini memberikan UX yang lebih baik daripada membuat rahasia repositori individual untuk setiap repositori.

 **Buat template kredensi repositori**:

```
apiVersion: v1
kind: Secret
metadata:
  name: github-org-creds
  namespace: argocd
  labels:
    argocd.argoproj.io/secret-type: repo-creds
stringData:
  type: git
  url: https://github.com/your-org
  secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/github-org-AbCdEf
```

Template kredensyal ini berlaku untuk semua repositori yang cocok dengan awalan URL. `https://github.com/your-org` Anda kemudian dapat mereferensikan repositori apa pun di bawah organisasi ini di Aplikasi tanpa membuat rahasia tambahan.

Untuk informasi selengkapnya, lihat [Kredensial Repositori](https://argo-cd.readthedocs.io/en/stable/operator-manual/argocd-repo-creds-yaml/) dalam dokumentasi Argo CD.

**penting**  
Pastikan Peran Kemampuan IAM Anda memiliki kebijakan terkelola yang `arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess` dilampirkan, atau izin yang setara termasuk `secretsmanager:GetSecretValue` dan izin dekripsi KMS. Lihat [Pertimbangan Argo CD](argocd-considerations.md) konfigurasi kebijakan IAM.

## Menggunakan AWS CodeConnections
<a name="using_shared_aws_codeconnections"></a>

Untuk CodeConnections integrasi, lihat[Connect ke repositori Git dengan AWS CodeConnections](integration-codeconnections.md).

CodeConnections menyediakan otentikasi terkelola untuk GitHub, GitLab, dan Bitbucket tanpa menyimpan kredensyal.

## Menggunakan Rahasia Kubernetes
<a name="_using_kubernetes_secrets"></a>

Simpan kredensyal secara langsung di Kubernetes menggunakan metode CD Argo standar.

 **Untuk HTTPS dengan token akses pribadi**:

```
apiVersion: v1
kind: Secret
metadata:
  name: my-repo
  namespace: argocd
  labels:
    argocd.argoproj.io/secret-type: repository
stringData:
  type: git
  url: https://github.com/your-org/your-repo
  username: your-username
  password: your-personal-access-token
```

 **Untuk SSH**:

```
apiVersion: v1
kind: Secret
metadata:
  name: my-repo-ssh
  namespace: argocd
  labels:
    argocd.argoproj.io/secret-type: repository
stringData:
  type: git
  url: git@github.com:your-org/your-repo.git
  sshPrivateKey: |
    -----BEGIN OPENSSH PRIVATE KEY-----
    ... your private key ...
    -----END OPENSSH PRIVATE KEY-----
```

## CodeCommit repositori
<a name="_codecommit_repositories_2"></a>

Untuk AWS CodeCommit, berikan CodeCommit izin Peran Kemampuan IAM Anda ()`codecommit:GitPull`.

Konfigurasikan repositori:

```
apiVersion: v1
kind: Secret
metadata:
  name: codecommit-repo
  namespace: argocd
  labels:
    argocd.argoproj.io/secret-type: repository
stringData:
  type: git
  url: https://git-codecommit.us-west-2.amazonaws.com/v1/repos/my-repo
  project: default
```

Untuk konfigurasi kebijakan IAM yang mendetail, lihat[Pertimbangan Argo CD](argocd-considerations.md).

## Verifikasi koneksi repositori
<a name="_verify_repository_connection"></a>

Periksa status koneksi melalui Argo CD UI di bawah Pengaturan → Repositori. UI menunjukkan status koneksi dan kesalahan otentikasi apa pun.

Rahasia Repositori tidak termasuk informasi status.

## Sumber daya tambahan
<a name="_additional_resources"></a>
+  [Daftarkan kluster target](argocd-register-clusters.md)- Daftarkan cluster target untuk penerapan
+  [Buat Aplikasi](argocd-create-application.md)- Buat Aplikasi pertama Anda
+  [Pertimbangan Argo CD](argocd-considerations.md)- Izin IAM dan konfigurasi keamanan
+  [Repositori Pribadi - Referensi](https://argo-cd.readthedocs.io/en/stable/user-guide/private-repositories/) konfigurasi repositori hulu