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.
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
O acesso às funções personalizadas é gerido ao nível da organização e do projeto. O acesso só pode ser concedido na mesma organização ou projeto onde a função personalizada foi criada.
Para ter as autorizações necessárias para criar e gerir funções personalizadas, peça ao seu administrador que lhe conceda uma das seguintes funções:
Administrador da organização de funções personalizadas: cria e gere funções personalizadas numa organização ou num projeto. Esta função inclui a capacidade de atualizar, listar, ver, desativar e eliminar funções personalizadas.
Os utilizadores administradores do IAM da organização podem conceder esta função.
Administrador do projeto de função personalizada: cria e gere funções personalizadas num projeto. Esta função inclui a capacidade de atualizar, listar, ver, desativar e eliminar funções personalizadas.
Os utilizadores administradores do IAM do projeto podem conceder esta função.
Saiba mais sobre a atribuição de autorizações de funções para organizações e projetos.
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 para se adequarem às suas necessidades. As autorizações que pode incluir numa função personalizada dependem do âmbito em que 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. - Reveja as 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 ROLE_TYPE \ --project=PROJECTSubstitua o seguinte:
ROLE_TYPE: o tipo de funções a listar. 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 na 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ção.PROJECT: O espaço de nomes do projeto onde quer ver as autorizações de funções. Omita a flag--projectpara funções com âmbito na 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 em minúsculas 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 personalizada.DESCRIPTION: uma descrição da finalidade da função personalizada.PERMISSIONS: uma lista separada por vírgulas das autorizações que quer conceder para a função personalizada.Para 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, em que
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ção.NAMESPACE: 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 personalizada.ROLE_ID: 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 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 personalizada.RULES_TYPE: este campo define o âmbito das regras. Substitua porglobalRules(para autorizações na API global) ouzonalRules(para autorizações na API zonal). Não pode usar ambos no mesmo recursoCustomRole.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 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 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 as alterações 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 personalizada.TITLE: um título intuitivo para a função personalizada.DESCRIPTION: uma descrição da finalidade da função personalizada.PERMISSIONS: uma lista separada por vírgulas das autorizações que quer conceder para a função personalizada.Para 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, em que
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ção.NAMESPACE: 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 personalizada.ROLE_ID: 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 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 personalizada.RULES_TYPE: este campo define o âmbito das regras. Substitua porglobalRules(para autorizações na API global) ouzonalRules(para autorizações na API zonal). Não pode usar ambos no mesmo recursoCustomRole.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 reativar 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 o artigo 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ção.NAMESPACE: 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 personalizada.ROLE_ID: 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 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 personalizada.RULES_TYPE: este campo define o âmbito das regras. Substitua porglobalRules(para autorizações na API global) ouzonalRules(para autorizações na API zonal). Não pode usar ambos no mesmo recursoCustomRole.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 personalizada.PROJECT: 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.