Faça a gestão do acesso a clusters padrão

Este documento explica como gerir autorizações para clusters padrão no Google Distributed Cloud (GDC) isolado usando a CLI gdcloud. Os clusters padrão são ambientes Kubernetes configuráveis ao nível do projeto com serviços predefinidos mínimos que oferecem maior flexibilidade e controlo para cargas de trabalho personalizadas.

Para mais informações sobre clusters padrão e outros tipos de clusters, consulte as Configurações de clusters do Kubernetes.

Esta página destina-se a públicos-alvo no grupo de operadores de aplicações, como operações de programadores ou cientistas de dados, que precisam de gerir e proteger recursos em projetos do GDC. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.

Antes de começar

  • Peça ao administrador de IAM da organização para lhe conceder a função de administrador de IAM do projeto (project-iam-admin). Para mais informações sobre as funções, consulte o artigo Definições de funções.
  • Instale a CLI gcloud se ainda não o fez.

Conceda autorizações para acesso ao cluster padrão

Um utilizador com a função de administrador de IAM do projeto (project-iam-admin) executa os passos seguintes para conceder a outros utilizadores as funções necessárias para gerir o acesso em clusters padrão:

  1. Inicie sessão com o seu fornecedor de identidade configurado através da CLI gdcloud.

  2. Conceda ao utilizador a função de administrador do cluster (cluster-admin) para o projeto. Este comando associa o utilizador à função, permitindo-lhe gerir o acesso no cluster padrão.

    Consulte as descrições das funções predefinidas e as definições das funções para projetos para mais informações acerca das funções.

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

    Substitua as seguintes variáveis:

    • PROJECT: o nome do projeto onde o cluster padrão existe.
    • ROLE: o nome da função que quer conceder (como cluster-admin ou cluster-developer).
    • USER_ACCOUNT: a conta de utilizador à qual quer conceder a função, incluindo o prefixo do fornecedor de identidade associado à sua organização (como idpprefix-user@example.com). O prefixo específico usado depende da configuração do IdP da sua organização. Consulte o artigo Estabeleça ligação a um fornecedor de identidade para mais informações.

    O exemplo seguinte concede a função de administrador do cluster a user@example.com, partindo do princípio de que o prefixo do fornecedor de identidade é fop- para o projeto foo:

    gdcloud projects add-iam-policy-binding foo \
      --role=cluster-admin \
      --member=user:fop-user@example.com
    

Faça a gestão do acesso no cluster padrão

Um utilizador ao qual foi concedida a função cluster-admin na secção anterior executa os seguintes passos:

  1. Inicie sessão com o seu fornecedor de identidade configurado através da CLI gdcloud.

  2. Gere um ficheiro kubeconfig para um cluster padrão com a flag --standard. Esta flag é necessária para segmentar um cluster padrão.

    export KUBECONFIG=KUBECONFIG_FILE
    gdcloud get-credentials STANDARD_CLUSTER_NAME --standard --project=PROJECT
    

    Substitua as seguintes variáveis:

    • KUBECONFIG_FILE: o caminho para o ficheiro kubeconfig, como standard-cluster-kubeconfig.yaml.
    • STANDARD_CLUSTER_NAME: o nome do cluster padrão.
    • PROJECT: o nome do projeto onde o cluster padrão existe.
  3. Defina autorizações no cluster padrão através de kubectl.

    Os utilizadores com autorizações cluster-admin podem criar objetos Role e ClusterRole personalizados. Para conceder estas autorizações, podem criar os objetos Rolebinding e ClusterRoleBinding correspondentes para associar as funções a assuntos específicos, como utilizadores ou contas de serviço.

    O exemplo seguinte usa kubectl para criar uma amostra personalizada de Role denominada test-role no espaço de nomes test:

    kubectl apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: test-role
      namespace: test
    rules:
    - apiGroups:
      - ""
      resources:
      - configmaps
      verbs:
      - get
    EOF
    

    O exemplo seguinte cria o RoleBinding para o Role com o nome test-role no espaço de nomes test. Concede autorizações ao utilizador alice@example.com com o prefixo do fornecedor de identidade fop-, bem como a um ServiceAccount denominado my-service-account no espaço de nomes default:

    kubectl apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: test-role-binding
      namespace: test
    subjects:
    - kind: User
      name: fop-alice@example.com
      apiGroup: rbac.authorization.k8s.io
    - kind: ServiceAccount
      name: my-service-account
      namespace: default
    roleRef:
      kind: Role
      name: test-role
      apiGroup: rbac.authorization.k8s.io
    EOF