Esta página descreve como criar e gerir funções personalizadas no Google Distributed Cloud (GDC) air-gapped. As funções personalizadas permitem-lhe gerir o acesso além dos conjuntos de autorizações padrão disponíveis em funções predefinidas, o que lhe permite configurar autorizações de acordo com os seus critérios específicos.
As funções personalizadas seguem o princípio do menor privilégio e são úteis para conceder o menor acesso necessário para tarefas confidenciais, mitigando os riscos de segurança e evitando conflitos de interesses.
A criação de uma função personalizada permite-lhe:
- Defina o âmbito do acesso: opte por aplicar autorizações em toda a sua organização, em todos os projetos ou restringi-las a projetos específicos.
- Personalize o acesso detalhado: selecione uma ou mais autorizações já disponíveis através de funções predefinidas para personalizar o acesso a tarefas ou responsabilidades específicas.
As funções personalizadas estão associadas ao âmbito em que são criadas. O acesso à função personalizada só pode ser concedido na mesma organização ou projeto onde a função personalizada foi criada.
Esta página destina-se a públicos-alvo no grupo de administradores da plataforma, como administradores de TI ou engenheiros de segurança, que querem gerir o acesso aos recursos organizacionais de forma segura. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.
Visite as descrições das funções predefinidas e as definições das funções para mais informações sobre as funções.
Antes de começar
Antes de criar ou gerir funções personalizadas, tem de pedir as autorizações necessárias e preparar o seu ambiente.
Peça funções de organização do IAM
Para criar, atualizar e eliminar funções personalizadas numa organização ou num projeto, contacte o administrador da IAM da sua organização para pedir a função Custom Role Org Admin (custom-role-org-admin).
Saiba mais sobre a atribuição de autorizações de funções a organizações.
Peça funções do projeto de IAM
Para criar, atualizar e eliminar funções personalizadas num projeto específico, contacte o
administrador de IAM do projeto para pedir a função Administrador do projeto de funções personalizadas
(custom-role-project-admin).
Saiba mais sobre a atribuição de autorizações de funções para projetos.
Prepare o seu ambiente
Para usar as ferramentas de linha de comandos para criar ou gerir funções personalizadas, conclua a configuração seguinte:
Transfira e instale a CLI gcloud, se ainda não o tiver feito.
Para usar a API com o
kubectl, é necessária uma configuração adicional:- Instale a CLI kubectl.
- Gere o ficheiro kubeconfig para o servidor da API global
para configurar o acesso
kubectl.
Veja as funções e as respetivas autorizações
Uma função personalizada é composta por um grupo de autorizações que pode atribuir aos utilizadores. Para criar uma função personalizada, selecione autorizações de funções predefinidas existentes e combine-as de acordo com as suas necessidades. As autorizações que pode incluir numa função personalizada dependem do âmbito no qual cria a função: organização ou projeto.
Esta secção explica como listar as funções disponíveis (predefinidas e personalizadas) e ver as autorizações nas mesmas. Pode usar estas informações para fazer o seguinte:
- Identifique autorizações para novas funções personalizadas: descubra as strings de autorização específicas necessárias para a flag
--permissionsquando usar a CLI gdcloud para criar uma função personalizada. - Rever funções existentes: examine as autorizações associadas a qualquer função predefinida ou personalizada no âmbito selecionado (organização ou projeto).
Liste as funções e examine as respetivas autorizações através da consola GDC ou da CLI gdcloud:
Consola
- Inicie sessão na consola do GDC.
- No seletor de projetos, selecione a organização ou o projeto no qual quer ver as funções.
No menu de navegação, clique em Identidade e acesso > Funções.
É apresentada uma lista de funções predefinidas e personalizadas disponíveis.
Clique no nome de uma função para ver os respetivos detalhes, incluindo as autorizações atribuídas.
As autorizações indicadas para funções predefinidas no âmbito atual (organização ou projeto) são as que estão disponíveis para inclusão numa nova função personalizada.
gdcloud
- Certifique-se de que tem a CLI gcloud instalada. Para mais informações, consulte a página Vista geral da CLI gdcloud.
Liste as funções disponíveis:
gdcloud iam roles list \ --type=ROLE_TYPE \ --project=PROJECTSubstitua o seguinte:
ROLE_TYPE: o tipo de funções a apresentar. Os valores válidos sãopredefined,customouall.PROJECT: o espaço de nomes do projeto onde quer ver as funções. Omita a flag--projectpara funções com âmbito da organização.
Veja as autorizações específicas numa função:
gdcloud iam roles describe ROLE_NAME \ --project=PROJECTSubstitua o seguinte:
ROLE_NAME: o nome do recurso do Kubernetes da funçãoPROJECT: o espaço de nomes do projeto onde quer ver as autorizações de funções. Omita a flag--projectpara funções com âmbito da organização.
Consulte gdcloud iam roles list e gdcloud iam roles describe para ver mais detalhes dos comandos e exemplos de utilização.
Crie uma função personalizada
Crie uma nova função personalizada agrupando autorizações de funções predefinidas. As funções personalizadas herdam as capacidades multizona do IAM das funções predefinidas nas quais se baseiam. Depois de criar uma função personalizada, pode conceder acesso aos utilizadores.
Crie uma função personalizada através da consola do GDC, da CLI gdcloud ou da API:
Consola
- Inicie sessão na consola do GDC.
- No seletor de projetos, selecione a organização ou o projeto no qual quer criar uma função personalizada.
- No menu de navegação, clique em Identidade e acesso > Funções.
- Clique em Criar função personalizada.
- No campo Título, introduza o título da função personalizada.
- No campo Descrição, indique uma descrição da finalidade da função personalizada.
No campo ID, introduza o identificador exclusivo da sua função personalizada.
Os IDs de funções personalizadas podem ter até 10 carateres alfanuméricos em minúsculas e não podem ser alterados após a criação da função.
Selecione uma fase de lançamento.
Selecione o âmbito da função personalizada.
Se selecionar Organização, a função personalizada aplica-se a todos os recursos na organização. Se selecionar Projetos, a função personalizada aplica-se a todos os projetos atuais e futuros na organização. Pode selecionar Limitar aos projetos selecionados se quiser especificar os projetos que podem aceder à função personalizada.
Clique em Adicionar autorizações.
Selecione a caixa de verificação junto a uma ou mais das autorizações suportadas que quer atribuir à sua função personalizada.
As autorizações disponíveis estão limitadas ao âmbito selecionado. Se alterar o âmbito depois de adicionar autorizações, tem de confirmar que todas as autorizações atribuídas anteriormente são repostas.
Clique em Guardar.
Clique em Criar.
A nova função personalizada é apresentada na página Funções.
gdcloud
- Certifique-se de que tem a CLI gcloud instalada. Para mais informações, consulte a página Vista geral da CLI gdcloud.
Crie uma função personalizada:
gdcloud iam roles create ROLE_ID \ --title=TITLE \ --description=DESCRIPTION \ --permissions=PERMISSIONS --stage=LAUNCH_STAGESubstitua o seguinte:
ROLE_ID: o identificador exclusivo da sua função personalizada. Os IDs de funções personalizadas podem ter até 10 carateres alfanuméricos minúsculos e podem conter hífenes. Não é possível alterar os IDs das funções personalizadas após a criação das funções.TITLE: um título intuitivo para a função personalizadaDESCRIPTION: uma descrição da finalidade da função personalizadaPERMISSIONS: uma lista separada por vírgulas das autorizações que quer conceder para a função personalizadaPara ver detalhes sobre como encontrar as strings de autorização corretas, consulte o artigo Veja as funções e as respetivas autorizações. Cada string de autorização tem de ser formatada de acordo com as orientações em gdcloud iam roles create, onde
iamRoleNameé o nome do recurso do Kubernetes da função predefinida que contém a autorização. Pode encontrar o nome do recurso do Kubernetes de uma função na página Definições de funções ou através do comando gdcloud iam roles list.LAUNCH_STAGE: opcional. A fase de lançamento da função personalizada. Os valores válidos sãoALPHA,BETA,GAouDISABLED. A predefinição éALPHAse esta sinalização for omitida.
Consulte gdcloud iam roles create para ver uma lista completa de flags obrigatórias e opcionais, bem como exemplos de utilização.
Em alternativa, pode definir a função personalizada num ficheiro YAML e usar a flag
--file:gdcloud iam roles create ROLE_ID --file=YAML_FILE_PATHSubstitua
YAML_FILE_PATHpelo caminho para o ficheiro YAML que contém as flags obrigatórias e opcionais. Se usar a flag--file, todas as outras flags, como--title,--descriptione--permissions, são ignoradas.
API
Crie e aplique o recurso personalizado CustomRole através de kubectl:
kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
name: ROLE_NAME
namespace: NAMESPACE
spec:
metadata:
description: DESCRIPTION
id: ROLE_ID
scope: SCOPE
stage: LAUNCH_STAGE
title: TITLE
RULES_TYPE:
- RULES_LIST
EOF
Substitua o seguinte:
ROLE_NAME: o nome do recurso do Kubernetes da funçãoNAMESPACE: o espaço de nomes para a função personalizada. Useplatformpara funções com âmbito da organização e para vários projetos. Use o espaço de nomes do projeto (comomy-project) para funções com âmbito do projeto e projetos únicos.DESCRIPTION: uma descrição da finalidade da função personalizadaROLE_ID: o identificador exclusivo da sua função personalizada. Os IDs de funções personalizadas podem ter até 10 carateres alfanuméricos minúsculos e podem conter hífenes. Não é possível alterar os IDs das funções personalizadas após a criação das funções.SCOPE: useorganizationpara funções criadas no espaço de nomesplatform. Useprojectpara funções criadas num espaço de nomes do projeto.LAUNCH_STAGE: opcional. A fase de lançamento da função personalizada. Os valores válidos sãoALPHA,BETA,GAouDISABLED. A predefinição éALPHAse este campo for omitido.TITLE: um título intuitivo para a função personalizadaRULES_TYPE: o âmbito das regras. Substitua porglobalRules(para autorizações na API global),zonalRules(para autorizações na API zonal) ou ambas.RULES_LIST: uma lista com recuo de objetos de regras RBAC do Kubernetes padrão. Cada objeto na lista concede autorizações. Pode determinar oapiGroups, oresourcese overbscorretos examinando as autorizações nas funções predefinidas através dogdcloud iam roles describe, conforme mostrado em Ver funções e respetivas autorizações.O exemplo seguinte mostra a estrutura de um único item num objeto
globalRules:globalRules: - apiGroups: ["storage.global.gdc.goog"] resources: ["buckettypes"] verbs: ["get", "list", "watch"]Pode incluir vários itens na lista, cada um a definir um conjunto diferente de autorizações.
Faça a gestão de uma função personalizada
É responsável por gerir o ciclo de vida das suas funções personalizadas. Quando a nuvem distribuída adiciona novas autorizações, funcionalidades ou serviços, atualiza as funções predefinidas. As atualizações, como a eliminação de uma função predefinida ou a remoção de autorizações de uma função predefinida, podem tornar as funções personalizadas que dependem dessas autorizações não funcionais. Tem de monitorizar estas atualizações e ajustar manualmente as funções personalizadas afetadas para garantir que continuam a funcionar como esperado.
Pode editar, desativar ou eliminar uma função personalizada. No entanto, não pode editar, desativar nem eliminar uma função predefinida. Para ver uma lista de todas as funções e respetivas autorizações específicas, consulte o artigo Ver funções e respetivas autorizações.
Edite uma função personalizada
Edite uma função personalizada através da consola GDC, da CLI gdcloud ou da API:
Consola
- Inicie sessão na consola do GDC.
- No seletor de projetos, selecione a organização ou o projeto no qual quer editar uma função personalizada.
- No menu de navegação, clique em Identidade e acesso > Funções.
- Na lista de funções, selecione a função personalizada que quer editar.
- Na página de detalhes da função personalizada, clique em Editar.
- Edite os detalhes da função personalizada, como o título, a descrição, o ID ou a fase de lançamento.
- Opcionalmente, adicione ou remova autorizações atribuídas.
- Clique em Adicionar autorizações para selecionar na lista de autorizações disponíveis.
- Para remover uma autorização atribuída, selecione a caixa de verificação junto à autorização que quer remover e clique em Remover.
Clique em Guardar.
É apresentada uma mensagem a confirmar que as alterações foram guardadas.
gdcloud
- Certifique-se de que tem a CLI gcloud instalada. Para mais informações, consulte a página Vista geral da CLI gdcloud.
Para editar uma função personalizada:
gdcloud iam roles update ROLE_ID \ --title=TITLE \ --description=DESCRIPTION \ --permissions=PERMISSIONS --stage=LAUNCH_STAGESubstitua o seguinte:
ROLE_ID: o identificador exclusivo da sua função personalizadaTITLE: um título intuitivo para a função personalizadaDESCRIPTION: uma descrição da finalidade da função personalizadaPERMISSIONS: uma lista separada por vírgulas das autorizações que quer conceder para a função personalizadaPara ver detalhes sobre como encontrar as strings de autorização corretas, consulte o artigo Veja as funções e as respetivas autorizações. Cada string de autorização tem de ser formatada de acordo com as orientações em gdcloud iam roles create, onde
iamRoleNameé o nome do recurso do Kubernetes da função predefinida que contém a autorização. Pode encontrar o nome do recurso do Kubernetes de uma função na página Definições de funções ou através do comando gdcloud iam roles list.LAUNCH_STAGE: opcional. A fase de lançamento da função personalizada. Os valores válidos sãoALPHA,BETA,GAouDISABLED. A predefinição éALPHAse esta sinalização for omitida.
Consulte gdcloud iam roles update para ver uma lista completa de flags obrigatórias e opcionais, bem como exemplos de utilização.
Em alternativa, pode atualizar a função personalizada no respetivo ficheiro YAML e usar a flag
--file:gdcloud iam roles update ROLE_ID --file=YAML_FILE_PATHSubstitua
YAML_FILE_PATHpelo caminho para o ficheiro YAML que contém as flags obrigatórias e opcionais atualizadas. Se usar a flag--file, todas as outras flags, como--title,--descriptione--permissions, são ignoradas.
API
Edite um recurso personalizado CustomRole usando kubectl:
kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
name: ROLE_NAME
namespace: NAMESPACE
spec:
metadata:
description: DESCRIPTION
id: ROLE_ID
scope: SCOPE
stage: LAUNCH_STAGE
title: TITLE
RULES_TYPE:
- RULES_LIST
EOF
Substitua o seguinte:
ROLE_NAME: o nome do recurso do Kubernetes da funçãoNAMESPACE: o espaço de nomes para a função personalizada. Useplatformpara funções com âmbito da organização e para vários projetos. Use o espaço de nomes do projeto (comomy-project) para funções com âmbito do projeto e projetos únicos.DESCRIPTION: uma descrição da finalidade da função personalizadaROLE_ID: o identificador exclusivo da sua função personalizada. Os IDs de funções personalizadas podem ter até 10 carateres alfanuméricos minúsculos e podem conter hífenes. Não é possível alterar os IDs das funções personalizadas após a criação das funções.SCOPE: useorganizationpara funções criadas no espaço de nomesplatform. Useprojectpara funções criadas num espaço de nomes do projeto.LAUNCH_STAGE: opcional. A fase de lançamento da função personalizada. Os valores válidos sãoALPHA,BETA,GAouDISABLED. A predefinição éALPHAse este campo for omitido.TITLE: um título intuitivo para a função personalizadaRULES_TYPE: o âmbito das regras. Substitua porglobalRules(para autorizações na API global),zonalRules(para autorizações na API zonal) ou ambas.RULES_LIST: uma lista com recuo de objetos de regras RBAC do Kubernetes padrão. Cada objeto na lista concede autorizações. Pode determinar oapiGroups, oresourcese overbscorretos examinando as autorizações nas funções predefinidas através dogdcloud iam roles describe, conforme mostrado em Ver funções e respetivas autorizações.O exemplo seguinte mostra a estrutura de um único item num objeto
globalRules:globalRules: - apiGroups: ["storage.global.gdc.goog"] resources: ["buckettypes"] verbs: ["get", "list", "watch"]Pode incluir vários itens na lista, cada um a definir um conjunto diferente de autorizações.
Desative uma função personalizada
As funções personalizadas desativadas permanecem na sua lista de funções e ainda podem ser atribuídas a utilizadores. No entanto, a função não tem efeito. Pode voltar a ativar a função personalizada em qualquer altura.
Desative uma função personalizada através da consola do GDC, da CLI gdcloud ou da API:
Consola
- Inicie sessão na consola do GDC.
- No seletor de projetos, selecione a organização ou o projeto no qual quer desativar uma função personalizada.
- No menu de navegação, clique em Identidade e acesso > Funções.
- Na lista de funções, selecione a função personalizada que quer desativar.
- Na página de detalhes da função personalizada, clique em Desativar.
gdcloud
- Certifique-se de que tem a CLI gcloud instalada. Para mais informações, consulte a página Vista geral da CLI gdcloud.
Para desativar uma função personalizada:
gdcloud iam roles update ROLE_ID --stage=DISABLEDSubstitua o seguinte:
ROLE_ID: o identificador exclusivo da sua função personalizada
Consulte gdcloud iam roles update para mais informações.
API
Desative um recurso personalizado CustomRolealterando o campo stage para DISABLED. Certifique-se de que todos os outros campos correspondem aos valores atuais da função personalizada que quer desativar.
kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
name: ROLE_NAME
namespace: NAMESPACE
spec:
metadata:
description: DESCRIPTION
id: ROLE_ID
scope: SCOPE
stage: DISABLED
title: TITLE
RULES_TYPE:
- RULES_LIST
EOF
Substitua o seguinte:
ROLE_NAME: o nome do recurso do Kubernetes da funçãoNAMESPACE: o espaço de nomes para a função personalizada. Useplatformpara funções com âmbito da organização e para vários projetos. Use o espaço de nomes do projeto (comomy-project) para funções com âmbito do projeto e projetos únicos.DESCRIPTION: uma descrição da finalidade da função personalizadaROLE_ID: o identificador exclusivo da sua função personalizada. Os IDs de funções personalizadas podem ter até 10 carateres alfanuméricos minúsculos e podem conter hífenes. Não é possível alterar os IDs das funções personalizadas após a criação das funções.SCOPE: useorganizationpara funções criadas no espaço de nomesplatform. Useprojectpara funções criadas num espaço de nomes do projeto.TITLE: um título intuitivo para a função personalizadaRULES_TYPE: o âmbito das regras. Substitua porglobalRules(para autorizações na API global),zonalRules(para autorizações na API zonal) ou ambas.RULES_LIST: uma lista com recuo de objetos de regras RBAC do Kubernetes padrão. Cada objeto na lista concede autorizações. Pode determinar oapiGroups, oresourcese overbscorretos examinando as autorizações nas funções predefinidas através dogdcloud iam roles describe, conforme mostrado em Ver funções e respetivas autorizações.O exemplo seguinte mostra a estrutura de um único item num objeto
globalRules:globalRules: - apiGroups: ["storage.global.gdc.goog"] resources: ["buckettypes"] verbs: ["get", "list", "watch"]Pode incluir vários itens na lista, cada um a definir um conjunto diferente de autorizações.
Elimine uma função personalizada
As funções eliminadas são removidas permanentemente do sistema. No entanto, pode criar uma nova função com o mesmo nome.
Elimine uma função personalizada através da CLI gdcloud ou da API:
gdcloud
- Certifique-se de que tem a CLI gcloud instalada. Para mais informações, consulte a página Vista geral da CLI gdcloud.
Elimine uma função personalizada:
gdcloud iam roles delete ROLE_ID --project=PROJECTSubstitua o seguinte:
ROLE_ID: o identificador exclusivo da sua função personalizadaPROJECT: o espaço de nomes do projeto onde quer eliminar a função personalizada. Se a flag--projectnão for especificada, a função ao nível da organização é eliminada.
Consulte o artigo gdcloud iam roles delete para ver mais informações e exemplos de utilização.
API
Elimine um CustomRole recurso personalizado através de kubectl:
kubectl delete -f CUSTOM_ROLE
Substitua CUSTOM_ROLE pelo caminho para o seu ficheiro YAML
CustomRole. Este é o mesmo ficheiro que usou para criar ou
atualizar a função.