Gerenciar identidade e acesso para o projeto

Nesta página, descrevemos as práticas de gerenciamento de identidade e acesso (IAM) para o operador de aplicativos (AO) no dispositivo isolado do Google Distributed Cloud (GDC).

Um provedor de identidade (IdP) é uma entidade de sistema que cria, mantém e gerencia informações de identidade para principais. O IdP também oferece serviços de autenticação para aplicativos em uma federação ou rede distribuída.

Fazer login

Nesta seção, descrevemos como acessar suas cargas de trabalho pela interface do usuário (UI) da Web ou pela interface de linha de comando (CLI).

Fazer login na UI da Web

Esta página mostra como acessar e gerenciar suas cargas de trabalho e recursos no dispositivo isolado do Google Distributed Cloud (GDC). Ele descreve como autenticar, gerar arquivos kubeconfig para um servidor da API Management e um cluster do Kubernetes e gerenciar a inatividade da sessão. Entender esses processos garante o acesso seguro e confiável aos seus projetos e cargas de trabalho.

Acesse suas cargas de trabalho pelo console do GDC ou pela CLI gdcloud.

Fazer login

Para fazer login no console do GDC ou em um cluster, siga estas etapas:

Console

Abra o seguinte URL em uma nova guia do navegador para acessar a interface do usuário (UI) do dispositivo isolado do GDC:

https://GDC_URL

Substitua GDC_URL pelo nome de domínio que você usa para acessar o GDC fornecido pelo operador de infraestrutura (IO). Ao abrir um URL pela primeira vez, o GDC redireciona você para a página de login do provedor de identidade se o operador de infraestrutura (IO) tiver configurado a página.

Por exemplo, a página a seguir aparece depois de fazer login no console de uma organização chamada "org-1": Console mostrando a tela de boas-vindas do projeto org-1.

CLI

Você pode fazer login em qualquer cluster a que tenha permissão de acesso. O processo de login da CLI é o mesmo para todos os clusters. Você só precisa fornecer o nome do cluster e o arquivo kubeconfig relacionado e fazer login separadamente em cada cluster.

Antes de fazer login, faça o seguinte:

  • Faça o download do binário da CLI gdcloud e instale-o no seu sistema. Para mais informações, consulte Fazer o download da CLI gdcloud.
  • Configure e inicialize a configuração padrão da CLI gdcloud. Defina o URL correto da organização, que é usado para buscar o endpoint de configuração de login. Para mais informações, consulte Instalação da CLI gdcloud.
  • Instale o plug-in de autenticação gdcloud-k8s-auth-plugin. Para mais informações, consulte Autenticação da CLI gdcloud.

Para fazer login em um cluster, siga estas etapas:

  1. Autentique sua instância da CLI gdcloud para fazer login. Há duas maneiras de autenticar:

    • Login padrão do navegador:use esse fluxo de autenticação ao fazer login em um navegador.

      gdcloud auth login
      
    • Login em um dispositivo secundário:use esse fluxo de autenticação se o dispositivo principal não tiver um navegador disponível. Esse fluxo inicia o login no dispositivo principal sem acesso ao navegador e continua o login com o dispositivo secundário que tem acesso ao navegador.

      1. Inicie o login no dispositivo principal sem um navegador:

        gdcloud auth login --no-browser
        

        O comando no dispositivo principal vai imprimir outro comando gdcloud que você precisa executar no dispositivo secundário na etapa c.

      2. Repita a etapa 1 de Fazer login em um cluster para baixar o certificado no dispositivo secundário.

      3. Conclua o login no dispositivo secundário inserindo o comando impresso no dispositivo principal na etapa a.

    Essa ação abre um navegador para fazer login no provedor de identidade (IdP) configurado. Informe o usuário e a senha definidos durante a configuração inicial da CLI gdcloud para fazer login.

  2. Exporte o arquivo de identidade do usuário kubeconfig como uma variável:

    export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
    
  3. Gere um arquivo kubeconfig com sua identidade de usuário:

    gdcloud clusters get-credentials CLUSTER_NAME
    

    Um arquivo kubeconfig é gerado com sua identidade de usuário. O arquivo YAML a seguir mostra um exemplo:

    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: <REDACTED>
        server: https://10.200.0.32:443
      name: cluster-name
    contexts:
    - context:
        cluster: cluster-name
        user: cluster-name-anthos-default-user
      name: cluster-name-cluster-name-anthos-default-user
    current-context: cluster-name-cluster-name-anthos-default-user
    kind: Config
    preferences: {}
    users:
    - name: cluster-name-anthos-default-user
      user:
        exec:
            apiVersion: client.authentication.k8s.io/v1
            args:
            - --audience=root-admin
            command: gdcloud-k8s-auth-plugin
            env: null
            installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin
            interactiveMode: Never
            provideClusterInfo: false
    
  4. Para verificar se você pode acessar o cluster, faça login com o arquivo kubeconfig gerado com uma identidade de usuário:

    kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
    

