

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

# AWS Contoh kode Penyedia Rahasia dan Konfigurasi
<a name="ascp-examples"></a>

## Contoh otentikasi ASCP dan kontrol akses
<a name="ascp-auth-access-examples"></a>

### Contoh: Kebijakan IAM yang mengizinkan layanan Amazon EKS Pod Identity (pods.eks.amazonaws.com) untuk mengambil peran dan menandai sesi:
<a name="w2aac19c17c18b5b3"></a>

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "pods.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
```

------

## SecretProviderClass
<a name="ascp-examples-secretproviderclass"></a>

Anda menggunakan YAMAL untuk menjelaskan rahasia mana yang akan dipasang di Amazon EKS menggunakan ASCP. Sebagai contoh, lihat [SecretProviderClass penggunaan](#ascp-scenarios-secretproviderclass).

### SecretProviderClass Struktur YAMAL
<a name="w2aac19c17c18c25b5"></a>

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
   name: name
spec:
  provider: aws
  parameters:
    region:
    failoverRegion:
    pathTranslation:
    usePodIdentity:
    preferredAddressType:
    objects:
```

Bidang parameter berisi rincian permintaan pemasangan:

**region**  
(Opsional) Wilayah AWS Rahasianya. Jika Anda tidak menggunakan bidang ini, ASCP mencari Region dari anotasi pada node. Pencarian ini menambahkan overhead ke permintaan mount, jadi sebaiknya Anda menyediakan Region untuk klaster yang menggunakan Pod dalam jumlah besar.  
Jika Anda juga menentukan`failoverRegion`, ASCP mencoba untuk mengambil rahasia dari kedua Wilayah. Jika salah satu Wilayah mengembalikan kesalahan 4xx, misalnya untuk masalah otentikasi, ASCP tidak memasang salah satu rahasia. Jika rahasia berhasil diambil`region`, maka ASCP memasang nilai rahasia itu. Jika rahasia tidak berhasil diambil dari`region`, tetapi berhasil diambil dari`failoverRegion`, maka ASCP memasang nilai rahasia itu.

