Controle o acesso e organize instâncias com etiquetas

Esta página descreve como pode usar Google Cloud etiquetas para gerir o acesso às suas instâncias do Spanner.

Uma Google Cloud etiqueta é um par de chave-valor que pode anexar aos seus Google Cloud recursos, como projetos ou instâncias do Spanner. Pode usar etiquetas para agrupar e organizar as suas instâncias, e para definir condicionalmente políticas de acesso de gestão de identidade e de acesso (IAM) com base no facto de uma instância ter uma etiqueta específica. Pode criar e gerir etiquetas de instâncias do Spanner através da Google Cloud CLI ou daGoogle Cloud consola. Depois de criar as etiquetas, pode criar uma associação de etiquetas para anexar a etiqueta aos seus Google Cloud recursos. As associações de etiquetas são herdadas pelos filhos do recurso de acordo com a Google Cloud hierarquia de recursos. Por exemplo, se anexar uma etiqueta ao seu projeto, todas as instâncias nesse projeto herdam a etiqueta. Também pode usar etiquetas para organizar os seus Google Cloud recursos, mas não pode usar etiquetas para definir condições nas políticas de IAM.

Para saber mais sobre as etiquetas, consulte o artigo Vista geral das etiquetas.

Exemplos de utilização comuns para etiquetas de instâncias do Spanner

Seguem-se alguns exemplos de utilização comuns para etiquetas:

  • Etiquetas de IAM: funções de IAM com base no facto de uma instância ter uma etiqueta específica. A presença ou a ausência de um valor de etiqueta é a condição para essa política de IAM e ajuda a controlar o acesso à sua instância do Spanner.

  • Etiquetas de estado: indique e faça a gestão do estado de uma instância através da criação de etiquetas. Por exemplo, state:active, state:todelete e state:archive.

  • Etiquetas de ambiente: especifique ambientes de produção, teste e desenvolvimento para instâncias criando pares de chave-valor, como env:prod, env:dev e env:test.

Como criar e gerir etiquetas de instâncias do Spanner

As etiquetas estão estruturadas como pares de chave-valor. Cria uma chave de etiqueta no recurso da sua organização e, em seguida, anexa valores de etiqueta à chave de etiqueta (por exemplo, uma chave de etiqueta environment com os valores prod e dev). Em seguida, pode criar uma associação de etiquetas que associe o valor da etiqueta a um recurso Google Cloud , como um projeto ou uma instância do Spanner. Tenha em atenção que não pode atribuir uma etiqueta a uma base de dados.

Autorizações necessárias

As autorizações de que precisa dependem da ação que tem de realizar. Para mais informações, consulte as autorizações necessárias na documentação do Resource Manager.

Crie chaves e valores de etiquetas

Antes de poder anexar uma etiqueta à sua instância, tem de criar a etiqueta e atribuir-lhe um valor. Para criar chaves de etiquetas e valores de etiquetas, consulte os artigos Criar uma etiqueta e Adicionar um valor de etiqueta.

Anexe uma etiqueta a uma instância

Depois de criar os pares de chave-valor das etiquetas, pode criar uma associação de etiquetas e anexá-la à sua instância do Spanner.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Spanner.

    Aceda às instâncias do Spanner

  2. Selecione a instância à qual quer anexar uma etiqueta.

  3. Clique em Etiquetas.

  4. Se a sua organização não aparecer no painel Etiquetas, clique em Selecionar âmbito. Selecione a sua organização e clique em Abrir.

  5. No painel Etiquetas, selecione Adicionar etiqueta.

  6. No campo Chave, selecione a chave da etiqueta que quer anexar na lista. Pode filtrar a lista escrevendo palavras-chave.

  7. No campo Valor, selecione o valor da etiqueta que quer anexar na lista. Pode filtrar a lista escrevendo palavras-chave.

  8. Se quiser anexar mais etiquetas, clique em Adicionar etiqueta e selecione a chave e o valor para cada uma.

  9. Clique em Guardar.

  10. Na caixa de diálogo Confirmar, clique em Confirmar para anexar a etiqueta.

    É apresentada uma notificação a confirmar que as etiquetas foram atualizadas.

gcloud

Para criar uma associação de etiquetas e anexá-la à sua instância, execute o seguinte comando:

gcloud resource-manager tags bindings create
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--tag-value=ORG_ID/KEY_NAME/VALUE_NAME
--location=LOCATION
  • PROJECT_ID: o ID do projeto.
  • INSTANCE_ID: o ID da instância.
  • ORG_ID: o ID da organização.
  • KEY_NAME: o nome a apresentar (curto) da chave da etiqueta. Por exemplo, env.
  • VALUE_NAME: o nome a apresentar (curto) do valor da etiqueta. Por exemplo, prod.
  • LOCATION: a localização da sua instância. Por exemplo, us-east1.

