Criar um papel personalizado

Nesta página, descrevemos como criar e gerenciar papéis personalizados no Google Distributed Cloud (GDC) com isolamento físico. 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 que você configure 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 confidenciais, mitigando riscos de segurança e evitando conflitos de interesse.

Ao criar uma função personalizada, você pode:

  • Defina o escopo do acesso: aplique as permissões em toda a organização, em todos os projetos ou restrinja-as a projetos específicos.
  • Personalizar 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.

Os papéis personalizados são limitados pelo escopo em que são criados. O acesso ao papel personalizado só pode ser concedido na mesma organização ou projeto em que ele foi criado.

Esta página é destinada a públicos-alvo do grupo de administradores de 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 do GDC com isolamento físico.

Acesse Descrições de papéis predefinidos e Definições de papéis para mais informações sobre papéis.

Antes de começar

Antes de criar ou gerenciar papéis personalizados, é necessário solicitar as permissões necessárias e preparar o ambiente.

Solicitar papéis do IAM da organização

Para criar, atualizar e excluir papéis personalizados em uma organização ou em um projeto, entre em contato com o admin. da organização do IAM para solicitar o papel de administrador da organização de papéis personalizados (custom-role-org-admin).

Saiba mais sobre como atribuir permissões de função para organizações.

Solicitar papéis do IAM para o projeto

Para criar, atualizar e excluir papéis personalizados em um projeto específico, entre em contato com o administrador do projeto do IAM para solicitar o papel de administrador do projeto de papel personalizado (custom-role-project-admin).

Saiba mais sobre como atribuir permissões de papel para projetos.

Preparar o ambiente

Para usar as ferramentas de linha de comando para criar ou gerenciar papéis personalizados, conclua a seguinte configuração:

Ver papéis e as permissões deles

Uma função personalizada é composta por um grupo de permissões que você pode atribuir aos usuários. Para criar um papel personalizado, selecione permissões de papéis predefinidos e combine-as de acordo com suas necessidades. As permissões que podem ser incluídas em um papel personalizado dependem do escopo em que você cria o papel: organização ou projeto.

Nesta seção, explicamos como listar os papéis disponíveis (predefinidos e personalizados) e ver as permissões deles. Você pode usar essas informações para fazer o seguinte:

  • Identificar permissões para novos papéis personalizados: descubra as strings de permissão específicas necessárias para a flag --permissions ao usar a CLI gdcloud para criar um papel personalizado.
  • Analisar os papéis atuais: examine as permissões associadas a qualquer papel predefinido ou personalizado 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

  1. Faça login no console do GDC.
  2. No seletor de projetos, selecione a organização ou o projeto em que você quer ver os papéis.
  3. No menu de navegação, clique em Identidade e acesso > Papéis.

    Uma lista de papéis predefinidos e personalizados disponíveis será exibida.

  4. Clique no nome de um papel para ver os detalhes, 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 estão disponíveis para inclusão em um novo papel personalizado.

gdcloud

  1. Verifique se você tem a CLI gdcloud instalada. Para mais informações, consulte a página Visão geral da CLI gdcloud.
  2. Liste os papéis disponíveis:

    gdcloud iam roles list \
      --type=ROLE_TYPE \
      --project=PROJECT
    

    Substitua:

    • ROLE_TYPE: o tipo de papéis a serem listados. Os valores válidos são predefined, custom ou all.
    • PROJECT: o namespace do projeto em que você quer visualizar os papéis. Omita a sinalização --project para papéis com escopo de organização.
  3. Veja as permissões específicas em um papel:

    gdcloud iam roles describe ROLE_NAME \
      --project=PROJECT
    

    Substitua:

    • ROLE_NAME: o nome do recurso do Kubernetes do papel
    • PROJECT: o namespace do projeto em que você quer ver as permissões de papel. Omita a sinalização --project para papéis com escopo de organização.

Consulte gdcloud iam roles list e gdcloud iam roles describe para mais detalhes de comandos e exemplos de uso.

