Nesta página, descrevemos como criar e gerenciar papéis personalizados no Google Distributed Cloud (GDC) isolado por air-gap. Com os papéis personalizados, é possível gerenciar o acesso além dos conjuntos de permissões padrão disponíveis em papéis predefinidos, permitindo configurar permissões para atender aos seus critérios específicos.
Os papéis personalizados seguem o princípio de privilégio mínimo e são úteis para conceder o menor acesso necessário para tarefas sensíveis, mitigando riscos de segurança e evitando conflitos de interesse.
Ao criar um papel personalizado, você pode:
- Defina o escopo do acesso: escolha aplicar permissões em toda a organização, em todos os projetos ou restringir a projetos específicos.
- Personalize o acesso granular: selecione uma ou mais permissões já disponíveis em papéis predefinidos para personalizar o acesso a tarefas ou responsabilidades específicas.
Esta página é destinada a públicos-alvo no grupo de administradores da plataforma, como administradores de TI ou engenheiros de segurança, que querem gerenciar com segurança o acesso aos recursos organizacionais. Para mais informações, consulte Públicos-alvo da documentação isolada do GDC.
Acesse Descrições de papéis predefinidos e Definições de papéis para mais informações sobre papéis.
Antes de começar
O acesso a papéis personalizados é gerenciado nos níveis da organização e do projeto. O acesso só pode ser concedido na mesma organização ou projeto em que o papel personalizado foi criado.
Para ter as permissões necessárias para criar e gerenciar papéis personalizados, peça ao administrador para conceder a você um dos seguintes papéis:
Administrador da organização com função personalizada: cria e gerencia funções personalizadas em uma organização ou projeto. Esse papel inclui a capacidade de atualizar, listar, visualizar, desativar e excluir papéis personalizados.
Os usuários administradores do IAM da organização podem conceder esse papel.
Administrador de projetos com função personalizada: cria e gerencia funções personalizadas em um projeto. Esse papel inclui a capacidade de atualizar, listar, visualizar, desativar e excluir papéis personalizados.
Os usuários administradores do IAM do projeto podem conceder esse papel.
Saiba mais sobre como atribuir permissões de função para organizações e projetos.
Conferir papéis e permissões
Um papel personalizado é formado por um grupo de permissões que podem ser atribuídas aos usuários. Para criar uma função personalizada, selecione permissões de funções predefinidas e combine-as para atender às suas necessidades. As permissões que podem ser incluídas em um papel personalizado dependem do escopo em que ele é criado: organização ou projeto.
Esta seção explica como listar as funções disponíveis (predefinidas e personalizadas) e conferir as permissões nelas. Você pode usar essas informações para fazer o seguinte:
- Identificar permissões para novas funções personalizadas: descubra as strings de permissão específicas necessárias para a flag
--permissionsao usar a CLI gdcloud para criar uma função personalizada. - Analise as funções atuais: examine as permissões associadas a qualquer função predefinida ou personalizada no escopo selecionado (organização ou projeto).
Liste os papéis e examine as permissões deles usando o console do GDC ou a CLI gdcloud:
Console
- Faça login no console do GDC.
- No seletor de projetos, selecione a organização ou o projeto em que você quer ver os papéis.
No menu de navegação, clique em Identidade e acesso > Papéis.
Uma lista de funções predefinidas e personalizadas disponíveis aparece.
Clique no nome de uma função para conferir os detalhes dela, incluindo as permissões atribuídas.
As permissões listadas para papéis predefinidos no escopo atual (organização ou projeto) são as que podem ser incluídas em um novo papel personalizado.
gdcloud
- Verifique se a CLI gdcloud está instalada. Para mais informações, consulte a página Visão geral da CLI gdcloud.
Liste as funções disponíveis:
gdcloud iam roles list ROLE_TYPE \ --project=PROJECTSubstitua:
ROLE_TYPE: o tipo de papéis a serem listados. Os valores válidos sãopredefined,customouall.PROJECT: o namespace do projeto em que você quer ver as funções. Omita a flag--projectpara funções no escopo da organização.
Veja as permissões específicas em um papel:
gdcloud iam roles describe ROLE_NAME \ --project=PROJECTSubstitua:
ROLE_NAME: o nome do recurso do Kubernetes da função.PROJECT: o namespace do projeto em que você quer ver as permissões de função. Omita a flag--projectpara funções no escopo da organização.
Consulte gdcloud iam roles list e gdcloud iam roles describe para mais detalhes sobre comandos e exemplos de uso.
Criar um papel personalizado
Crie um papel personalizado agrupando permissões de papéis predefinidos. Os papéis personalizados herdam os recursos multizona do IAM dos papéis predefinidos em que são criados. Depois de criar uma função personalizada, você pode conceder acesso aos usuários.
Crie uma função personalizada usando o console do GDC, a CLI gdcloud ou a API:
Console
- Faça login no console do GDC.
- No seletor de projetos, selecione a organização ou o projeto em que você quer criar um papel personalizado.
- No menu de navegação, clique em Identidade e acesso > Papéis.
- Clique em Criar função personalizada.
- No campo Título, insira o título da sua função personalizada.
- No campo Descrição, forneça uma descrição da finalidade da função personalizada.
No campo ID, insira o identificador exclusivo da função personalizada.
Os IDs de papéis personalizados podem ter até 10 caracteres alfanuméricos minúsculos e não podem ser alterados após a criação do papel.
Selecione um Estágio de lançamento.
Selecione o escopo da função personalizada.
Se você selecionar Organização, a função personalizada será aplicada a todos os recursos da organização. Se você selecionar Projetos, a função personalizada será aplicada a todos os projetos atuais e futuros da organização. Selecione Limitar aos projetos selecionados se quiser especificar quais projetos podem acessar a função personalizada.
Clique em Adicionar permissões.
Marque a caixa de seleção ao lado de uma ou mais permissões compatíveis que você quer atribuir à função personalizada.
As permissões disponíveis são limitadas ao escopo selecionado. Se você mudar o escopo depois de adicionar permissões, confirme se todas as permissões atribuídas anteriormente foram redefinidas.
Clique em Salvar.
Clique em Criar.
O novo papel personalizado aparece na página Papéis.
gdcloud
- Verifique se a CLI gdcloud está instalada. Para mais informações, consulte a página Visão geral da CLI gdcloud.
Crie um papel personalizado:
gdcloud iam roles create ROLE_ID \ --title=TITLE \ --description=DESCRIPTION \ --permissions=PERMISSIONS --stage=LAUNCH_STAGESubstitua:
ROLE_ID: o identificador exclusivo da sua função personalizada. Os IDs de função personalizada podem ter até 10 caracteres alfanuméricos minúsculos e conter hifens. Os IDs de função personalizada não podem ser alterados depois da criação da função.TITLE: um título fácil de usar para a função personalizada.DESCRIPTION: uma descrição da finalidade da função personalizada.PERMISSIONS: uma lista separada por vírgulas de permissões que você quer conceder para o papel personalizado.Para saber como encontrar as strings de permissão corretas, consulte Ver papéis e permissões. Cada string de permissão precisa ser formatada de acordo com as orientações em gdcloud iam roles create, em que
iamRoleNameé o nome do recurso do Kubernetes do papel predefinido que contém a permissão. É possível encontrar o nome do recurso do Kubernetes de uma função na página Definições de função ou usando o comando gdcloud iam roles list.LAUNCH_STAGE: opcional. A etapa de lançamento do papel personalizado. Os valores válidos sãoALPHA,BETA,GAouDISABLED. Se essa flag for omitida, o padrão seráALPHA.
Consulte gdcloud iam roles create para ver uma lista completa de flags obrigatórias e opcionais, além de exemplos de uso.
Outra opção é definir o papel personalizado em um arquivo YAML e usar a flag
--file:gdcloud iam roles create ROLE_ID --file=YAML_FILE_PATHSubstitua
YAML_FILE_PATHpelo caminho para o arquivo YAML que contém as flags obrigatórias e opcionais. Se você usar a flag--file, todas as outras flags, como--title,--descriptione--permissions, serão ignoradas.
API
Crie e aplique o 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:
ROLE_NAME: o nome do recurso do Kubernetes da função.NAMESPACE: o namespace da função personalizada. Useplatformpara papéis no escopo da organização e para vários projetos. Use o namespace do projeto (comomy-project) para papéis no escopo 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ção personalizada podem ter até 10 caracteres alfanuméricos minúsculos e conter hifens. Os IDs de função personalizada não podem ser alterados após a criação da função.SCOPE: useorganizationpara funções criadas no namespaceplatform. Useprojectpara papéis criados em um namespace de projeto.LAUNCH_STAGE: opcional. A etapa de lançamento do papel personalizado. Os valores válidos sãoALPHA,BETA,GAouDISABLED. Se este campo for omitido, o padrão seráALPHA.TITLE: um título fácil de usar para a função personalizada.RULES_TYPE: esse campo define o escopo das regras. Substitua porglobalRules(para permissões na API global) ouzonalRules(para permissões na API zonal). Não é possível usar os dois no mesmo recursoCustomRole.RULES_LIST: uma lista com recuo de objetos de regra padrão do RBAC do Kubernetes. Cada objeto na lista concede permissões. Para determinar osapiGroups,resourceseverbscorretos, examine as permissões nos papéis predefinidos usandogdcloud iam roles describe, conforme mostrado em Ver papéis e permissões.O exemplo a seguir mostra a estrutura de um único item em um objeto
globalRules:globalRules: - apiGroups: ["storage.global.gdc.goog"] resources: ["buckettypes"] verbs: ["get", "list", "watch"]É possível incluir vários itens na lista, cada um definindo um conjunto diferente de permissões.
Gerenciar uma função personalizada
Você é responsável por gerenciar o ciclo de vida das suas funções personalizadas. Quando o Distributed Cloud adiciona novas permissões, recursos ou serviços, ele atualiza os papéis predefinidos. Atualizações como a exclusão de um papel predefinido ou a remoção de permissões de um papel predefinido podem tornar não funcionais os papéis personalizados que dependem dessas permissões. É preciso monitorar essas atualizações e ajustar manualmente os papéis personalizados afetados para garantir que eles continuem funcionando como esperado.
É possível editar, desativar ou excluir uma função personalizada, mas não é possível fazer isso com uma função predefinida. Para ver uma lista de todos os papéis e as permissões específicas deles, consulte Ver papéis e permissões.
Editar uma função personalizada
Edite uma função personalizada usando o console do GDC, a CLI gdcloud ou a API:
Console
- Faça login no console do GDC.
- No seletor de projetos, selecione a organização ou o projeto em que você quer editar um papel personalizado.
- No menu de navegação, clique em Identidade e acesso > Papéis.
- Na lista de papéis, selecione o papel personalizado que você quer editar.
- Na página de detalhes da função personalizada, clique em Editar.
- Edite os detalhes do papel personalizado, como título, descrição, ID ou estágio de lançamento.
- Se quiser, adicione ou remova permissões atribuídas.
- Clique em Adicionar permissões para selecionar na lista de permissões disponíveis.
- Para remover uma permissão atribuída, marque a caixa de seleção ao lado da permissão que você quer remover e clique em Remover.
Clique em Salvar.
Uma mensagem aparece confirmando as mudanças salvas.
gdcloud
- Verifique se a CLI gdcloud está instalada. Para mais informações, consulte a página Visão 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:
ROLE_ID: o identificador exclusivo da sua função personalizada.TITLE: um título fácil de usar para a função personalizada.DESCRIPTION: uma descrição da finalidade da função personalizada.PERMISSIONS: uma lista separada por vírgulas de permissões que você quer conceder para o papel personalizado.Para saber como encontrar as strings de permissão corretas, consulte Ver papéis e permissões. Cada string de permissão precisa ser formatada de acordo com as orientações em gdcloud iam roles create, em que
iamRoleNameé o nome do recurso do Kubernetes do papel predefinido que contém a permissão. É possível encontrar o nome do recurso do Kubernetes de uma função na página Definições de função ou usando o comando gdcloud iam roles list.LAUNCH_STAGE: opcional. A etapa de lançamento do papel personalizado. Os valores válidos sãoALPHA,BETA,GAouDISABLED. Se essa flag for omitida, o padrão seráALPHA.
Consulte gdcloud iam roles update para ver uma lista completa de flags obrigatórias e opcionais, além de exemplos de uso.
Como alternativa, atualize o papel personalizado no arquivo YAML e use a flag
--file:gdcloud iam roles update ROLE_ID --file=YAML_FILE_PATHSubstitua
YAML_FILE_PATHpelo caminho para o arquivo YAML que contém as flags obrigatórias e opcionais atualizadas. Se você usar a flag--file, todas as outras flags, como--title,--descriptione--permissions, serã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:
ROLE_NAME: o nome do recurso do Kubernetes da função.NAMESPACE: o namespace da função personalizada. Useplatformpara papéis no escopo da organização e para vários projetos. Use o namespace do projeto (comomy-project) para papéis no escopo 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ção personalizada podem ter até 10 caracteres alfanuméricos minúsculos e conter hifens. Os IDs de função personalizada não podem ser alterados após a criação da função.SCOPE: useorganizationpara funções criadas no namespaceplatform. Useprojectpara papéis criados em um namespace de projeto.LAUNCH_STAGE: opcional. A etapa de lançamento do papel personalizado. Os valores válidos sãoALPHA,BETA,GAouDISABLED. Se este campo for omitido, o padrão seráALPHA.TITLE: um título fácil de usar para a função personalizada.RULES_TYPE: esse campo define o escopo das regras. Substitua porglobalRules(para permissões na API global) ouzonalRules(para permissões na API zonal). Não é possível usar os dois no mesmo recursoCustomRole.RULES_LIST: uma lista com recuo de objetos de regra padrão do RBAC do Kubernetes. Cada objeto na lista concede permissões. Para determinar osapiGroups,resourceseverbscorretos, examine as permissões nos papéis predefinidos usandogdcloud iam roles describe, conforme mostrado em Ver papéis e permissões.O exemplo a seguir mostra a estrutura de um único item em um objeto
globalRules:globalRules: - apiGroups: ["storage.global.gdc.goog"] resources: ["buckettypes"] verbs: ["get", "list", "watch"]É possível incluir vários itens na lista, cada um definindo um conjunto diferente de permissões.
desativar um papel personalizado
As funções personalizadas desativadas permanecem na sua lista de funções e ainda podem ser atribuídas a usuários, mas não têm efeito. É possível reativar a função personalizada a qualquer momento.
Desative uma função personalizada usando o console do GDC, a CLI gdcloud ou a API:
Console
- Faça login no console do GDC.
- No seletor de projeto, selecione a organização ou o projeto em que você quer desativar um papel personalizado.
- No menu de navegação, clique em Identidade e acesso > Papéis.
- Na lista de papéis, selecione o papel personalizado que você quer desativar.
- Na página de detalhes da função personalizada, clique em Desativar.
gdcloud
- Verifique se a CLI gdcloud está instalada. Para mais informações, consulte a página Visão geral da CLI gdcloud.
Desativar um papel personalizado:
gdcloud iam roles update ROLE_ID --stage=DISABLEDSubstitua:
ROLE_ID: o identificador exclusivo da sua função personalizada.
Consulte gdcloud iam roles update para mais informações.
API
Desative um recurso personalizado CustomRole mudando o campo stage para
DISABLED. Verifique se todos os outros campos correspondem aos valores atuais da função personalizada que você 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:
ROLE_NAME: o nome do recurso do Kubernetes da função.NAMESPACE: o namespace da função personalizada. Useplatformpara papéis no escopo da organização e para vários projetos. Use o namespace do projeto (comomy-project) para papéis no escopo 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ção personalizada podem ter até 10 caracteres alfanuméricos minúsculos e conter hifens. Os IDs de função personalizada não podem ser alterados após a criação da função.SCOPE: useorganizationpara funções criadas no namespaceplatform. Useprojectpara papéis criados em um namespace de projeto.TITLE: um título fácil de usar para a função personalizada.RULES_TYPE: esse campo define o escopo das regras. Substitua porglobalRules(para permissões na API global) ouzonalRules(para permissões na API zonal). Não é possível usar os dois no mesmo recursoCustomRole.RULES_LIST: uma lista com recuo de objetos de regra padrão do RBAC do Kubernetes. Cada objeto na lista concede permissões. Para determinar osapiGroups,resourceseverbscorretos, examine as permissões nos papéis predefinidos usandogdcloud iam roles describe, conforme mostrado em Ver papéis e permissões.O exemplo a seguir mostra a estrutura de um único item em um objeto
globalRules:globalRules: - apiGroups: ["storage.global.gdc.goog"] resources: ["buckettypes"] verbs: ["get", "list", "watch"]É possível incluir vários itens na lista, cada um definindo um conjunto diferente de permissões.
excluir um papel personalizado
Os papéis excluídos são removidos permanentemente do sistema, mas é possível criar um novo com o mesmo nome.
Exclua uma função personalizada usando a CLI gdcloud ou a API:
gdcloud
- Verifique se a CLI gdcloud está instalada. Para mais informações, consulte a página Visão geral da CLI gdcloud.
Excluir uma função personalizada:
gdcloud iam roles delete ROLE_ID --project=PROJECTSubstitua:
ROLE_ID: o identificador exclusivo da sua função personalizada.PROJECT: o namespace do projeto em que você quer excluir a função personalizada. Se a flag--projectnão for especificada, a função no escopo da organização será excluída.
Consulte gdcloud iam roles delete para mais informações e exemplos de uso.
API
Exclua um recurso personalizado CustomRole usando kubectl:
kubectl delete -f CUSTOM_ROLE
Substitua CUSTOM_ROLE pelo caminho do seu arquivo YAML CustomRole. Esse é o mesmo arquivo usado para criar ou
atualizar a função.