Crie uma função personalizada

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 --permissions quando 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

  1. Inicie sessão na consola do GDC.
  2. No seletor de projetos, selecione a organização ou o projeto no qual quer ver as funções.
  3. No menu de navegação, clique em Identidade e acesso > Funções.

    É apresentada uma lista de funções predefinidas e personalizadas disponíveis.

  4. 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

  1. Certifique-se de que tem a CLI gcloud instalada. Para mais informações, consulte a página Vista geral da CLI gdcloud.
  2. Liste as funções disponíveis:

    gdcloud iam roles list ROLE_TYPE \
      --project=PROJECT
    

    Substitua o seguinte:

    • ROLE_TYPE: o tipo de funções a listar. Os valores válidos são predefined, custom ou all.
    • PROJECT: o espaço de nomes do projeto onde quer ver as funções. Omita a flag --project para funções com âmbito na organização.
  3. Veja as autorizações específicas numa função:

    gdcloud iam roles describe ROLE_NAME \
      --project=PROJECT
    

    Substitua 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 --project para 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

  1. Inicie sessão na consola do GDC.
  2. No seletor de projetos, selecione a organização ou o projeto no qual quer criar uma função personalizada.
  3. No menu de navegação, clique em Identidade e acesso > Funções.
  4. Clique em Criar função personalizada.
  5. No campo Título, introduza o título da função personalizada.
  6. No campo Descrição, indique uma descrição da finalidade da função personalizada.
  7. 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.

  8. Selecione uma fase de lançamento.

  9. 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.

  10. Clique em Adicionar autorizações.

  11. 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.

  12. Clique em Guardar.

  13. Clique em Criar.

    A nova função personalizada é apresentada na página Funções.

gdcloud

  1. Certifique-se de que tem a CLI gcloud instalada. Para mais informações, consulte a página Vista geral da CLI gdcloud.
  2. Crie uma função personalizada:

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

    Substitua 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ão ALPHA, BETA, GA ou DISABLED. A predefinição é ALPHA se 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_PATH
    

    Substitua YAML_FILE_PATH pelo 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, --description e --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. Use platform para funções com âmbito da organização e para vários projetos. Use o espaço de nomes do projeto (como my-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: use organization para funções criadas no espaço de nomes platform. Use project para 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ão ALPHA, BETA, GA ou DISABLED. A predefinição é ALPHA se este campo for omitido.
  • TITLE: um título intuitivo para a função personalizada.
  • RULES_TYPE: este campo define o âmbito das regras. Substitua por globalRules (para autorizações na API global) ou zonalRules (para autorizações na API zonal). Não pode usar ambos no mesmo recurso CustomRole.
  • RULES_LIST: Uma lista com recuo de objetos de regras RBAC do Kubernetes padrão. Cada objeto na lista concede autorizações. Pode determinar o apiGroups, o resources e o verbs corretos examinando as autorizações nas funções predefinidas através do gdcloud 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

  1. Inicie sessão na consola do GDC.
  2. No seletor de projetos, selecione a organização ou o projeto no qual quer editar uma função personalizada.
  3. No menu de navegação, clique em Identidade e acesso > Funções.
  4. Na lista de funções, selecione a função personalizada que quer editar.
  5. Na página de detalhes da função personalizada, clique em Editar.
  6. Edite os detalhes da função personalizada, como o título, a descrição, o ID ou a fase de lançamento.
  7. Opcionalmente, adicione ou remova autorizações atribuídas.
    1. Clique em Adicionar autorizações para selecionar na lista de autorizações disponíveis.
    2. Para remover uma autorização atribuída, selecione a caixa de verificação junto à autorização que quer remover e clique em Remover.
  8. Clique em Guardar.

    É apresentada uma mensagem a confirmar as alterações guardadas.

gdcloud

  1. Certifique-se de que tem a CLI gcloud instalada. Para mais informações, consulte a página Vista geral da CLI gdcloud.
  2. Para editar uma função personalizada:

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

    Substitua 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ão ALPHA, BETA, GA ou DISABLED. A predefinição é ALPHA se 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_PATH
    

    Substitua YAML_FILE_PATH pelo 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, --description e --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. Use platform para funções com âmbito da organização e para vários projetos. Use o espaço de nomes do projeto (como my-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: use organization para funções criadas no espaço de nomes platform. Use project para 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ão ALPHA, BETA, GA ou DISABLED. A predefinição é ALPHA se este campo for omitido.
  • TITLE: um título intuitivo para a função personalizada.
  • RULES_TYPE: este campo define o âmbito das regras. Substitua por globalRules (para autorizações na API global) ou zonalRules (para autorizações na API zonal). Não pode usar ambos no mesmo recurso CustomRole.
  • RULES_LIST: Uma lista com recuo de objetos de regras RBAC do Kubernetes padrão. Cada objeto na lista concede autorizações. Pode determinar o apiGroups, o resources e o verbs corretos examinando as autorizações nas funções predefinidas através do gdcloud 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

  1. Inicie sessão na consola do GDC.
  2. No seletor de projetos, selecione a organização ou o projeto no qual quer desativar uma função personalizada.
  3. No menu de navegação, clique em Identidade e acesso > Funções.
  4. Na lista de funções, selecione a função personalizada que quer desativar.
  5. Na página de detalhes da função personalizada, clique em Desativar.

gdcloud

  1. Certifique-se de que tem a CLI gcloud instalada. Para mais informações, consulte a página Vista geral da CLI gdcloud.
  2. Para desativar uma função personalizada:

    gdcloud iam roles update ROLE_ID --stage=DISABLED
    

    Substitua 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. Use platform para funções com âmbito da organização e para vários projetos. Use o espaço de nomes do projeto (como my-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: use organization para funções criadas no espaço de nomes platform. Use project para 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 por globalRules (para autorizações na API global) ou zonalRules (para autorizações na API zonal). Não pode usar ambos no mesmo recurso CustomRole.
  • RULES_LIST: Uma lista com recuo de objetos de regras RBAC do Kubernetes padrão. Cada objeto na lista concede autorizações. Pode determinar o apiGroups, o resources e o verbs corretos examinando as autorizações nas funções predefinidas através do gdcloud 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

  1. Certifique-se de que tem a CLI gcloud instalada. Para mais informações, consulte a página Vista geral da CLI gdcloud.
  2. Elimine uma função personalizada:

    gdcloud iam roles delete ROLE_ID --project=PROJECT
    

    Substitua 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 --project nã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.