Conceder e revogar acesso

Cada assunto (um usuário ou um grupo) segue um processo de duas etapas para ter acesso ao servidor da API global. Conceda a um assunto permissões no servidor de API global usando IAMRoleBinding para um IAMRole predefinido. Todas as atribuições de função e funções são globais.

As personas (IO, PA, AO) não são papéis, mas sim coleções de papéis de usuário mapeados para permissões específicas e atribuídos a usuários individuais.

Configurar vinculações de papéis

É possível configurar vinculações de função que dão aos membros da equipe acesso a recursos no nível da organização ou do projeto.

Para receber as permissões necessárias para configurar vinculações de papéis, peça ao administrador do IAM da organização para conceder a você o papel de administrador do IAM da organização.

Para atribuir uma função a um membro autorizado, siga estas etapas:

Console

  1. Faça login no console do GDC.
  2. Selecione uma organização ou um projeto no seletor de escopo.
    • Para configurar vinculações de função em uma organização, selecione uma organização.
    • Para configurar vinculações de função em 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 usuários individuais ou grupos.
  6. Na lista Provedor de identidade, selecione uma opção.
  7. No campo Nome de usuário ou alias do grupo, insira o nome de usuário, o endereço de e-mail ou o alias.
  8. Na lista Papel, selecione o papel que você quer atribuir ao usuário ou grupo, como Visualizador da organização no nível da organização ou Criador de projetos no nível do projeto.
  9. Clique em Adicionar.

O membro aparece na lista Membro autorizado.

gdcloud

  1. Verifique se você instalou a CLI gdcloud.

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

  3. Configure as vinculações de função.

    • Configurar vinculações de papéis 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 você está configurando a vinculação de função.
      • USER_ACCOUNT: a conta de usuário a que você quer conceder o papel. Essa flag aceita um endereço de e-mail do usuário com o prefixo do provedor de identidade (user:idpprefix-user@example.com) ou um nome de 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 você quer atribuir ao usuário.
    • Configure vinculações de papéis 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 você está configurando a vinculação de função.
      • USER_ACCOUNT: a conta de usuário a que você quer conceder o papel. Essa flag aceita um endereço de e-mail do usuário com o prefixo do provedor de identidade (user:idpprefix-user@example.com) ou um nome de 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 você quer atribuir ao usuário.

API

  1. Exporte a credencial de usuário que você usa:

    export GLOBAL_API_SERVER_KUBECONFIG=GLOBAL_API_SERVER_KUBECONFIG
    
  2. Exporte a conta de usuário a que você quer atribuir a função, incluindo o prefixo do provedor de identidade (como idpprefix-paul@example.com):

    export USERNAME=IDP_PREFIX-USER_EMAIL
    
  3. Exporte o nome da função que o usuário precisa, como project-creator. Consulte Definições de papéis para encontrar o papel adequado.

    export ROLE_NAME=ROLE_NAME
    
  4. Exporte o namespace em que a vinculação precisa ser criada:

    export BINDING_NAMESPACE=BINDING_NAMESPACE
    

    Substitua BINDING_NAMESPACE por platform para papéis no escopo da organização ou pelo nome do namespace do projeto de destino para papéis no escopo do projeto.

    Consulte Definições de papéis para conferir uma lista de papéis e o escopo deles.

  5. Crie e aplique um recurso personalizado IAMRoleBinding:

    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
    

Remover vinculações de papéis

Quando o acesso não for mais necessário, remova um membro e os papéis, as permissões e o acesso associados a ele.

Para remover participantes, siga estas etapas:

Console

  1. Faça login no console 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 solicitado, clique em Remover participante para confirmar.

gdcloud

  1. Verifique se você instalou a CLI gdcloud.

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

  3. Remova as vinculações de papéis.

    • Remover vinculações de papéis de 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 de que você está removendo a vinculação de função.
      • USER_ACCOUNT: a conta de usuário de que você quer remover o papel. Essa flag aceita um endereço de e-mail do usuário com o prefixo do provedor de identidade (user:idpprefix-user@example.com) ou um nome de 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 você quer remover da conta de usuário.
    • Remova as vinculações de papel de um projeto:

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

      Substitua as seguintes variáveis:

      • PROJECT: o nome do projeto de que você está removendo a vinculação de função.
      • USER_ACCOUNT: a conta de usuário de que você quer remover o papel. Essa flag aceita um endereço de e-mail do usuário com o prefixo do provedor de identidade (user:idpprefix-user@example.com) ou um nome de 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 você quer remover da conta de usuário.

API

Exclua o IAMRoleBinding para revogar a permissão concedida à conta do PA:

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

Substitua:

  • GLOBAL_API_SERVER_KUBECONFIG: o caminho para o arquivo kubeconfig para acessar o servidor da API global.
  • USERNAME: a conta de usuário de que você quer remover o papel, incluindo o prefixo do provedor de identidade (como idpprefix-paul@example.com).
  • ROLE_NAME: o nome do papel que você quer remover, como project-creator.
  • BINDING_NAMESPACE: substitua por platform para papéis no escopo da organização ou o nome do namespace do projeto de destino para papéis no escopo do projeto.

Revogar o acesso do usuário

Se um membro sair da sua organização ou equipe, você poderá revogar o acesso dele ao Google Distributed Cloud (GDC) isolado por air-gap. Ao revogar o acesso de um usuário, ele é desconectado do Distributed Cloud e os papéis e permissões dele são removidos. Você também pode listar a atividade e as sessões do usuário com base no horário de início e término.

Para revogar o acesso de um usuário em um universo do GDC, é necessário fazer isso em cada zona individual separadamente. Conclua as etapas a seguir para cada zona:

  1. Confira se você fez login na zona em que quer revogar o acesso. Por exemplo, defina a configuração de URL zonal para a CLI gdcloud e faça login:

    gdcloud config set organization_console_url ZONE_URL
    gdcloud auth login
    

    Substitua ZONE_URL pelo URL do console do GDC da zona em que você quer revogar o acesso do usuário, que é semelhante a https://console.ORG_NAME.ZONE_NAME.ORG_SUFFIX.

    Para mais informações sobre como alternar contextos zonais, consulte Gerenciar recursos em várias zonas.

  2. Receba as permissões necessárias para revogar usuários. Peça ao administrador do IAM da organização para conceder a você o papel de administrador da sessão da organização (org-session-admin).

  3. Revogue o acesso do usuário à zona:

    gdcloud admin auth revoke --accounts USER_EMAIL
    

    Substitua USER_EMAIL pelo e-mail do usuário para revogar o acesso.

    Depois de executar o comando, você vai ver uma saída semelhante a esta: Este exemplo revoga o acesso do usuário ariel@example.com:

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

    Neste exemplo, a variável NUMBER se refere ao número de sessões ativas do usuário.

  4. Confirme se você revogou o acesso do usuário executando o comando gdcloud admin auth revoke novamente. Se a operação for bem-sucedida, você verá o seguinte:

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