Sair

Para sair do console do GDC, faça o seguinte:

Console

Clique em Sair na barra de menu.

CLI

Saia da CLI:

gdcloud auth revoke

Gerar manualmente o arquivo kubeconfig

Se você estiver gerenciando recursos com a CLI kubectl chamando as APIs KRM diretamente, será necessário gerar o arquivo kubeconfig para o cluster que hospeda o recurso, dependendo do tipo de recurso que você está gerenciando. Acesse a documentação do recurso para determinar o arquivo kubeconfig necessário.

Conclua a configuração aplicável com base no tipo de recurso.

Recursos do servidor da API Management

Siga estas etapas para gerar o arquivo kubeconfig do servidor da API Management:

  1. Defina a variável de ambiente MANAGEMENT_API_SERVER:

    export MANAGEMENT_API_SERVER="root-admin"
    
  2. Gere o arquivo kubeconfig do servidor da API Management e valide as credenciais:

    export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?}
    [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    O comando rm ${KUBECONFIG:?} remove o arquivo kubeconfig existente no diretório inicial. Quando você gera um novo arquivo kubeconfig, ele substitui o arquivo atual. Se você não quiser substituir ou remover o arquivo atual, faça backup dele em outro local seguro.

Recursos do cluster do Kubernetes

Siga estas etapas para gerar o arquivo kubeconfig do cluster do Kubernetes bare metal:

  1. Defina a variável de ambiente KUBERNETES_CLUSTER:

    export KUBERNETES_CLUSTER="root-infra"
    
  2. Gere o arquivo kubeconfig do cluster do Kubernetes e valide as credenciais:

    export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?}
    [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    O comando rm ${KUBECONFIG:?} remove o arquivo kubeconfig existente no diretório inicial. Quando você gera um novo arquivo kubeconfig, ele substitui o arquivo atual. Se você não quiser substituir ou remover o arquivo atual, faça backup dele em outro local seguro.

Encerramento de sessão por inatividade

Após 15 minutos ou mais de inatividade em uma sessão, o console do GDC e a CLI gdcloud fazem logout. O GDC considera a inatividade da sessão como um período durante uma sessão aberta sem engajamento ativo da sua parte, como nenhum movimento do cursor ou do teclado. Uma sessão ativa dura até 12 horas com atividade do usuário.

Console

Em caso de inatividade da sessão, o console do GDC faz logout. Dois minutos antes de o console do GDC fazer logout por inatividade, você recebe uma caixa de diálogo avisando sobre o logout:

A interface do console mostrando uma caixa de diálogo com um timer de 99 segundos antes de fazer logout do usuário por inatividade.

Depois de desconectar você por inatividade, a seguinte tela vai aparecer:

A interface do console mostra a tela de login com um banner contendo o texto sobre o logout da sessão: &quot;Você saiu do sistema porque sua sessão ficou inativa por muito tempo. Faça login novamente ou entre em contato com o administrador para receber ajuda.&quot;

Para fazer login novamente no console do GDC, selecione seu provedor de identidade e adicione suas credenciais de login. Se você usar um serviço, como o painel de monitoramento, e o console do GDC fizer logout por inatividade, faça login novamente para ter acesso.

CLI

Em caso de inatividade da sessão, a CLI gdcloud faz logout. Depois que a CLI gdcloud faz logout e você tenta executar um comando, recebe um erro de autorização:

Error: error when creating kube client: unable to create k8sclient: Unauthorized

Para fazer login novamente na CLI gdcloud, siga as etapas da CLI em Fazer login.

kubectl

A CLI gdcloud expira os arquivos kubeconfig após a inatividade da sessão. Se você tentar executar um comando kubectl após um período de inatividade, vai receber um erro de autorização:

error: You must be logged in to the server (Unauthorized)

Para fazer login novamente e usar o arquivo kubeconfig, siga as etapas da CLI em Fazer login. Para cada tempo limite de sessão, é necessário regenerar os arquivos kubeconfig.

Definir políticas de permissão do IAM

Descrições de papéis predefinidos

Um operador de aplicativo (AO, na sigla em inglês) é um membro da equipe de desenvolvimento na organização do administrador da plataforma (PA, na sigla em inglês). As AOs interagem com recursos no nível do projeto. É possível atribuir os seguintes papéis predefinidos aos membros da equipe:

  • Administrador do IAM do projeto:gerencia as políticas de permissão do IAM dos projetos.
  • Desenvolvedor de OCR de IA: acesse o serviço de reconhecimento óptico de caracteres para detectar texto em imagens.
  • Desenvolvedor de fala com IA: acesse o serviço Speech-to-Text para reconhecer a fala e transcrever áudio.
  • Desenvolvedor de tradução de IA: acesse o serviço de tradução da Vertex AI para traduzir texto.
  • Administrador do gerenciamento de artefatos: tem acesso de administrador aos recursos em todos os projetos do Harbor no namespace do projeto.
  • Editor de gerenciamento de artefatos: tem acesso de leitura e gravação a recursos em todos os projetos do Harbor no namespace do projeto.
  • Administrador do Certificate Authority Service: tem acesso para gerenciar autoridades certificadoras e solicitações de certificado no projeto.
  • Administrador do serviço de certificados: tem acesso para gerenciar certificados e emissores de certificados no projeto.
  • Editor de painéis: tem acesso de leitura e gravação em recursos personalizados Dashboard.
  • Leitor do painel: tem acesso somente leitura a recursos personalizados do Dashboard.
  • Administrador da instância do Harbor: tem acesso total para gerenciar instâncias do Harbor em um projeto.
  • Leitor de instâncias do Harbor: tem acesso somente leitura para visualizar instâncias do Harbor em um projeto.
  • Criador de projetos do Harbor: tem acesso para gerenciar projetos de instâncias do Harbor.
  • Administrador de políticas de rede do K8s: gerencia políticas de rede em clusters do Kubernetes.
  • Criador de LoggingRule: cria recursos personalizados LoggingRule no namespace do projeto.
  • Editor de LoggingRule: edita recursos personalizados LoggingRule no namespace do projeto.
  • Leitor de LoggingRule: visualiza recursos personalizados LoggingRule no namespace do projeto.
  • Criador de LoggingTarget: cria recursos personalizados LoggingTarget no namespace do projeto.
  • Editor do LoggingTarget: edita recursos personalizados LoggingTarget no namespace do projeto.
  • Leitor do LoggingTarget: visualiza LoggingTarget recursos personalizados no namespace do projeto.
  • Administrador do balanceador de carga: tem permissões de leitura e gravação em todos os recursos do balanceador de carga no namespace do projeto.
  • Editor do MonitoringRule: tem acesso de leitura e gravação aos recursos MonitoringRule.
  • Leitor do MonitoringRule: tem acesso somente leitura aos recursos personalizados MonitoringRule.
  • Editor do MonitoringTarget: tem acesso de leitura e gravação a recursos personalizados MonitoringTarget.
  • Leitor do MonitoringTarget: tem acesso somente leitura aos recursos personalizados MonitoringTarget.
  • Leitor de NAT: tem acesso somente leitura a implantações em clusters do Kubernetes.
  • Administrador de namespace: gerencia todos os recursos no namespace do projeto.
  • Editor do ObservabilityPipeline: tem acesso de leitura e gravação em recursos personalizados ObservabilityPipeine.
  • Leitor do ObservabilityPipeline: tem acesso somente leitura aos recursos personalizados do ObservabilityPipeline.
  • Administrador de buckets do projeto: gerencia os buckets e objetos de armazenamento dentro dos buckets.
  • Administrador de objetos do bucket do projeto: tem acesso somente leitura aos buckets em um projeto e acesso de leitura/gravação aos objetos nesses buckets.
  • Leitor de objetos do bucket do projeto: tem acesso somente leitura a buckets em um projeto e aos objetos nesses buckets.
  • Editor do Alertmanager do Project Cortex: concede permissões para editar a instância do Alertmanager do Cortex no namespace do projeto.
  • Leitor do Alertmanager do Project Cortex: concede permissões para acessar a instância do Alertmanager do Cortex no namespace do projeto.
  • Visualizador do Prometheus do Project Cortex: concede permissões para acessar a instância do Cortex Prometheus no namespace do projeto.
  • Leitor do Grafana do projeto: acessa a instância do Grafana no namespace do projeto do cluster de administrador da frota.
  • Administrador de NetworkPolicy do projeto:gerencia as políticas de rede do projeto no namespace do projeto.
  • Leitor do projeto:tem acesso somente leitura a todos os recursos nos namespaces do projeto.
  • Administrador de VirtualMachine do projeto: gerencia VMs no namespace do projeto.
  • Administrador de imagens de máquina virtual do projeto: gerencia imagens de VM no namespace do projeto.
  • Administrador de secrets: gerencia secrets do Kubernetes em projetos.
  • Leitor de secrets: visualiza secrets do Kubernetes em projetos.
  • Administrador da configuração de serviço: tem acesso de leitura e gravação às configurações de serviço em um namespace do projeto.
  • Leitor de configuração de serviço: tem acesso de leitura às configurações de serviço em um namespace do projeto.
  • Administrador da replicação de volume: gerencia recursos de replicação de volume.
  • Administrador de notebooks do Workbench: tenha acesso de leitura e gravação a todos os recursos de notebook em um namespace de projeto.
  • Leitor de notebooks do Workbench: tenha acesso somente leitura a todos os recursos de notebook em um namespace de projeto e veja a interface do usuário do Vertex AI Workbench.
  • Leitor de carga de trabalho: tem acesso de leitura a cargas de trabalho em um projeto.

Funções comuns

As seguintes funções comuns predefinidas se aplicam a todos os usuários autenticados:

  • Leitor do AI Platform: concede permissões para visualizar serviços pré-treinados.
  • Visualizador de sufixo de DNS: acessa o mapa de configuração de sufixo do serviço de nome de domínio (DNS).
  • Administrador de registros de fluxo: tem acesso de leitura e gravação a todos os recursos de registros de fluxo.
  • Leitor de registros de fluxo: tem acesso somente leitura a todos os recursos de registros de fluxo.
  • Leitor de descoberta de projetos: tem acesso de leitura para todos os usuários autenticados na visualização do projeto.
  • Visualizador de imagens públicas: tem acesso de leitura para todos os usuários autenticados nas imagens públicas de VM no namespace vm-images.
  • Monitor de secrets anthos-creds do Artifact Registry do sistema: tem acesso somente leitura a secrets no namespace anthos-creds.
  • Monitor de secrets do Artifact Registry do sistema gpc-system: tem acesso somente leitura a secrets no namespace gpc-system.
  • Monitor de secrets do sistema harbor-system do Artifact Registry: tem acesso somente leitura a secrets no namespace harbor-system.
  • Leitor de tipo de máquina virtual: tem acesso de leitura a tipos de máquinas virtuais no escopo do cluster.
  • Leitor de tipo de VM: tem acesso de leitura aos tipos de máquina virtual predefinidos nos clusters de administrador.

Definições de função

As tabelas desta seção descrevem diferentes papéis predefinidos e as respectivas permissões. As tabelas contêm as seguintes colunas:

  • Nome:o nome de uma função exibida na interface do usuário (UI).
  • Nome do recurso do Kubernetes:o nome do recurso personalizado correspondente do Kubernetes.
  • Nível:especificação de se o escopo desse papel é a organização ou um projeto.
  • Tipo:o tipo dessa função. Por exemplo, alguns valores possíveis são Role, ProjectRole, ClusterRole ou ProjectClusterRole.
  • Tipo de vinculação:o tipo de vinculação que você precisa aplicar a essa função.
  • Permissões do servidor da API de gerenciamento ou do cluster do Kubernetes:as permissões que essa função tem para o servidor da API Management ou o cluster do Kubernetes. Por exemplo, alguns valores possíveis são "ler", "gravar", "ler e gravar" ou "não aplicável" (N/A).
  • Escalonamento para:especifica se essa função é escalonada para outras funções ou não.

Personas do AO, identidades predefinidas e papéis de acesso

Personagem de AO
Nome Nome do recurso do Kubernetes Administrador inicial Nível Tipo
Administrador de IAM do projeto project-iam-admin Verdadeiro Projeto Role
Desenvolvedor de OCR de IA ai-ocr-developer Falso Projeto Role
Leitor do AI Platform ai-platform-viewer Falso Projeto Role
Desenvolvedor de IA de fala ai-speech-developer Falso Projeto Role
Desenvolvedor de IA de tradução ai-translation-developer Falso Projeto Role
Administrador de gerenciamento de artefatos artifact-management-admin Falso Projeto Role
Editor de gerenciamento de artefatos artifact-management-editor Falso Projeto Role
Administrador do Certificate Authority Service certificate-authority-service-admin Falso Projeto Role
Administrador do serviço de certificados certificate-service-admin Falso Projeto Role
Editor de painel dashboard-editor Falso Projeto Role
Leitor de painéis dashboard-viewer Falso Projeto Role
Administrador de instâncias do Harbor harbor-instance-admin Falso Projeto Role
Leitor de instâncias do Harbor harbor-instance-viewer Falso Projeto Role
Criador de projetos do Harbor harbor-project-creator Falso Projeto Role
Administrador da política de rede do K8s k8s-networkpolicy-admin Falso Projeto ProjectRole
Administrador do Balanceador de Carga load-balancer-admin Falso Projeto ProjectRole
LoggingRule Creator loggingrule-creator Falso Projeto Role
Editor de LoggingRule loggingrule-editor Falso Projeto Role
Leitor de LoggingRule loggingrule-viewer Falso Projeto Role
LoggingTarget Creator loggingtarget-creator Falso Projeto Role
Editor do LoggingTarget loggingtarget-editor Falso Projeto Role
Leitor do LoggingTarget loggingtarget-viewer Falso Projeto Role
Editor do MonitoringRule monitoringrule-editor Falso Projeto Role
Leitor de MonitoringRule monitoringrule-viewer Falso Projeto Role
Editor do MonitoringTarget monitoringtarget-editor Falso Projeto Role
Leitor do MonitoringTarget monitoringtarget-viewer Falso Projeto Role
Administrador de namespace namespace-admin Falso Projeto ProjectRole
Visualizador de NAT nat-viewer Falso Projeto ProjectRole
Editor do ObservabilityPipeline observabilitypipeline-editor Falso Projeto Role
Leitor do ObservabilityPipeline observabilitypipeline-viewer Falso Projeto Role
Administrador de bucket do projeto project-bucket-admin Falso Projeto Role
Administrador de objetos do bucket do projeto project-bucket-object-admin Falso Projeto Role
Leitor de objetos do bucket do projeto project-bucket-object-viewer Falso Projeto Role
Editor do Alertmanager do Project Cortex project-cortex-alertmanager-editor Falso Projeto Role
Leitor do Alertmanager do Project Cortex project-cortex-alertmanager-viewer Falso Projeto Role
Leitor do Prometheus do Project Cortex project-cortex-prometheus-viewer Falso Projeto Role
Leitor do Grafana do projeto project-grafana-viewer Falso Projeto Role
Administrador de NetworkPolicy do projeto project-networkpolicy-admin Falso Projeto Role
Leitor do projeto. project-viewer Falso Projeto Role
Administrador de máquinas virtuais do projeto project-vm-admin Falso Projeto Role
Administrador de imagens de máquinas virtuais do projeto project-vm-image-admin Falso Projeto Role
Administrador de secrets secret-admin Falso Projeto Role
Leitor de secrets secret-viewer Falso Projeto Role
Administrador da configuração do serviço service-configuration-admin Falso Projeto Role
Leitor de configuração do serviço service-configuration-viewer Falso Projeto Role
Administrador de notebooks do Workbench workbench-notebooks-admin Falso Projeto Role
Administrador da replicação de volume app-volume-replication-admin Falso Cluster Role
Leitor do Notebooks do Workbench workbench-notebooks-viewer Falso Projeto Role
Leitor de carga de trabalho workload-viewer Falso Projeto Role

Personas do AO, identidades predefinidas e papéis de acesso

Personagem de AO
Nome Tipo de vinculação Permissões do servidor da API Management Permissões do cluster do Kubernetes Encaminha para
Administrador de IAM do projeto RoleBinding
  • RoleBinding, ClusterRoleBinding, Role, ClusterRole, ProjectRole, ProjectClusterRole, ProjectRoleBinding e ProjectClusterRoleBinding:criar, ler, atualizar, excluir e vincular
  • ProjectServiceAccount:criar, ler, atualizar e excluir
  • Listar namespace do projeto
N/A Todas as outras funções do AO
Desenvolvedor de OCR de IA RoleBinding Recursos de OCR:leitura e gravação N/A N/A
Desenvolvedor de IA de fala RoleBinding Recursos de fala:leitura e gravação N/A N/A
Desenvolvedor de IA de tradução RoleBinding Recursos de tradução:leitura e gravação N/A N/A
Administrador de gerenciamento de artefatos RoleBinding HarborProjects:administrador, criar, ler, gravar, excluir e visualizar N/A N/A
Editor de gerenciamento de artefatos RoleBinding HarborProjects:ler, gravar e visualizar N/A N/A
Administrador do Certificate Authority Service RoleBinding Autoridades certificadoras e solicitações de certificado:receber, listar, monitorar, atualizar, criar, excluir e corrigir N/A N/A
Administrador do serviço de certificados RoleBinding Certificados e emissores de certificados:receber, listar, observar, atualizar, criar, excluir e corrigir N/A N/A
Editor de painel RoleBinding Recursos personalizados do Dashboard:receber, ler, criar, atualizar, excluir e corrigir N/A N/A
Leitor de painéis RoleBinding Dashboard:receber e ler N/A N/A
Administrador de instâncias do Harbor RoleBinding Instâncias do Harbor:criar, ler, atualizar, excluir e corrigir N/A N/A
Leitor de instâncias do Harbor RoleBinding Instâncias do Harbor:leitura N/A N/A
Criador de projetos do Harbor RoleBinding Projetos de instância do Harbor:criar, receber e assistir N/A N/A
Administrador do NetworkPolicy do K8s ProjectRoleBinding N/A NetworkPolicy recursos: criar, ler, receber, atualizar, excluir e patch N/A
Administrador do Balanceador de Carga RoleBinding N/A
  • Backend:get, watch, list, create, patch, update e delete
  • HealthCheck:get, watch, list, create, patch, update e delete
  • BackendService:get, watch, list, create, patch, update e delete
  • ForwardingRuleExternal:get, watch, list, create, patch, update e delete
  • ForwardingRuleInternal:get, watch, list, create, patch, update e delete
N/A
LoggingRule Creator RoleBinding Recursos personalizados LoggingRule:criar, ler, atualizar, excluir e corrigir N/A N/A
Editor de LoggingRule RoleBinding Recursos personalizados LoggingRule:criar, ler, atualizar, excluir e corrigir N/A N/A
Leitor de LoggingRule RoleBinding Recursos personalizados LoggingRule:leitura N/A N/A
LoggingTarget Creator RoleBinding Recursos personalizados LoggingTarget:criar, ler, atualizar, excluir e corrigir N/A N/A
Editor do LoggingTarget RoleBinding Recursos personalizados LoggingTarget:criar, ler, atualizar, excluir e corrigir N/A N/A
Leitor do LoggingTarget RoleBinding Recursos personalizados LoggingTarget:leitura N/A N/A
Editor do MonitoringRule RoleBinding Recursos personalizados MonitoringRule:criar, ler, atualizar, excluir e corrigir N/A N/A
Leitor de MonitoringRule RoleBinding Recursos personalizados MonitoringRule:leitura N/A N/A
Editor do MonitoringTarget RoleBinding Recursos personalizados MonitoringTarget:criar, ler, atualizar, excluir e corrigir N/A N/A
Leitor do MonitoringTarget RoleBinding Recursos personalizados MonitoringTarget:leitura N/A N/A
Administrador de namespace ProjectRoleBinding N/A Todos os recursos:acesso de leitura e gravação no namespace do projeto N/A
Visualizador de NAT ProjectRoleBinding N/A Implantações: receber e ler N/A
Editor do ObservabilityPipeline RoleBinding Recursos ObservabilityPipeline:get, read, create, update, delete e patch N/A N/A
Leitor do ObservabilityPipeline RoleBinding Recursos do ObservabilityPipeline:receber e ler N/A N/A
Administrador de bucket do projeto RoleBinding Bucket:leitura e gravação no namespace do projeto N/A N/A
Administrador de objetos do bucket do projeto RoleBinding
  • Bucket:leitura
  • Objetos:leitura e gravação
N/A N/A
Leitor de objetos do bucket do projeto RoleBinding Bucket e objetos:leitura N/A N/A
Editor do Alertmanager do Project Cortex RoleBinding Sistema do Cortex e Cortex Alertmanager:leitura e gravação N/A N/A
Leitor do Alertmanager do Project Cortex RoleBinding Sistema Cortex e Cortex Alertmanager:leia N/A N/A
Leitor do Prometheus do Project Cortex RoleBinding Sistema Cortex e Prometheus do Cortex:leitura N/A N/A
Leitor do Grafana do projeto RoleBinding Sistema e Grafana:leitura e gravação N/A N/A
Administrador de NetworkPolicy do projeto RoleBinding Políticas de rede do projeto:leitura e gravação no namespace do projeto N/A N/A
Leitor do projeto. RoleBinding Todos os recursos no namespace do projeto:leitura N/A N/A
Administrador de máquinas virtuais do projeto RoleBinding
  • Máquinas virtuais, discos, solicitações de acesso, acesso externo, solicitações de backup, backups, solicitações de restauração, solicitações de exclusão de backup, restaurações e solicitações de redefinição de senha:leitura, criação, atualização e exclusão
  • Reinicialização da máquina virtual:PUT
  • Imagens de máquinas virtuais, planos e modelos de planos de backup:leitura
N/A N/A
Administrador de imagens de máquinas virtuais do projeto RoleBinding
  • Imagens de VM:leitura
  • Importações de imagens de VM:leitura e gravação
N/A N/A
Administrador de secrets RoleBinding Secrets do Kubernetes:ler, criar, atualizar, excluir e corrigir N/A N/A
Leitor de secrets RoleBinding Secrets do Kubernetes:leitura N/A N/A
Administrador da configuração do serviço RoleBinding ServiceConfigurations:leitura e gravação N/A N/A
Leitor de configuração do serviço RoleBinding ServiceConfigurations: Lida N/A N/A
Administrador da replicação de volume ClusterRoleBinding Volume failovers, volume relationship replicas:create, get, list, watch, delete N/A N/A
Administrador de notebooks do Workbench RoleBinding N/A
  • Recursos personalizados (CRs) do notebook no namespace do projeto:criar, ler, atualizar e excluir
  • Objetos ClusterInfo:leitura
N/A
Leitor do Notebooks do Workbench RoleBinding N/A
  • Recursos personalizados (CRs) do notebook no namespace do projeto:leitura
N/A
Leitor de carga de trabalho ProjectRoleBinding N/A
  • Recursos personalizados do pod no namespace do projeto:leitura
  • Recursos personalizados de implantação no namespace do projeto:leitura
N/A

Papéis comuns predefinidos de identidade e acesso

Funções comuns
Nome Nome do recurso do Kubernetes Administrador inicial Nível Tipo
Leitor do AI Platform ai-platform-viewer Falso Projeto Role
Leitor de sufixo DNS dnssuffix-viewer Falso Organização Role
Administrador de registros de fluxo flowlog-admin Falso Organização ClusterRole
Visualizador de registros de fluxo flowlog-viewer Falso Projeto ClusterRole
Leitor da descoberta de projetos projectdiscovery-viewer Falso Projeto ClusterRole
Visualizador de imagens públicas public-image-viewer Falso Organização Role
Monitor do secret anthos-creds do Artifact Registry do sistema sar-anthos-creds-secret-monitor Falso Organização Role
Monitor de segredos do sistema gpc-system do Artifact Registry sar-gpc-system-secret-monitor Falso Organização Role
Monitor de secrets do sistema Artifact Registry harbor-system sar-harbor-system-secret-monitor Falso Organização Role
Leitor de tipo de máquina virtual virtualmachinetype-viewer Falso Organização OrganizationRole
Leitor de tipo de VM vmtype-viewer Falso Organização Role

Papéis comuns predefinidos de identidade e acesso

Funções comuns
Nome Tipo de vinculação Permissões do cluster de administrador Permissões do cluster do Kubernetes Encaminha para
Leitor do AI Platform RoleBinding Serviços pré-treinados:leitura N/A N/A
Leitor de sufixo DNS ClusterRoleBinding Configmaps de sufixo DNS:leitura N/A N/A
Administrador de registros de fluxo ClusterRoleBinding Recursos de registros de fluxo:receber e ler Recursos de registros de fluxo:receber e ler N/A
Visualizador de registros de fluxo ClusterRoleBinding Recursos de registros de fluxo:criar, receber, ler, adicionar patch, atualizar e excluir Recursos de registros de fluxo:criar, receber, ler, adicionar patch, atualizar e excluir N/A
Leitor da descoberta de projetos ClusterRoleBinding Projetos:leitura N/A N/A
Visualizador de imagens públicas RoleBinding Imagens de VM:leitura N/A N/A
Monitor do secret anthos-creds do Artifact Registry do sistema RoleBinding Segredos do anthos-creds:acessar e ler anthos-creds secrets:receber e ler N/A
Monitor de segredos do sistema gpc-system do Artifact Registry RoleBinding gpc-system secrets:receber e ler gpc-system secrets:receber e ler N/A
Monitor de secrets do sistema Artifact Registry harbor-system RoleBinding harbor-system secrets:receber e ler Segredos do harbor-system:acessar e ler N/A
Leitor de tipo de máquina virtual OrganizationRoleBinding N/A Tipos de VM:leitura N/A
Leitor de tipo de VM ClusterRoleBinding Tipos de VM:leitura N/A N/A

Há duas maneiras de conceder acesso aos recursos:

Configurar vinculações de papéis usando a CLI

Acesso do AO no cluster de administrador

Ao contrário dos operadores de infraestrutura (IO) e administradores de plataforma (PA), o GDC vincula operadores de aplicativos (AO) a um Project por um RoleBinding, em vez de um ClusterRoleBinding.

Para conceder acesso de um AO ao cluster de administrador, siga estas etapas:

  1. Exporte o e-mail que você usa para acessar o AO. Por exemplo, um e-mail como ao-alice@example.com.

    export AO_EMAIL=AO_EMAIL
    
  2. Crie uma vinculação de papel para conceder acesso de administrador do IAM do projeto ${AO_EMAIL} no namespace iam-test:

    kubectl create --kubeconfig PA_KUBECONFIG \
    rolebinding $AO_EMAIL-project-iam-admin \
    --role=project-iam-admin --user=$AO_EMAIL \
    --namespace=iam-test
    

    O papel project-iam-admin é predefinido para o GDC. O namespace iam-test do Kubernetes corresponde ao projeto iam-test no cluster de administrador.

  3. Verifique se a conta do AO tem permissões para criar vinculações de função no namespace iam-test:

    kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n iam-test
    

    A saída a seguir será exibida:

    yes
    
  4. Crie uma vinculação de função para conceder acesso de ${AO_EMAIL} Leitor do projeto no namespace bar:

    kubectl create --kubeconfig PA_KUBECONFIG \
    rolebinding $AO_EMAIL-project-viewer \
    --role=project-viewer --user=$AO_EMAIL \
    --namespace=bar
    

    O papel project-viewer é predefinido para o GDC. O namespace bar do Kubernetes corresponde ao projeto bar no cluster de administrador da organização.

  5. Verifique se a conta do AO não tem permissões para criar vinculações de função no namespace bar:

    kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n bar
    

    A saída a seguir será exibida:

    no
    
  6. Opcional: exclua a vinculação de papel para revogar a permissão concedida à conta do AO:

    kubectl --kubeconfig PA_KUBECONFIG delete rolebinding $AO_EMAIL-project-iam-admin -n iam-test
    

Acesso ao AO em clusters de usuários

Um AO usa recursos ProjectRole e ProjectRoleBinding para ter acesso ao namespace dos clusters de usuário. No entanto, os PAs podem conceder permissões da organização para toda a AO em clusters de usuários usando recursos predefinidos OrganizationRole e ProjectRoleBinding.

Siga estas etapas para dar aos operadores de aplicativos acesso aos clusters de usuários:

Para conceder acesso a clusters de usuários, você precisa ter o papel de administrador do IAM do projeto.

  1. Crie um recurso ProjectRoleBinding para conceder acesso de administrador do namespace ${AO_EMAIL} em todos os clusters de usuários no namespace iam-test:

    kubectl --kubeconfig AO_KUBECONFIG apply -f - <<EOF
    apiVersion: resourcemanager.gdc.goog/v1
    kind: ProjectRoleBinding
    metadata:
      name: ${AO_EMAIL%@*}-namespace-admin
      namespace: iam-test
    spec:
      roleRef:
        apiGroup: resourcemanager.gdc.goog
        kind: ProjectRole
        name: namespace-admin
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: User
        name: ${AO_EMAIL}
    EOF
    
  2. Siga as instruções da seção Fazer login com a CLI e o kubectl para receber as credenciais do cluster de usuário e exportá-las na variável AO_USER_CLUSTER_KUBECONFIG:

    export AO_USER_CLUSTER_KUBECONFIG=GENERATED_KUBECONFIG
    
  3. Verifique se a conta do AO tem permissões para criar implantações no namespace iam-test:

    kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} auth can-i create deployment -n iam-test
    

    A saída a seguir será exibida:

    yes
    
  4. Opcional: exclua as vinculações de função do projeto para revogar a permissão concedida à conta de teste do AO:

    kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} delete projectrolebinding ${AO_EMAIL%@*}-namespace-admin -n iam-test
    

Configurar vinculações de papéis em todo o projeto usando a UI

Um operador de aplicativo adiciona outros operadores de aplicativo ao projeto para que eles tenham acesso aos recursos do projeto.

Para ter as permissões necessárias para configurar vinculações de função, peça ao administrador do IAM do projeto para conceder a você o papel de administrador do IAM do projeto.

Siga estas etapas para configurar as vinculações de papéis:

  1. Faça login no console do appliance isolado do GDC.
  2. Selecione um projeto.
  3. No menu de navegação, clique em Gerenciamento de acesso.
  4. Clique em Adicionar membro.
  5. Na lista Provedor de identidade, selecione uma opção.
  6. Escolha se quer adicionar usuários individuais ou grupos.
  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 a função que você quer atribuir ao usuário ou grupo, como Leitor do projeto.
  9. Clique em Adicionar.

Remover vinculações de papéis usando a UI

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.

Siga estas etapas para remover membros:

  1. Faça login no console do appliance isolado do GDC.
  2. Selecione um projeto.
  3. No menu de navegação, clique em Gerenciamento de acesso.
  4. Na lista Membros autorizados, selecione um membro.
  5. Clique em Remover membro.
  6. Quando solicitado, clique em Remover participante para confirmar.