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:
Inicie sessão com o seu fornecedor de identidade configurado através da CLI gdcloud.
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_ACCOUNTSubstitua as seguintes variáveis:
PROJECT: o nome do projeto onde o cluster padrão existe.ROLE: o nome da função que quer conceder (comocluster-adminoucluster-developer).USER_ACCOUNT: a conta de utilizador à qual quer conceder a função, incluindo o prefixo do fornecedor de identidade associado à sua organização (comoidpprefix-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 projetofoo: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:
Inicie sessão com o seu fornecedor de identidade configurado através da CLI gdcloud.
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=PROJECTSubstitua as seguintes variáveis:
KUBECONFIG_FILE: o caminho para o ficheiro kubeconfig, comostandard-cluster-kubeconfig.yaml.STANDARD_CLUSTER_NAME: o nome do cluster padrão.PROJECT: o nome do projeto onde o cluster padrão existe.
Defina autorizações no cluster padrão através de
kubectl.Os utilizadores com autorizações
cluster-adminpodem criar objetosRoleeClusterRolepersonalizados. Para conceder estas autorizações, podem criar os objetosRolebindingeClusterRoleBindingcorrespondentes para associar as funções a assuntos específicos, como utilizadores ou contas de serviço.O exemplo seguinte usa
kubectlpara criar uma amostra personalizada deRoledenominadatest-roleno espaço de nomestest:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: test-role namespace: test rules: - apiGroups: - "" resources: - configmaps verbs: - get EOFO exemplo seguinte cria o
RoleBindingpara oRolecom o nometest-roleno espaço de nomestest. Concede autorizações ao utilizador alice@example.com com o prefixo do fornecedor de identidadefop-, bem como a umServiceAccountdenominadomy-service-accountno espaço de nomesdefault: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