Criar um papel personalizado

Criar um papel personalizado agrupando permissões de papéis predefinidos. Os papéis personalizados herdam os recursos de várias zonas do IAM dos papéis predefinidos em que são baseados. Depois de criar uma função personalizada, você pode conceder acesso aos usuários.

Crie um papel personalizado usando o console do GDC, a CLI gdcloud ou a API:

Console

  1. Faça login no console do GDC.
  2. No seletor de projetos, selecione a organização ou o projeto em que você quer criar um papel personalizado.
  3. No menu de navegação, clique em Identidade e acesso > Papéis.
  4. Clique em Criar papel personalizado.
  5. No campo Título, insira o título do papel personalizado.
  6. No campo Descrição, forneça uma descrição da finalidade do papel personalizado.
  7. No campo ID, insira o identificador exclusivo do papel personalizado.

    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.

  8. Selecione uma Etapa de lançamento.

  9. Selecione o escopo da função personalizada.

    Se você selecionar Organização, o papel personalizado será aplicado a todos os recursos da organização. Se você selecionar Projetos, o papel personalizado será aplicado a todos os projetos atuais e futuros na organização. Selecione Limitar aos projetos selecionados se quiser especificar quais projetos podem acessar o papel personalizado.

  10. Clique em Adicionar permissões.

  11. Marque a caixa de seleção ao lado de uma ou mais permissões compatíveis que você quer atribuir ao papel personalizado.

    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.

  12. Clique em Salvar.

  13. Clique em Criar.

    O novo papel personalizado aparece na página Papéis.

gdcloud

  1. Verifique se você tem a CLI gdcloud instalada. Para mais informações, consulte a página Visão geral da CLI gdcloud.
  2. Crie um papel personalizado:

    gdcloud iam roles create ROLE_ID \
      --title=TITLE \
      --description=DESCRIPTION \
      --permissions=PERMISSIONS
      --stage=LAUNCH_STAGE
    

    Substitua:

    • ROLE_ID: o identificador exclusivo do papel personalizado. Os IDs de papéis personalizados podem ter até 10 caracteres alfanuméricos minúsculos e podem conter hifens. Os IDs de papéis personalizados não podem ser alterados após a criação do papel.
    • TITLE: um título fácil de usar para o papel personalizado
    • DESCRIPTION: uma descrição da finalidade do papel personalizado.
    • 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 as permissões deles. 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 um papel na página Definições de papel ou usando o comando gdcloud iam roles list.

    • LAUNCH_STAGE: opcional. A fase de lançamento do papel personalizado. Os valores válidos são ALPHA, BETA, GA ou DISABLED. O padrão será ALPHA se essa flag for omitida.

    Consulte gdcloud iam roles create para ver uma lista completa de flags obrigatórias e opcionais, além de exemplos de uso.

    Como alternativa, é possível definir o papel personalizado em um arquivo YAML e usar a flag --file:

    gdcloud iam roles create ROLE_ID --file=YAML_FILE_PATH
    

    Substitua YAML_FILE_PATH pelo 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, --description e --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 do papel
  • NAMESPACE: o namespace do papel personalizado. Use platform para papéis no escopo da organização e para vários projetos. Use o namespace do projeto (como my-project) para papéis com escopo de projeto e projetos únicos.
  • DESCRIPTION: uma descrição da finalidade do papel personalizado.
  • ROLE_ID: o identificador exclusivo do papel personalizado. Os IDs de papéis personalizados podem ter até 10 caracteres alfanuméricos minúsculos e podem conter hifens. Os IDs de papéis personalizados não podem ser alterados após a criação do papel.
  • SCOPE: use organization para papéis criados no namespace platform. Use project para papéis criados em um namespace de projeto.
  • LAUNCH_STAGE: opcional. A fase de lançamento do papel personalizado. Os valores válidos são ALPHA, BETA, GA ou DISABLED. O padrão será ALPHA se esse campo for omitido.
  • TITLE: um título fácil de usar para o papel personalizado
  • RULES_TYPE: o escopo das regras. Substitua por globalRules (para permissões na API global), zonalRules (para permissões na API zonal) ou ambos.
  • RULES_LIST: uma lista recuada de objetos de regra RBAC padrão do Kubernetes. Cada objeto na lista concede permissões. É possível determinar os apiGroups, resources e verbs corretos examinando as permissões em papéis predefinidos usando gdcloud iam roles describe, conforme mostrado em Ver papéis e as permissões deles.

    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 um papel personalizado