**FailOverRegion**  
(Opsional) Jika Anda menyertakan bidang ini, ASCP mencoba mengambil rahasia dari Wilayah yang ditentukan dalam `region` dan bidang ini. Jika salah satu Wilayah mengembalikan kesalahan 4xx, misalnya untuk masalah otentikasi, ASCP tidak memasang salah satu rahasia. Jika rahasia berhasil diambil`region`, maka ASCP memasang nilai rahasia itu. Jika rahasia tidak berhasil diambil dari`region`, tetapi berhasil diambil dari`failoverRegion`, maka ASCP memasang nilai rahasia itu. Untuk contoh cara menggunakan bidang ini, lihat[Kegagalan rahasia Multi-Wilayah](#multi-region-failover).

**PathTranslation**  
(Opsional) Karakter substitusi tunggal untuk digunakan jika nama file di Amazon EKS akan berisi karakter pemisah jalur, seperti garis miring (/) di Linux. ASCP tidak dapat membuat file yang dipasang yang berisi karakter pemisah jalur. Sebagai gantinya, ASCP menggantikan karakter pemisah jalur dengan karakter yang berbeda. Jika Anda tidak menggunakan bidang ini, karakter pengganti adalah garis bawah (\$1), jadi misalnya, `My/Path/Secret` dipasang sebagai. `My_Path_Secret`   
Untuk mencegah substitusi karakter, masukkan string`False`.

**usePodIdentity**  
(Opsional) Menentukan pendekatan otentikasi. Ketika tidak ditentukan, default ke IAM Roles for Service Accounts (IRSA) (IRSA).  
+ Untuk menggunakan EKS Pod Identity, gunakan salah satu nilai berikut: `"true"` “`"True"`,`"TRUE"`,`"t"`,, atau`"T"`.
+ Untuk secara eksplisit menggunakan IRSA, atur ke salah satu nilai ini:`"false"`,,, `"False"` `"FALSE"``"f"`, atau `"F"` “=.

**preferredAddressType**  
(Opsional) Menentukan jenis alamat IP yang disukai untuk komunikasi endpoint Pod Identity Agent. Bidang ini hanya berlaku ketika menggunakan fitur EKS Pod Identity dan akan diabaikan saat menggunakan Peran IAM untuk Akun Layanan. Nilai tidak peka huruf besar/kecil. Nilai yang valid adalah:  
+ `"ipv4"`, `"IPv4"` “, atau `"IPV4"` — Paksa penggunaan titik IPv4 akhir Pod Identity Agent
+ `"ipv6"`,`"IPv6"`, atau `"IPV6"` — Paksa penggunaan titik IPv6 akhir Pod Identity Agent
+ tidak ditentukan - Gunakan pemilihan titik akhir otomatis, coba IPv4 titik akhir terlebih dahulu dan kembali ke titik IPv6 akhir jika gagal IPv4 

**objek**  
String yang berisi deklarasi YAMAL tentang rahasia yang akan dipasang. Sebaiknya gunakan karakter string atau pipe (\$1) multi-line YAMAL.    
**objectName**  
Wajib. Menentukan nama rahasia atau parameter yang akan diambil. Untuk Secrets Manager ini adalah [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html#API_GetSecretValue_RequestParameters](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html#API_GetSecretValue_RequestParameters)parameter dan dapat berupa nama ramah atau ARN lengkap rahasia. Untuk SSM Parameter Store, ini adalah parameter dan dapat berupa nama atau ARN lengkap parameter. [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_RequestParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_RequestParameters)  
**objectType**  
Diperlukan jika Anda tidak menggunakan Secrets Manager ARN untuk. `objectName` Bisa salah satu `secretsmanager` atau`ssmparameter`.   
**Objectalias**  
(Opsional) Nama file rahasia di Amazon EKS Pod. Jika Anda tidak menentukan bidang ini, `objectName` muncul sebagai nama file.  
**FilePermission**  
(Opsional) String oktal 4 digit yang menentukan izin file untuk memasang rahasia. Jika Anda tidak menentukan bidang ini, itu akan default ke`"0644"`.   
**ObjectVersion**  
(Opsional) ID versi rahasia. Tidak disarankan karena Anda harus memperbarui ID versi setiap kali Anda memperbarui rahasia. Secara default versi terbaru digunakan. Jika Anda menyertakan a`failoverRegion`, bidang ini mewakili primer`objectVersion`.  
**objectVersionLabel**  
(Opsional) Alias untuk versi. Defaultnya adalah versi terbaru AWSCURRENT. Untuk informasi selengkapnya, lihat [Versi rahasia](whats-in-a-secret.md#term_version). Jika Anda menyertakan a`failoverRegion`, bidang ini mewakili primer`objectVersionLabel`.  
**JMESPath**  
(Opsional) Peta kunci dalam rahasia file yang akan dipasang di Amazon EKS. Untuk menggunakan bidang ini, nilai rahasia Anda harus dalam format JSON. Jika Anda menggunakan bidang ini, Anda harus menyertakan subbidang `path` dan`objectAlias`.    
**path**  
Kunci dari pasangan kunci-nilai di JSON dari nilai rahasia. Jika bidang berisi tanda hubung, gunakan tanda kutip tunggal untuk menghindarinya, misalnya: `path: '"hyphenated-path"'`  
**Objectalias**  
Nama file yang akan dipasang di Amazon EKS Pod. Jika bidang berisi tanda hubung, gunakan tanda kutip tunggal untuk menghindarinya, misalnya: `objectAlias: '"hyphenated-alias"'`  
**FilePermission**  
(Opsional) String oktal 4 digit yang menentukan izin file untuk memasang rahasia. Jika Anda tidak menentukan bidang ini, itu akan default ke izin file objek induk.   
**FailOverObject**  
(Opsional) Jika Anda menentukan bidang ini, ASCP mencoba untuk mengambil kedua rahasia yang ditentukan dalam primer `objectName` dan rahasia yang ditentukan dalam sub-bidang. `failoverObject` `objectName` Jika salah satu mengembalikan kesalahan 4xx, misalnya untuk masalah otentikasi, ASCP tidak memasang salah satu rahasia. Jika rahasia berhasil diambil dari primer`objectName`, maka ASCP memasang nilai rahasia itu. Jika rahasia tidak berhasil diambil dari primer`objectName`, tetapi berhasil diambil dari failover`objectName`, maka ASCP memasang nilai rahasia itu. Jika Anda menyertakan bidang ini, Anda harus menyertakan bidang tersebut`objectAlias`. Untuk contoh cara menggunakan bidang ini, lihat[Kegagalan ke rahasia yang berbeda](#failover-secret).  
Anda biasanya menggunakan bidang ini ketika rahasia failover bukan replika. Untuk contoh cara menentukan replika, lihat[Kegagalan rahasia Multi-Wilayah](#multi-region-failover).    
**objectName**  
Nama atau ARN lengkap dari rahasia failover. Jika Anda menggunakan ARN, Wilayah di ARN harus cocok dengan bidang. `failoverRegion`  
**ObjectVersion**  
(Opsional) ID versi rahasia. Harus cocok dengan yang utama`objectVersion`. Tidak disarankan karena Anda harus memperbarui ID versi setiap kali Anda memperbarui rahasia. Secara default versi terbaru digunakan.   
**objectVersionLabel**  
(Opsional) Alias untuk versi. Defaultnya adalah versi terbaru AWSCURRENT. Untuk informasi selengkapnya, lihat [Versi rahasia](whats-in-a-secret.md#term_version). 

### Buat SecretProviderClass konfigurasi dasar untuk memasang rahasia di Pod Amazon EKS Anda.
<a name="w2aac19c17c18c25c11"></a>

------
#### [ Pod Identity ]

SecretProviderClass untuk menggunakan rahasia di cluster Amazon EKS yang sama:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets-manager
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "mySecret"
        objectType: "secretsmanager"
    usePodIdentity: "true"
```

------
#### [ IRSA ]

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: deployment-aws-secrets
spec:
  provider: aws
  parameters:
    objects: |
        - objectName: "MySecret"
          objectType: "secretsmanager"
```

------

### SecretProviderClass penggunaan
<a name="ascp-scenarios-secretproviderclass"></a>

Gunakan contoh ini untuk membuat SecretProviderClass konfigurasi untuk skenario yang berbeda.

#### Contoh: Pasang rahasia dengan nama atau ARN
<a name="mount-by-name-arn"></a>

Contoh ini menunjukkan cara memasang tiga jenis rahasia:
+ Rahasia yang ditentukan oleh ARN lengkap
+ Rahasia yang ditentukan oleh nama
+ Versi spesifik dari rahasia

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "arn:aws:secretsmanager:us-east-2:777788889999:secret:MySecret2-d4e5f6"
      - objectName: "MySecret3"
        objectType: "secretsmanager"
      - objectName: "MySecret4"
        objectType: "secretsmanager"
        objectVersionLabel: "AWSCURRENT"
```

#### Contoh: Pasang pasangan nilai kunci dari rahasia
<a name="mount-key-value-pairs"></a>

Contoh ini menunjukkan cara memasang pasangan nilai kunci tertentu dari rahasia berformat JSON:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "arn:aws:secretsmanager:us-east-2:777788889999:secret:MySecret-a1b2c3"
        jmesPath: 
            - path: username
              objectAlias: dbusername
            - path: password
              objectAlias: dbpassword
```

#### Contoh: Pasang rahasia dengan izin file
<a name="mount-by-permission"></a>

Contoh ini menunjukkan cara memasang rahasia dengan izin file tertentu

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "mySecret"
        objectType: "secretsmanager"
        filePermission: "0600"
        jmesPath: 
            - path: username
              objectAlias: dbusername
              filePermission: "0400"
```

#### Contoh: Contoh konfigurasi Failover
<a name="failover-examples"></a>

Contoh-contoh ini menunjukkan cara mengkonfigurasi failover untuk rahasia.

##### Kegagalan rahasia Multi-Wilayah
<a name="multi-region-failover"></a>

Contoh ini menunjukkan cara mengonfigurasi failover otomatis untuk rahasia yang direplikasi di beberapa Wilayah:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets
spec:
  provider: aws
  parameters:
    region: us-east-1
    failoverRegion: us-east-2
    objects: |
      - objectName: "MySecret"
```

##### Kegagalan ke rahasia yang berbeda
<a name="failover-secret"></a>

Contoh ini menunjukkan cara mengonfigurasi failover ke rahasia yang berbeda (bukan replika):

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets
spec:
  provider: aws
  parameters:
    region: us-east-1
    failoverRegion: us-east-2
    objects: |
      - objectName: "arn:aws:secretsmanager:us-east-1:777788889999:secret:MySecret-a1b2c3"
        objectAlias: "MyMountedSecret"
        failoverObject: 
          - objectName: "arn:aws:secretsmanager:us-east-2:777788889999:secret:MyFailoverSecret-d4e5f6"
```

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

Untuk informasi selengkapnya tentang penggunaan ASCP dengan Amazon EKS, lihat sumber daya berikut:
+ [Menggunakan Identitas Pod dengan Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [Menggunakan Penyedia AWS Rahasia dan Konfigurasi](https://docs.aws.amazon.com/secretsmanager/latest/userguide/integrating_ascp_csi.html)
+ [AWS Secrets Store CSI Driver di GitHub](https://github.com/aws/secrets-store-csi-driver-provider-aws)