Conceda e revogue o acesso

Cada sujeito, ou seja, um utilizador ou um grupo, segue um processo de dois passos para obter acesso ao servidor da API global. Conceda a um assunto autorizações no servidor da API global usando IAMRoleBinding a um IAMRole predefinido. Todas as funções e associações de funções são globais.

As personas (IO, PA, AO) não são funções, mas sim conjuntos de funções de utilizador mapeadas para autorizações específicas e atribuídas a utilizadores individuais.

Configure associações de funções

Pode configurar associações de funções que dão aos membros da equipa acesso a recursos ao nível da organização ou do projeto.

Para receber as autorizações necessárias para configurar associações de funções, peça ao administrador de IAM da organização que lhe conceda a função de administrador de IAM da organização.

Para atribuir uma função a um membro autorizado, siga estes passos:

Consola

  1. Inicie sessão na consola do GDC.
  2. Selecione uma organização ou um projeto no selecionador de âmbito.
    • Para configurar associações de funções para uma organização, selecione uma organização.
    • Para configurar associações de funções para um projeto, selecione um projeto.
  3. No menu de navegação, clique em Identidade e acesso > Acesso.
  4. Clique em Adicionar membro.
  5. Escolha se quer adicionar utilizadores individuais ou grupos.
  6. Na lista Fornecedor de identidade, selecione um fornecedor de identidade.
  7. No campo Nome de utilizador ou alias do grupo, introduza o nome de utilizador, o endereço de email ou o alias.
  8. Na lista Função, selecione a função que quer atribuir ao utilizador ou ao grupo, como Leitor da organização ao nível da organização ou Criador de projetos ao nível do projeto.
  9. Clique em Adicionar.

O membro aparece na lista de Membro autorizado.

gdcloud

  1. Certifique-se de que tem a CLI gcloud instalada.

  2. Inicie sessão com o comando gdcloud auth login para autenticar com o seu fornecedor de identidade. Para mais informações, consulte a autenticação da CLI gdcloud.

  3. Configure vinculações de funções.

    • Configure associações de funções para uma organização:

      gdcloud organizations add-iam-policy-binding ORGANIZATION \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Substitua as seguintes variáveis:

      • ORGANIZATION: o nome da organização para a qual está a configurar a associação de funções.
      • USER_ACCOUNT: a conta de utilizador à qual quer conceder a função. Esta flag aceita um endereço de email do utilizador com o prefixo do fornecedor de identidade (user:idpprefix-user@example.com) ou um nome da conta de serviço com o projeto da conta de serviço (serviceAccount:projectName:serviceAccountName).
      • ROLE: o nome da função predefinida ou personalizada que quer atribuir ao utilizador.
    • Configure vinculações de funções para um projeto:

      gdcloud projects add-iam-policy-binding PROJECT \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Substitua as seguintes variáveis:

      • PROJECT: o nome do projeto para o qual está a configurar a associação de funções.
      • USER_ACCOUNT: a conta de utilizador à qual quer conceder a função. Esta flag aceita um endereço de email do utilizador com o prefixo do fornecedor de identidade (user:idpprefix-user@example.com) ou um nome da conta de serviço com o projeto da conta de serviço (serviceAccount:projectName:serviceAccountName).
      • ROLE: o nome da função predefinida ou personalizada que quer atribuir ao utilizador.

API

  1. Exporte a credencial do utilizador que usa:

    export GLOBAL_API_SERVER_KUBECONFIG=GLOBAL_API_SERVER_KUBECONFIG
    
  2. Exporte a conta de utilizador à qual quer atribuir a função, incluindo o prefixo do fornecedor de identidade (como idpprefix-paul@example.com):

    export USERNAME=IDP_PREFIX-USER_EMAIL
    
  3. Exporte o nome da função de que o utilizador precisa, como project-creator. Consulte as Definições de funções para encontrar a função correspondente.

    export ROLE_NAME=ROLE_NAME
    
  4. Exporte o espaço de nomes onde a associação tem de ser criada:

    export BINDING_NAMESPACE=BINDING_NAMESPACE
    

    Substitua BINDING_NAMESPACE por platform para funções com âmbito da organização ou o nome do espaço de nomes do projeto de destino para funções com âmbito do projeto.

    Consulte as Definições de funções para ver uma lista de funções e o respetivo âmbito.

  5. Crie e aplique um IAMRoleBinding recurso personalizado:

    cat <<EOF | kubectl --kubeconfig ${GLOBAL_API_SERVER_KUBECONFIG} apply -f -
    apiVersion: iam.global.gdc.goog/v1
    kind: IAMRoleBinding
    metadata:
      name: ${USERNAME}-${ROLE_NAME}-binding
      namespace: ${BINDING_NAMESPACE}
    spec:
      roleRef:
        apiGroup: iam.global.gdc.goog
        kind: IAMRole
        name: ${ROLE_NAME}
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: User
        name: ${USERNAME}
    EOF
    