Você é responsável por gerenciar o ciclo de vida dos seus papéis personalizados. Quando o Distributed Cloud adiciona novas permissões, recursos ou serviços, ele atualiza os papéis predefinidos. Atualizações como excluir um papel predefinido ou remover permissões de um papel predefinido podem tornar os papéis personalizados que dependem dessas permissões não funcionais. É preciso monitorar essas atualizações e ajustar manualmente os papéis personalizados afetados para garantir que eles continuem funcionando conforme o esperado.

É possível editar, desativar ou excluir um papel personalizado, mas não é possível editar, desativar ou excluir um papel predefinido. Para ver uma lista de todos os papéis e as permissões específicas deles, consulte Ver papéis e as permissões deles.

Editar uma função personalizada

Edite um papel personalizado usando o console do GDC, a CLI gdcloud ou a API:

Console

  1. Faça login no console do GDC.
  2. No seletor de projetos, selecione a organização ou o projeto em que você quer editar um papel personalizado.
  3. No menu de navegação, clique em Identidade e acesso > Papéis.
  4. Na lista de papéis, selecione o papel personalizado que você quer editar.
  5. Na página de detalhes da função personalizada, clique em Editar.
  6. Edite os detalhes do papel personalizado, como título, descrição, ID ou estágio de lançamento.
  7. Se quiser, adicione ou remova as permissões atribuídas.
    1. Clique em Adicionar permissões para selecionar na lista de permissões disponíveis.
    2. Para remover uma permissão atribuída, marque a caixa de seleção ao lado dela e clique em Remover.
  8. Clique em Salvar.

    Uma mensagem vai confirmar que as mudanças foram salvas.

gdcloud

  1. Verifique se você tem a CLI gdcloud instalada. Para mais informações, consulte a página Visão geral da CLI gdcloud.
  2. Editar um papel personalizado:

    gdcloud iam roles update ROLE_ID \
      --title=TITLE \
      --description=DESCRIPTION \
      --permissions=PERMISSIONS
      --stage=LAUNCH_STAGE
    

    Substitua:

    • ROLE_ID: o identificador exclusivo do seu papel personalizado
    • TITLE: um título fácil de usar para o papel personalizado
    • DESCRIPTION: uma descrição da finalidade do papel personalizado.
    • 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 as permissões deles. 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 um papel na página Definições de papel ou usando o comando gdcloud iam roles list.

    • LAUNCH_STAGE: opcional. A fase de lançamento do papel personalizado. Os valores válidos são ALPHA, BETA, GA ou DISABLED. O padrão será ALPHA se essa flag for omitida.

    Consulte gdcloud iam roles update para ver uma lista completa de flags obrigatórias e opcionais, além de exemplos de uso.

    Como alternativa, é possível atualizar o papel personalizado no arquivo YAML e usar a flag --file:

    gdcloud iam roles update ROLE_ID --file=YAML_FILE_PATH
    

    Substitua YAML_FILE_PATH pelo 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, --description e --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 do papel
  • NAMESPACE: o namespace do papel personalizado. Use platform para papéis no escopo da organização e para vários projetos. Use o namespace do projeto (como my-project) para papéis com escopo de projeto e projetos únicos.
  • DESCRIPTION: uma descrição da finalidade do papel personalizado.
  • ROLE_ID: o identificador exclusivo do papel personalizado. Os IDs de papéis personalizados podem ter até 10 caracteres alfanuméricos minúsculos e podem conter hifens. Os IDs de papéis personalizados não podem ser alterados após a criação do papel.
  • SCOPE: use organization para papéis criados no namespace platform. Use project para papéis criados em um namespace de projeto.
  • LAUNCH_STAGE: opcional. A fase de lançamento do papel personalizado. Os valores válidos são ALPHA, BETA, GA ou DISABLED. O padrão será ALPHA se esse campo for omitido.
  • TITLE: um título fácil de usar para o papel personalizado
  • RULES_TYPE: o escopo das regras. Substitua por globalRules (para permissões na API global), zonalRules (para permissões na API zonal) ou ambos.
  • RULES_LIST: uma lista recuada de objetos de regra RBAC padrão do Kubernetes. Cada objeto na lista concede permissões. É possível determinar os apiGroups, resources e verbs corretos examinando as permissões em papéis predefinidos usando gdcloud iam roles describe, conforme mostrado em Ver papéis e as permissões deles.

    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

