

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# AWS Segreti ed esempi di codice del Configuration Provider
<a name="ascp-examples"></a>

## Esempi di autenticazione e controllo degli accessi ASCP
<a name="ascp-auth-access-examples"></a>

### Esempio: policy IAM che consente al servizio Amazon EKS Pod Identity (pods.eks.amazonaws.com) di assumere il ruolo e contrassegnare la sessione:
<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>

Puoi utilizzare YAML per descrivere quali segreti montare in Amazon EKS utilizzando l'ASCP. Per alcuni esempi, consulta [SecretProviderClass utilizzo](#ascp-scenarios-secretproviderclass).

### SecretProviderClass Struttura YAML
<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:
```

Il campo parametri contiene i dettagli della richiesta di montaggio:

**region**  
(Facoltativo) Il Regione AWS segreto. Se non utilizzi questo campo, l'ASCP cerca la Regione dall'annotazione sul nodo. Questa ricerca aggiunge un sovraccarico alle richieste di montaggio, quindi consigliamo di fornire la Regione per i cluster che utilizzano un numero elevato di pod.  
Se specifichi anche la `failoverRegion`, l'ASCP tenta di recuperare il segreto da entrambe le Regioni. Se una delle Regioni restituisce un errore 4xx, ad esempio per un problema di autenticazione, l'ASCP non installa nessuno dei due segreti. Se il segreto viene recuperato correttamente da `region`, l'ASCP monta tale valore del segreto. Se il segreto non viene recuperato correttamente da `region`, ma viene correttamente recuperato da `failoverRegion`, l'ASCP monta tale valore del segreto.

**failoverRegion**  
(Facoltativo) Se si include questo campo, l'ASCP tenta di recuperare il segreto dalle Regioni definite in`region` e in questo campo. Se una delle Regioni restituisce un errore 4xx, ad esempio per un problema di autenticazione, l'ASCP non installa nessuno dei due segreti. Se il segreto viene recuperato correttamente da `region`, l'ASCP monta tale valore del segreto. Se il segreto non viene recuperato correttamente da `region`, ma viene correttamente recuperato da `failoverRegion`, l'ASCP monta tale valore del segreto. Per un esempio su come utilizzare questo campo, consulta la sezione [Multi-Region failover segreto](#multi-region-failover).

**pathTranslation**  
(Facoltativo) Un singolo carattere di sostituzione da utilizzare se il nome del file in Amazon EKS conterrà il carattere separatore di percorso, come barra (/) su Linux. L'ASCP non è in grado di creare un file montato che contiene un carattere separatore di percorso. Invece, l'ASCP sostituisce il carattere separatore di percorso con un carattere diverso. Se non utilizzi questo campo, il carattere sostitutivo è il carattere di sottolineatura (\_), quindi ad esempio, `My/Path/Secret` monta come `My_Path_Secret`.   
Per impedire la sostituzione dei caratteri, immettere la stringa `False`.

**uso PodIdentity**  
(Facoltativo) Determina l'approccio di autenticazione. Se non specificato, il valore predefinito è ruoli IAM per gli account di servizio (IRSA).  
+ Per utilizzare EKS Pod Identity, utilizza uno qualsiasi di questi valori: `"true"`", `"True"`, `"TRUE"`, `"t"` o `"T"`.
+ Per utilizzare in modo esplicito IRSA, imposta uno qualsiasi dei seguenti valori: `"false"`, `"False"`, `"FALSE"`, `"f"`, or `"F"`"=.

**preferito AddressType**  
(Facoltativo) Specifica il tipo di indirizzo IP preferito per la comunicazione con gli endpoint dell'agente Pod Identity. Il campo è applicabile solo quando si utilizza la funzionalità EKS Pod Identity e verrà ignorato quando si utilizza IAM Roles for Service senza distinzione tra maiuscole e Accounts.Values minuscole. I valori validi sono:  
+ `"ipv4"`, `"IPv4"`" oppure `"IPV4"`: forza l'uso dell'endpoint IPv4 dell'agente Pod Identity
+ `"ipv6"`, `"IPv6"` oppure `"IPV6"`: forza l'uso dell'endpoint IPv6 dell'agente Pod Identity
+ non specificato: utilizza la selezione automatica degli endpoint, provando prima l'endpoint IPv4 e tornando all'endpoint IPv6, se IPv4 dà errore

**objects**  
Una stringa contenente una dichiarazione YAML dei segreti da montare. Si consiglia di utilizzare una stringa multiriga YAML o un carattere pipe (\|).    
**objectName**  
Obbligatorio. Speciifica il nome del segreto o del parametro da recuperare. Per Secrets Manager questo è il parametro [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) e può essere sia il nome descrittivo sia l'ARN completo del segreto. Per SSM Parameter Store, questo è il [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)parametro e può essere il nome o l'ARN completo del parametro.  
**objectType**  
Obbligatorio se non si utilizza un ARN di Secrets Manager per `objectName`. Può essere `secretsmanager` o `ssmparameter`.   
**objectAlias**  
(Facoltativo) Il nome file del segreto nel pod Amazon EKS. Se non indichi questo campo, `objectName` viene visualizzato come nome del file.  
**Autorizzazione del file**  
(Facoltativo) La stringa ottale a 4 cifre che specifica l'autorizzazione del file con cui eseguire il montaggio segreto. Se non specifichi questo campo, il valore predefinito sarà. `"0644"`   
**objectVersion**  
(Facoltativo) L'ID di versione del segreto. Non è consigliato perché è necessario aggiornare l'ID di versione ogni volta che si aggiorna il segreto. Per impostazione predefinita viene utilizzata la versione più recente. Se includi un `failoverRegion`, questo campo rappresenta l'`objectVersion` primario.  
**oggetto VersionLabel**  
(Facoltativo) L'alias per la versione. Il valore di default è la versione più recente di AWSCURRENT. Per ulteriori informazioni, consulta [Versioni dei segreti](whats-in-a-secret.md#term_version). Se includi un `failoverRegion`, questo campo rappresenta l'`objectVersionLabel` primario.  
**jmesPath**  
(Facoltativo) Una mappa delle chiavi nel segreto per i file da montare in Amazon EKS. Per utilizzare questo campo, il valore del segreto deve essere in formato JSON. Se si utilizza questo campo, è necessario includere i sottocampi `path` e `objectAlias`.    
**path**  
Una chiave da una coppia chiave-valore nel JSON del valore segreto. Se il campo contiene un trattino, usa le virgolette singole per evitarlo, ad esempio: `path: '"hyphenated-path"'`  
**objectAlias**  
Il nome del file da montare nel pod Amazon EKS. Se il campo contiene un trattino, usa le virgolette singole per evitarlo, ad esempio: `objectAlias: '"hyphenated-alias"'`  
**Autorizzazione del file**  
(Facoltativo) La stringa ottale a 4 cifre che specifica l'autorizzazione del file con cui eseguire il montaggio segreto. Se non si specifica questo campo, verrà utilizzata per impostazione predefinita l'autorizzazione al file dell'oggetto principale.   
**failoverObject**  
(Facoltativo) Se specifichi questo campo, l'ASCP tenta di recuperare sia il segreto specificato nel campo primario `objectName` che il segreto specificato nel sottocampo `failoverObject` `objectName`. Se uno dei due restituisce un errore 4xx, ad esempio per un problema di autenticazione, l'ASCP non installa nessuno dei due segreti. Se il segreto viene recuperato con successo dall'`objectName` primario, l'ASCP monta tale valore del segreto. Se il segreto non viene recuperato correttamente dall'`objectName` primario, ma viene recuperato con successo dall'`objectName` di failover, l'ASCP installa tale valore del segreto. Se si include questo campo, è necessario includere il campo `objectAlias`. Per un esempio su come utilizzare questo campo, consulta la sezione [Failover su un segreto diverso](#failover-secret).  
In genere, si utilizza questo campo quando il segreto di failover non è una replica. Per un esempio su come specificare una replica, consulta la sezione [Multi-Region failover segreto](#multi-region-failover).    
**objectName**  
Il nome o l'ARN completo del segreto di failover. Se utilizzi un ARN, la Regione nell'ARN deve corrispondere al campo `failoverRegion`.  
**objectVersion**  
(Facoltativo) L'ID di versione del segreto. Deve corrispondere all'`objectVersion` primaria. Non è consigliato perché è necessario aggiornare l'ID di versione ogni volta che si aggiorna il segreto. Per impostazione predefinita viene utilizzata la versione più recente.   
**oggetto VersionLabel**  
(Facoltativo) L'alias per la versione. Il valore di default è la versione più recente di AWSCURRENT. Per ulteriori informazioni, consulta [Versioni dei segreti](whats-in-a-secret.md#term_version). 

### Crea una SecretProviderClass configurazione di base per montare segreti nei tuoi Amazon EKS Pods.
<a name="w2aac19c17c18c25c11"></a>

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

SecretProviderClass per utilizzare un segreto nello stesso cluster Amazon EKS:

```
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 utilizzo
<a name="ascp-scenarios-secretproviderclass"></a>

