Controlo de acesso com uma conta de serviço do espaço de nomes

Esta página descreve como configurar uma conta de serviço da gestão de identidade e de acesso (IAM) para um espaço de nomes numa instância do Cloud Data Fusion.

Acerca dos espaços de nomes no Cloud Data Fusion

Um espaço de nomes é um agrupamento lógico de aplicações, dados e os metadados associados numa instância do Cloud Data Fusion. Pode considerar os espaços de nomes como uma partição da instância. Qualquer aplicação ou dado, referido aqui como uma entidade, pode existir de forma independente em vários namespaces. Numa única instância, um espaço de nomes armazena os dados e os metadados de uma entidade independentemente de outro espaço de nomes.

Controlo de acesso com uma conta de serviço do espaço de nomes

Para controlar o acesso aos Google Cloud recursos, os espaços de nomes no Cloud Data Fusion usam o agente do serviço da API Cloud Data Fusion por predefinição.

Para um melhor isolamento de dados, pode associar uma conta de serviço IAM personalizada (conhecida como conta de serviço por espaço de nomes) a cada espaço de nomes. A conta de serviço da IAM personalizada, que pode ser diferente para diferentes espaços de nomes, permite-lhe controlar o acesso aos Google Cloud recursos entre espaços de nomes para operações de tempo de conceção de pipelines no Cloud Data Fusion, como a pré-visualização de pipelines, o Wrangler e a validação de pipelines.

Antes de começar

  • As contas de serviço por espaço de nomes são suportadas em instâncias com RBAC nas versões 6.10.0 e posteriores do Cloud Data Fusion.
  • As contas de serviço por espaço de nomes são usadas para controlar e gerir o acesso a recursos. Google Cloud

Funções e autorizações necessárias

Para receber as autorizações de que precisa para personalizar as contas de serviço do espaço de nomes e conceder autorizações de utilizador num espaço de nomes, peça ao seu administrador que lhe conceda a função de IAM administrador do Cloud Data Fusion (roles/datafusion.admin) na instância do Cloud Data Fusion no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Faça a gestão das autorizações dos utilizadores num espaço de nomes

Para conceder aos utilizadores as autorizações de que precisam num espaço de nomes, atribua-lhes funções predefinidas do Cloud Data Fusion. Para mais informações, consulte as funções predefinidas do Cloud Data Fusion disponíveis para os utilizadores em instâncias com RBAC.

Configure uma conta de serviço do espaço de nomes

Consola

Para configurar uma conta de serviço para o espaço de nomes, siga estes passos:

  1. Se não tiver uma conta de serviço para o espaço de nomes, crie uma.
  2. Na Google Cloud consola, aceda à página Instances do Cloud Data Fusion e abra uma instância na interface Web do Cloud Data Fusion.

    Aceda a Instâncias

  3. Clique em Administrador do sistema > Configuração > Espaços de nomes.

  4. Clique no espaço de nomes que quer configurar.

  5. Clique no separador Contas de serviço e, de seguida, clique em Adicionar conta de serviço.

    Botão Adicionar conta de serviço.

  6. Conceda a função de utilizador do Workload Identity (roles/iam.workloadIdentityUser).

    Para conceder a função, siga estes passos:

    1. No campo Conta de serviço de design de pipeline, introduza o email da conta de serviço, por exemplo, SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.
    2. Siga as instruções na caixa de diálogo apresentada.
  7. Para concluir a configuração da conta de serviço, volte ao espaço de nomes da instância do Cloud Data Fusion e clique em Guardar.

  8. Repita os passos para configurar uma conta de serviço para cada espaço de nomes.

