Skip to main content
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Impostazione di un gruppo di broker di dati per l'utilizzo di un vault HashiCorp esterno

Collaboratori

Quando si crea una relazione di sincronizzazione che richiede credenziali Amazon S3, Azure o Google Cloud, è necessario specificare tali credenziali tramite l'interfaccia utente o l'API di copia e sincronizzazione BlueXP. Un'alternativa è impostare il gruppo di broker di dati per accedere alle credenziali (o secrets) direttamente da un vault HashiCorp esterno.

Questa funzionalità è supportata tramite l'API di copia e sincronizzazione BlueXP con relazioni di sincronizzazione che richiedono credenziali Amazon S3, Azure o Google Cloud.

Uno Preparare il vault

Preparare il vault per fornire le credenziali al gruppo di broker di dati impostando gli URL. Gli URL dei segreti nel vault devono terminare con Creds.

Due Preparare il gruppo di broker di dati

Preparare il gruppo di broker di dati a recuperare le credenziali dal vault esterno modificando il file di configurazione locale per ogni broker di dati nel gruppo.

Tre Creare una relazione di sincronizzazione utilizzando l'API

Una volta configurato tutto, è possibile inviare una chiamata API per creare una relazione di sincronizzazione che utilizzi il vault per ottenere i segreti.

Preparazione del vault

È necessario fornire una copia BlueXP e sincronizzarla con l'URL con i segreti nel vault. Preparare il vault impostando questi URL. È necessario impostare gli URL in base alle credenziali per ciascuna origine e destinazione nelle relazioni di sincronizzazione che si intende creare.

L'URL deve essere impostato come segue:

/<path>/<requestid>/<endpoint-protocol>Creds

Percorso

Il percorso del prefisso per il segreto. Questo può essere un valore qualsiasi per te.

ID richiesta

ID richiesta da generare. Quando si crea la relazione di sincronizzazione, è necessario fornire l'ID in una delle intestazioni della richiesta API POST.

Protocollo endpoint

Uno dei seguenti protocolli, come definito "nella documentazione post-relationship v2": S3, AZURE o GCP (ciascuno deve essere in maiuscolo).

Credi

L'URL deve terminare con Creds.

Esempi

Gli esempi seguenti mostrano gli URL per i segreti.

Esempio di URL completo e percorso per le credenziali di origine

http://example.vault.com:8200/my-path/all-secrets/hb312vdasr2/S3Creds

Come si può vedere nell'esempio, il percorso del prefisso è /my-path/all-secrets/, l'ID della richiesta è hb312vdasr2 e l'endpoint di origine è S3.

Esempio di URL completo e percorso per le credenziali di destinazione

http://example.vault.com:8200/my-path/all-secrets/n32hcbnejk2/AZURECreds

Il percorso del prefisso è /my-path/all-secrets/, l'ID della richiesta è n32hcbnejk2 e l'endpoint di destinazione è Azure.

Preparazione del gruppo di broker di dati

Preparare il gruppo di broker di dati a recuperare le credenziali dal vault esterno modificando il file di configurazione locale per ogni broker di dati nel gruppo.

Fasi
  1. SSH a un broker di dati del gruppo.

  2. Modificare il file local.json che risiede in /opt/netapp/databroker/config.

  3. Impostare enable su true e i campi dei parametri di configurazione in external-integrations.hashicorp come segue:

    attivato
    • Valori validi: Vero/falso

    • Tipo: Booleano

    • Valore predefinito: False

    • Vero: Il data broker ottiene segreti dal tuo vault HashiCorp esterno

    • Falso: Il data broker memorizza le credenziali nel proprio vault locale

    url
    • Digitare: String

    • Valore: L'URL del vault esterno

    percorso
    • Digitare: String

    • Valore: Inserire il percorso del segreto con le credenziali

    Rifiuta-non autorizzato
    • Determina se si desidera che il data broker rifiuti un vault esterno non autorizzato

    • Tipo: Booleano

    • Predefinito: Falso

    authod
    • Il metodo di autenticazione che il data broker deve utilizzare per accedere alle credenziali dal vault esterno

    • Digitare: String

    • Valori validi: "aws-iam" / "role-app" / "gcp-iam"

    nome-ruolo
    • Digitare: String

    • Nome del tuo ruolo (nel caso in cui utilizzi aws-iam o gcp-iam)

    Secretid e rootid
    • Digitare: String (se si utilizza app-role)

    Namespace
    • Digitare: String

    • Spazio dei nomi (intestazione X-Vault-namespace, se necessario)

  4. Ripetere questa procedura per tutti gli altri broker di dati del gruppo.

Esempio di autenticazione con ruolo aws

{
          “external-integrations”: {
                  “hashicorp”: {
                         “enabled”: true,
                         “url”: “https://example.vault.com:8200”,
                         “path”: ““my-path/all-secrets”,
                         “reject-unauthorized”: false,
                         “auth-method”: “aws-role”,
                         “aws-role”: {
                               “role-name”: “my-role”
                         }
                }
       }
}

Esempio di autenticazione gcp-iam

{
"external-integrations": {
    "hashicorp": {
      "enabled": true,
      "url": http://ip-10-20-30-55.ec2.internal:8200,
      "path": "v1/secret",
      "namespace": "",
      "reject-unauthorized": true,
      "auth-method": "gcp-iam",
      "aws-iam": {
        "role-name": ""
      },
      "app-role": {
        "root_id": "",
        "secret_id": ""
      },
"gcp-iam": {
          "role-name": "my-iam-role"
      }
    }
  }
}

Impostazione delle autorizzazioni quando si utilizza l'autenticazione gcp-iam

Se si utilizza il metodo di autenticazione gcp-iam, il data broker deve disporre della seguente autorizzazione GCP:

- iam.serviceAccounts.signJwt

Creazione di una nuova relazione di sincronizzazione utilizzando i segreti del vault

Una volta configurato tutto, è possibile inviare una chiamata API per creare una relazione di sincronizzazione che utilizzi il vault per ottenere i segreti.

Pubblicare la relazione utilizzando la copia BlueXP e l'API REST di sincronizzazione.

Headers:
Authorization: Bearer <user-token>
Content-Type: application/json
x-account-id: <accountid>
x-netapp-external-request-id-src: request ID as part of path for source credentials
x-netapp-external-request-id-trg: request ID as part of path for target credentials
Body: post relationship v2 body

Esempio

Esempio per la richiesta POST:

url: https://api.cloudsync.netapp.com/api/relationships-v2
headers:
"x-account-id": "CS-SasdW"
"x-netapp-external-request-id-src": "hb312vdasr2"
"Content-Type": "application/json"
"Authorization": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik…"
Body:
{
"dataBrokerId": "5e6e111d578dtyuu1555sa60",
"source": {
        "protocol": "s3",
        "s3": {
                "provider": "sgws",
                "host": "1.1.1.1",
                "port": "443",
                "bucket": "my-source"
     },
"target": {
        "protocol": "s3",
        "s3": {
                "bucket": "my-target-bucket"
        }
    }
}