Remova associações de funções

Quando o acesso já não for necessário, remova um membro e as respetivas funções, autorizações e acesso associados.

Para remover membros, siga os passos abaixo:

Consola

  1. Inicie sessão na consola do GDC.
  2. No menu de navegação, clique em Identidade e acesso > Acesso.
  3. Na lista Membros autorizados, selecione um membro.
  4. Clique em Remover membro.
  5. Quando lhe for pedido, clique em Remover membro para confirmar.

gdcloud

  1. Certifique-se de que tem a CLI gcloud instalada.

  2. Inicie sessão com o comando gdcloud auth login para autenticar com o seu fornecedor de identidade. Para mais informações, consulte a autenticação da CLI gdcloud.

  3. Remova as associações de funções.

    • Remova associações de funções para uma organização:

      gdcloud organizations remove-iam-policy-binding ORGANIZATION \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Substitua as seguintes variáveis:

      • ORGANIZATION: o nome da organização da qual está a remover a associação de funções.
      • USER_ACCOUNT: a conta de utilizador da qual quer remover a função. Esta flag aceita um endereço de email do utilizador com o prefixo do fornecedor de identidade (user:idpprefix-user@example.com) ou um nome da conta de serviço com o projeto da conta de serviço (serviceAccount:projectName:serviceAccountName).
      • ROLE: o nome da função predefinida ou personalizada que quer remover da conta de utilizador.
    • Remova associações de funções para um projeto:

      gdcloud projects remove-iam-policy-binding PROJECT \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Substitua as seguintes variáveis:

      • PROJECT: o nome do projeto do qual está a remover a associação de funções.
      • USER_ACCOUNT: a conta de utilizador da qual quer remover a função. Esta flag aceita um endereço de email do utilizador com o prefixo do fornecedor de identidade (user:idpprefix-user@example.com) ou um nome da conta de serviço com o projeto da conta de serviço (serviceAccount:projectName:serviceAccountName).
      • ROLE: o nome da função predefinida ou personalizada que quer remover da conta de utilizador.

API

Elimine o IAMRoleBinding para revogar a autorização concedida à conta de PA:

kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG \
delete iamrolebinding USERNAME-ROLE_NAME-binding -n BINDING_NAMESPACE

Substitua o seguinte:

  • GLOBAL_API_SERVER_KUBECONFIG: o caminho para o ficheiro kubeconfig para aceder ao servidor da API global.
  • USERNAME: a conta de utilizador para a qual quer remover a função, incluindo o prefixo do fornecedor de identidade (como idpprefix-paul@example.com).
  • ROLE_NAME: o nome da função que quer remover, como project-creator.
  • BINDING_NAMESPACE: substitua por platform para funções ao nível da organização ou o nome do espaço de nomes do projeto de destino para funções ao nível do projeto.

Revogue o acesso do utilizador

Se um membro sair da sua organização ou equipa, pode revogar o respetivo acesso ao Google Distributed Cloud (GDC) isolado. A revogação do acesso de um utilizador termina a sessão do mesmo no Distributed Cloud e remove as respetivas funções e autorizações. Também pode listar a atividade e as sessões do utilizador a partir da respetiva hora de início e de fim.

Para revogar o acesso de um utilizador num universo do GDC, tem de revogar o acesso de cada zona individual separadamente. Conclua os seguintes passos para cada zona:

  1. Certifique-se de que tem sessão iniciada na zona para a qual quer revogar o acesso. Por exemplo, defina a configuração do URL zonal para a CLI gcloud e, em seguida, inicie sessão:

    gdcloud config set organization_console_url ZONE_URL
    gdcloud auth login
    

    Substitua ZONE_URL pelo URL da consola do GDC para a zona para a qual revogar o acesso do utilizador, que se assemelha a https://console.ORG_NAME.ZONE_NAME.ORG_SUFFIX.

    Para mais informações sobre como alternar contextos zonais, consulte o artigo Faça a gestão de recursos em várias zonas.

  2. Obtenha as autorizações necessárias para revogar utilizadores. Peça ao administrador de IAM da organização que lhe conceda a função de administrador de sessão da organização (org-session-admin).

  3. Revogue o acesso do utilizador à zona:

    gdcloud admin auth revoke --accounts USER_EMAIL
    

    Substitua USER_EMAIL pelo email do utilizador ao qual quer revogar o acesso.

    Depois de executar o comando, vê um resultado semelhante ao seguinte. Este exemplo revoga o acesso do utilizador ariel@example.com:

    Success: NUMBER of sessions revoked for user ariel@example.com
    

    Neste exemplo, a variável NUMBER refere-se ao número de sessões ativas que o utilizador teve.

  4. Confirme que revogou o acesso do utilizador executando novamente o comando gdcloud admin auth revoke. Se tiver êxito, vê o seguinte:

    No sessions found for account: ariel@example.com
    
  5. Repita os passos anteriores para cada zona no seu universo.