Usa questi esempi per creare SecretProviderClass configurazioni per diversi scenari.

#### Esempio: montaggio di segreti per nome o ARN
<a name="mount-by-name-arn"></a>

Questo esempio mostra come montare tre diversi tipi di segreti:
+ Un segreto specificato dall'ARN completo
+ Un segreto specificato per nome
+ Una versione specifica di un segreto

```
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"
```

#### Esempio: monta coppie chiave-valore da un segreto
<a name="mount-key-value-pairs"></a>

Questo esempio mostra come montare coppie chiave-valore specifiche da un segreto: JSON-formatted

```
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
```

#### Esempio: monta i segreti tramite l'autorizzazione del file
<a name="mount-by-permission"></a>

Questo esempio mostra come montare un segreto con un'autorizzazione specifica per il file

```
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"
```

#### Esempio: esempi di configurazione di failover
<a name="failover-examples"></a>

Questi esempi mostrano come configurare il failover per i segreti.

##### Multi-Region failover segreto
<a name="multi-region-failover"></a>

Questo esempio mostra come configurare il failover automatico per un segreto replicato su più regioni:

```
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"
```

##### Failover su un segreto diverso
<a name="failover-secret"></a>

Questo esempio mostra come configurare il failover su un segreto diverso (non su una replica):

```
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"
```

## Risorse aggiuntive
<a name="additional-resources"></a>

Per ulteriori informazioni su come utilizzare ASCP con Amazon EKS, consulta le seguenti risorse:
+ [Utilizzo di Pod Identity con Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [Utilizzo di AWS Secrets and Configuration Provider](https://docs.aws.amazon.com/secretsmanager/latest/userguide/integrating_ascp_csi.html)
+ [AWS Secrets Store CSI Driver attivo GitHub](https://github.com/aws/secrets-store-csi-driver-provider-aws)