Os papéis personalizados desativados permanecem na lista de papéis e ainda podem ser atribuídos aos usuários, mas não têm efeito. É possível reativar o papel personalizado a qualquer momento.

Desative um papel personalizado usando o console do GDC, a CLI gdcloud ou a API:

Console

  1. Faça login no console do GDC.
  2. No seletor de projetos, selecione a organização ou o projeto em que você quer desativar um papel personalizado.
  3. No menu de navegação, clique em Identidade e acesso > Papéis.
  4. Na lista de papéis, selecione o papel personalizado que você quer desativar.
  5. Na página de detalhes do papel personalizado, clique em Desativar.

gdcloud

  1. Verifique se você tem a CLI gdcloud instalada. Para mais informações, consulte a página Visão geral da CLI gdcloud.
  2. Desativar um papel personalizado:

    gdcloud iam roles update ROLE_ID --stage=DISABLED
    

    Substitua:

    • ROLE_ID: o identificador exclusivo do seu papel personalizado

    Consulte gdcloud iam roles update para mais informações.

API

Desative um recurso personalizado CustomRole alterando o campo stage para DISABLED. Verifique se todos os outros campos correspondem aos valores atuais do papel personalizado 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 do papel
  • NAMESPACE: o namespace do papel personalizado. Use platform para papéis no escopo da organização e para vários projetos. Use o namespace do projeto (como my-project) para papéis com escopo de projeto e projetos únicos.
  • DESCRIPTION: uma descrição da finalidade do papel personalizado.
  • ROLE_ID: o identificador exclusivo do papel personalizado. Os IDs de papéis personalizados podem ter até 10 caracteres alfanuméricos minúsculos e podem conter hifens. Os IDs de papéis personalizados não podem ser alterados após a criação do papel.
  • SCOPE: use organization para papéis criados no namespace platform. Use project para papéis criados em um namespace de projeto.
  • TITLE: um título fácil de usar para o papel personalizado
  • RULES_TYPE: o escopo das regras. Substitua por globalRules (para permissões na API global), zonalRules (para permissões na API zonal) ou ambos.
  • RULES_LIST: uma lista recuada de objetos de regra RBAC padrão do Kubernetes. Cada objeto na lista concede permissões. É possível determinar os apiGroups, resources e verbs corretos examinando as permissões em papéis predefinidos usando gdcloud iam roles describe, conforme mostrado em Ver papéis e as permissões deles.

    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. No entanto, é possível criar um novo papel com o mesmo nome.

Exclua um papel personalizado usando a CLI gdcloud ou a API:

gdcloud

  1. Verifique se você tem a CLI gdcloud instalada. Para mais informações, consulte a página Visão geral da CLI gdcloud.
  2. Excluir um papel personalizado:

    gdcloud iam roles delete ROLE_ID --project=PROJECT
    

    Substitua:

    • ROLE_ID: o identificador exclusivo do seu papel personalizado
    • PROJECT: o namespace do projeto em que você quer excluir o papel personalizado. Se a flag --project não for especificada, o papel com escopo da organização será excluído.

    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 que você usou para criar ou atualizar o papel.