Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Configure um grupo de corretores de dados para usar um cofre externo da HashiCorp

Colaboradores

Ao criar um relacionamento de sincronização que exija credenciais do Amazon S3, do Azure ou do Google Cloud, você precisa especificar essas credenciais por meio da API ou interface de usuário do BlueXP  copy e Sync. Uma alternativa é configurar o grupo de corretores de dados para acessar as credenciais (ou Secrets) diretamente de um cofre externo da HashiCorp.

Esse recurso é compatível com a API de cópia e sincronização do BlueXP  com relacionamentos de sincronização que exigem credenciais do Amazon S3, Azure ou Google Cloud.

Um Prepare o cofre

Prepare o cofre para fornecer credenciais ao grupo de corretores de dados configurando os URLs. As URLs para os segredos no Vault devem terminar com Creds.

Dois Prepare o grupo de corretores de dados

Prepare o grupo de corretores de dados para buscar credenciais do Vault externo modificando o arquivo de configuração local para cada agente de dados do grupo.

Três Crie uma relação de sincronização usando a API

Agora que tudo está configurado, você pode enviar uma chamada de API para criar uma relação de sincronização que use seu cofre para obter os segredos.

Prepare o cofre

Você precisará fornecer cópia do BlueXP  e sincronizar com o URL para os segredos em seu cofre. Prepare o Vault configurando esses URLs. Você precisa configurar URLs para as credenciais de cada fonte e destino nas relações de sincronização que você planeja criar.

O URL deve ser configurado da seguinte forma:

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

Caminho

O caminho do prefixo para o segredo. Este pode ser qualquer valor que seja exclusivo para você.

ID da solicitação

Um ID de solicitação que você precisa gerar. Você precisará fornecer o ID em um dos cabeçalhos na solicitação DE POST da API quando criar a relação de sincronização.

Protocolo de endpoint

Um dos seguintes protocolos, conforme definido "na documentação do pós-relacionamento v2": S3, AZURE ou GCP (cada um deve estar em maiúsculas).

Creds

A URL deve terminar com Creds.

Exemplos

Os exemplos a seguir mostram URLs para segredos.

Exemplo para o URL completo e caminho para credenciais de origem

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

Como você pode ver no exemplo, o caminho do prefixo é /my-path/all-Secrets/, o ID da solicitação é hb312vdasr2 e o endpoint de origem é S3.

Exemplo para o URL completo e caminho para credenciais de destino

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

O caminho do prefixo é /my-path/all-Secrets/, o ID da solicitação é n32hcbnejk2 e o endpoint de destino é Azure.

Prepare o grupo de corretores de dados

Prepare o grupo de corretores de dados para buscar credenciais do Vault externo modificando o arquivo de configuração local para cada agente de dados do grupo.

Passos
  1. SSH para um corretor de dados no grupo.

  2. Edite o arquivo local.json que reside em /opt/NetApp/databroker/config.

  3. Defina enable to true e defina os campos de parâmetros de configuração em external-integrations.hashicorp da seguinte forma:

    ativado
    • Valores válidos: Verdadeiro/falso

    • Tipo: Booleano

    • Valor padrão: False

    • Verdade: O corretor de dados obtém segredos de seu próprio cofre externo HashiCorp

    • Falso: O corretor de dados armazena credenciais em seu cofre local

    url
    • Tipo: String

    • Valor: A URL para o seu cofre externo

    caminho
    • Tipo: String

    • Valor: Prefixo caminho para o segredo com suas credenciais

    Não autorizado
    • Determina se você deseja que o corretor de dados rejeite o cofre externo não autorizado

    • Tipo: Booleano

    • Padrão: False

    auth-method
    • O método de autenticação que o agente de dados deve usar para acessar credenciais do cofre externo

    • Tipo: String

    • Valores válidos: "AWS-iam" / "role-app" / "gcp-iam"

    nome da função
    • Tipo: String

    • Nome da função (caso você use aws-iam ou GCP-iam)

    Secretid & rootid
    • Tipo: String (no caso de você usar app-role)

    Namespace
    • Tipo: String

    • Seu namespace (cabeçalho X-Vault-namespace, se necessário)

  4. Repita estes passos para quaisquer outros corretores de dados do grupo.

Exemplo para autenticação de função 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”
                         }
                }
       }
}

Exemplo de autenticação 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"
      }
    }
  }
}

Configurar permissões ao usar a autenticação gcp-iam

Se você estiver usando o método de autenticação gcp-iam, o corretor de dados deve ter a seguinte permissão do GCP:

- iam.serviceAccounts.signJwt

Criando uma nova relação de sincronização usando segredos do Vault

Agora que tudo está configurado, você pode enviar uma chamada de API para criar uma relação de sincronização que use seu cofre para obter os segredos.

Publique o relacionamento usando a API REST de cópia e sincronização do BlueXP .

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

Exemplo

Exemplo para a solicitação 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"
        }
    }
}