Por exemplo, para criar uma associação de etiquetas na sua instância do Spanner my-instance com o par de chave-valor da etiqueta env:prod, execute o seguinte comando:

gcloud resource-manager tags bindings create
--parent=//spanner.googleapis.com/projects/my-project/instances/my-instance
--tag-value=123456789012/env/prod
--location=us-east1

Condições e etiquetas do IAM

Pode usar etiquetas e condições de IAM para conceder condicionalmente associações de funções a utilizadores. Se for aplicada uma política de IAM com associações de funções condicionais, a alteração ou a eliminação da etiqueta anexada a um recurso pode remover o acesso do utilizador a esse recurso.

Para mais informações, consulte o artigo Vista geral das condições do IAM.

Consola

Para usar etiquetas para conceder condicionalmente associações de funções aos utilizadores, consulte o artigo Gerir o acesso a etiquetas.

gcloud

Para aplicar uma condição baseada em etiquetas a uma política de IAM, certifique-se de que tem as autorizações necessárias e, em seguida, execute o seguinte comando:

gcloud organizations add-iam-policy-binding ORG_ID
--role=roles/ROLE --member=PRINCIPAL
--condition=resource.matchTag('PROJECT_ID/KEY_NAME', 'VALUE_NAME')
  • ORG_ID: o ID da organização.
  • ROLE: o nome da função a atribuir ao principal. O nome da função é o caminho completo de uma função predefinida, como roles/logging.viewer, ou o ID da função de uma função personalizada, como organizations/{ORG_ID}/roles/logging.viewer.
  • PRINCIPAL: O principal ao qual quer adicionar a associação de funções. Este deve ter o formato user|group|serviceAccount:email ou domain:domain. Por exemplo, user:test-user@gmail.com, group:admins@example.com, serviceAccount:test123@example.domain.com ou domain:example.domain.com.
  • PROJECT_ID: o ID do projeto.
  • KEY_NAME: o nome a apresentar (curto) da chave da etiqueta. Por exemplo, env.
  • VALUE_NAME: o nome a apresentar (curto) do valor da etiqueta. Por exemplo, prod.

Este comando adiciona uma associação de política de IAM à política de IAM de uma organização. Uma associação de políticas consiste num membro, numa função e numa condição opcional.

Por exemplo, para conceder condicionalmente a função user1@example.com a todos os recursos do projeto 123456789012 com a etiqueta env:prod, execute o comando:spanner.backupAdmin

gcloud organizations add-iam-policy-binding my-project
--member=user1@example.com --role=roles/spanner.backupAdmin
--condition=resource.matchTag('123456789012/env', 'prod')

Apresente as etiquetas anexadas a uma instância

Pode ver uma lista de associações de etiquetas diretamente anexadas ou herdadas pela instância.

gcloud

Para obter uma lista de associações de etiquetas diretamente anexadas a um recurso, use o comando gcloud resource-manager tags bindings list. Se adicionar a flag --effective, também recebe todas as associações de etiquetas herdadas por este recurso.

Para apresentar uma lista de todas as associações de etiquetas anexadas a uma instância, execute o seguinte comando:

gcloud resource-manager tags bindings list
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--location=LOCATION
--effective
  • PROJECT_ID: o ID do projeto.
  • INSTANCE_ID: o ID da instância.
  • LOCATION: a localização da sua instância. Por exemplo, us-east1.

Elimine uma associação de etiquetas

Quando remover uma definição de chave ou valor de etiqueta, certifique-se de que a etiqueta está desassociada da instância. Tem de eliminar as associações de etiquetas existentes antes de eliminar a etiqueta.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Spanner.

    Aceda às instâncias do Spanner

  2. Selecione a instância para a qual quer eliminar uma associação de etiqueta.

  3. Clique em Etiquetas.

  4. No painel Etiquetas, junto à etiqueta que quer desassociar, clique em Eliminar item.

  5. Clique em Guardar.

  6. Na caixa de diálogo Confirmar, clique em Confirmar para desassociar a etiqueta.

    É apresentada uma notificação a confirmar que as etiquetas foram atualizadas.

gcloud

Para eliminar uma associação de etiqueta, execute o seguinte comando:

gcloud resource-manager tags bindings delete
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--tag-value=ORG_ID/KEY_NAME/KEY_VALUE
--location=LOCATION
  • PROJECT_ID: o ID do projeto.
  • INSTANCE_ID: o ID da instância.
  • ORG_ID: o ID da organização.
  • KEY_NAME: o nome a apresentar (curto) da chave da etiqueta. Por exemplo, env.
  • VALUE_NAME: o nome a apresentar (curto) do valor da etiqueta. Por exemplo, prod.
  • LOCATION: a localização da sua instância. Por exemplo, us-east1.

Elimine uma etiqueta

Depois de eliminar a associação de etiquetas, pode eliminar a etiqueta. Para eliminar chaves de etiquetas e valores de etiquetas, consulte o artigo Eliminar etiquetas.

O que se segue?