API REST

  1. Conceda a função de utilizador do Workload Identity (roles/iam.workloadIdentityUser).

    Para conceder a função, siga estes passos:

    1. Defina as seguintes variáveis de ambiente:

      export TENANT_PROJECT_ID=TENANT_PROJECT
      export GSA_PROJECT_ID=SERVICE_ACCOUNT_PROJECT
      

      Substitua o seguinte:

      • TENANT_PROJECT: o ID do projeto de inquilino. Para o encontrar, aceda à página Instâncias e clique no nome da instância. O ID é apresentado na página Detalhes da instância.

        Aceda a Instâncias

      • SERVICE_ACCOUNT_PROJECT: o ID do projeto onde se encontra a conta de serviço de IAM.Google Cloud

    2. Conceda a função de utilizador do Workload Identity:

      gcloud iam service-accounts add-iam-policy-binding \
          --role roles/iam.workloadIdentityUser
          --member "serviceAccount:${TENANT_PROJECT_ID}.svc.id.goog[default/NAMESPACE_IDENTITY]" SERVICE_ACCOUNT_EMAIL \
          --project ${GSA_PROJECT_ID}
      

      Substitua o seguinte:

      • NAMESPACE_IDENTITY: a identidade do espaço de nomes. Para mais informações, consulte o artigo Detalhes de um espaço de nomes.

      • SERVICE_ACCOUNT_EMAIL: o endereço de email da conta de serviço, por exemplo, SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

  2. Valide o email da conta de serviço do espaço de nomes do passo anterior. Defina o environment variables e, em seguida, execute o seguinte comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity/validate -X POST -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    Substitua o seguinte:

    • NAMESPACE_NAME: o ID do espaço de nomes.
    • SERVICE_ACCOUNT_EMAIL: o email da conta de serviço do IAM que quer definir no espaço de nomes.
  3. Defina a conta de serviço do espaço de nomes. Defina o environment variables e, em seguida, execute o seguinte comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

Edite uma conta de serviço do espaço de nomes

Consola

Para editar uma conta de serviço do espaço de nomes, siga estes passos:

  1. Na sua instância do Cloud Data Fusion, clique em Administrador do sistema > Configuração > Espaços de nomes.
  2. Clique no espaço de nomes que tem a conta de serviço que quer editar.
  3. Para editar a conta de serviço, aceda ao separador Contas de serviço. Junto ao nome da conta de serviço, clique em Menu > Editar.
  4. Siga os passos para configurar uma conta de serviço do espaço de nomes.

API REST

Para editar uma conta de serviço do espaço de nomes, siga estes passos:

  1. Defina environment variables e, em seguida, execute o seguinte comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    Substitua o seguinte:

    • NAMESPACE_NAME: o ID do espaço de nomes.
    • SERVICE_ACCOUNT_EMAIL: o email da conta de serviço do IAM que quer definir no espaço de nomes.

Elimine uma conta de serviço do espaço de nomes

Consola

Para eliminar uma conta de serviço do espaço de nomes de um espaço de nomes, siga estes passos:

  1. Na sua instância do Cloud Data Fusion, clique em Administrador do sistema > Configuração > Espaços de nomes.
  2. Clique no espaço de nomes que tem a conta de serviço que quer eliminar.
  3. Para remover a conta de serviço, aceda ao separador Contas de serviço. Junto ao nome da conta de serviço, clique em Menu > Eliminar.

API REST

Para eliminar uma conta de serviço do espaço de nomes de um espaço de nomes, siga estes passos:

  1. Defina environment variables e, em seguida, execute o seguinte comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X DELETE
    

    Substitua o seguinte:

    • NAMESPACE_NAME: o ID do espaço de nomes.

Obtenha a conta de serviço do espaço de nomes

Consola

Para obter informações da conta de serviço para o espaço de nomes, siga estes passos:

  1. Na Google Cloud consola, aceda à página Instances do Cloud Data Fusion e abra uma instância na interface Web do Cloud Data Fusion.

    Aceda a Instâncias

  2. Clique em Administrador do sistema > Configuração > Espaços de nomes.

  3. Clique no nome de um espaço de nomes para ver os detalhes da conta de serviço.

API REST

Para obter o nome da conta de serviço do espaço de nomes, siga estes passos:

  1. Defina environment variables e, em seguida, execute o seguinte comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X GET
    

    Substitua o seguinte:

    • NAMESPACE_NAME: o ID do espaço de nomes.

    Se for bem-sucedido, recebe o email da conta de serviço na seguinte resposta:

    Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
    

O que se segue?