Nesta página, descrevemos como usar tags Google Cloud para gerenciar o acesso às instâncias do Spanner.
Uma Google Cloud tag é um par de chave-valor que pode ser anexado aos seus recursos do Google Cloud , como projetos ou instâncias do Spanner. É possível usar tags para agrupar e organizar suas instâncias e definir condicionalmente políticas de acesso do Identity and Access Management (IAM) com base na indicação de uma tag específica em uma instância. É possível criar e gerenciar etiquetas de instância do Spanner usando a Google Cloud CLI ou o Google Cloud console. Depois de criar as tags, você pode criar uma vinculação de tags para anexá-las aos seus recursos do Google Cloud . As vinculações de tags são herdadas por elementos filhos do recurso de acordo com a Google Cloud hierarquia de recursos. Por exemplo, se você anexar uma tag ao projeto, todas as instâncias nesse projeto vão herdar a tag. Você também pode usar rótulos para organizar seus recursos Google Cloud , mas não é possível usar rótulos para definir condições nas políticas do IAM.
Para saber mais sobre tags, consulte Visão geral de tags.
Casos de uso comuns para tags de instância do Spanner
Alguns casos de uso comuns para tags incluem:
- Tags do Identity and Access Management (IAM):conceda papéis do IAM com base na indicação de uma tag específica em uma instância. A presença ou ausência de um valor de tag é a condição para essa política do IAM e ajuda a controlar o acesso à sua instância do Spanner.
- Tags de estado:indicam e gerenciam o estado de uma instância criando tags.
Por exemplo,
state:active
,state:todelete
estate:archive
. - Tags de ambiente:especifique ambientes de produção, teste e desenvolvimento
para instâncias criando pares de chave-valor como
env:prod
,env:dev
eenv:test
.
Como criar e gerenciar tags de instância do Spanner
As tags são estruturadas como pares de chave-valor. Você cria uma chave de tag no recurso da sua organização e anexa valores a ela (por exemplo, uma chave de tag environment
com valores prod
e dev
). Em seguida, é possível criar uma vinculação de tag que associa o valor a um recurso Google Cloud , como um projeto ou uma instância do Spanner. Não é possível atribuir uma tag a um banco de dados.
Permissões necessárias
As permissões necessárias dependem da ação que você precisa realizar. Para mais informações, consulte Permissões necessárias na documentação do Resource Manager.
Criar chaves e valores de tags
Antes de anexar uma tag à instância, crie a tag e atribua um valor a ela. Para criar chaves e valores de tag, consulte Como criar uma tag e Como adicionar um valor de tag.
Anexar uma tag a uma instância
Depois de criar os pares de chave-valor de tag, crie uma vinculação de tag e anexe-a à sua instância do Spanner.
Console
No console Google Cloud , acesse a página Instâncias do Spanner.
Selecione a instância a que você quer anexar uma tag.
Clique em
Tags.Se a organização não aparecer no painel Tags, clique em Selecionar escopo. Selecione sua organização e clique em Abrir.
No painel "Tags", selecione Adicionar tag.
No campo Chave, selecione na lista a chave da tag que você quer anexar. Para filtrar a lista, digite palavras-chave.
No campo Valor, selecione na lista o valor da tag que você quer anexar. Para filtrar a lista, digite palavras-chave.
Se quiser anexar mais tags, clique em
Adicionar tag e selecione a chave e o valor de cada uma.Clique em Salvar.
Na caixa de diálogo Confirmar, clique em Confirmar para anexar a tag.
Uma notificação confirma que suas tags foram atualizadas.
gcloud
Para criar uma vinculação de tag 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 projetoINSTANCE_ID
: o ID da instância.ORG_ID
: o ID da organização.KEY_NAME
: o nome de exibição (abreviado) da chave de tag. Por exemplo,env
.VALUE_NAME
: o nome de exibição (abreviado) do valor da tag. Por exemplo,prod
.LOCATION
: o local da instância. Por exemplo,us-east1
.
Por exemplo, para criar uma vinculação de tag na sua instância do Spanner
my-instance
com o par de chave-valor de tag 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 tags do IAM
É possível usar tags e condições do IAM para conceder vinculações de papéis condicionalmente aos usuários. Se uma política do IAM com vinculações de papéis condicionais for aplicada, a alteração ou exclusão da tag anexada a um recurso poderá remover o acesso do usuário a esse recurso.
Para mais informações, consulte a visão geral das condições do IAM.
Console
Para usar tags e conceder vinculações de papéis aos usuários de forma condicional, consulte Gerenciar o acesso a tags.
gcloud
Para aplicar uma condição baseada em tag a uma política do IAM, verifique se você tem as permissões necessárias e 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 do papel a ser atribuído ao principal. O nome do papel é o caminho completo de um papel predefinido, comoroles/logging.viewer
, ou o ID do papel, comoorganizations/{ORG_ID}/roles/logging.viewer
.PRINCIPAL
: o principal em que você quer adicionar a vinculação de papel. Ele precisa estar no formatouser|group|serviceAccount:email
oudomain:domain
. Por exemplo,user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
, oudomain:example.domain.com
.PROJECT_ID
: o ID do projetoKEY_NAME
: o nome de exibição (abreviado) da chave de tag. Por exemplo,env
.VALUE_NAME
: o nome de exibição (abreviado) do valor da tag. Por exemplo,prod
.
Esse comando adiciona uma vinculação à política do IAM de uma organização. Uma vinculação de política consiste em um membro, um papel e uma condição opcional.
Por exemplo, para conceder condicionalmente a user1@example.com
o papel
spanner.backupAdmin
em todos os recursos do projeto 123456789012
com a
tag env:prod
, execute o comando:
gcloud organizations add-iam-policy-binding my-project
--member=user1@example.com --role=roles/spanner.backupAdmin
--condition=resource.matchTag('123456789012/env', 'prod')
Listar tags anexadas a uma instância
Você pode ver uma lista de vinculações de tags diretamente anexadas ou herdadas pela instância.
gcloud
Para ver uma lista de vinculações de tags anexadas a um recurso, use o comando gcloud resource-manager tags bindings list
: Se você adicionar a flag --effective
, também vai receber todas as vinculações de tag herdadas por esse recurso.
Para listar todas as vinculações de tags 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 projetoINSTANCE_ID
: o ID da instância.LOCATION
: o local da instância. Por exemplo,us-east1
.
Excluir uma vinculação de tag
Ao remover uma chave de tag ou uma definição de valor, verifique se a tag está separada da instância. Você precisa excluir as vinculações de tag antes de excluir a tag.
Console
No console Google Cloud , acesse a página Instâncias do Spanner.
Selecione a instância para a qual você quer excluir uma vinculação de tag.
Clique em
Tags.No painel "Tags", ao lado da tag que você quer remover, clique em
Excluir item.Clique em Salvar.
Na caixa de diálogo Confirmar, clique em Confirmar para remover a tag.
Uma notificação confirma que suas tags foram atualizadas.
gcloud
Para excluir uma vinculação de tag, 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 projetoINSTANCE_ID
: o ID da instância.ORG_ID
: o ID da organização.KEY_NAME
: o nome de exibição (abreviado) da chave de tag. Por exemplo,env
.VALUE_NAME
: o nome de exibição (abreviado) do valor da tag. Por exemplo,prod
.LOCATION
: o local da instância. Por exemplo,us-east1
.
Excluir uma tag
Depois de excluir a vinculação, você pode excluir a tag. Para excluir chaves e valores de tag, consulte Como excluir tags.
A seguir
Saiba mais sobre Google Cloud tags.
Saiba como criar e gerenciar tags nas instâncias do Spanner usando o Resource Manager.
Saiba mais sobre os rótulos, outra maneira de organizar seus recursos do Google Cloud .
Saiba mais sobre como criar políticas de permissão do IAM com condições.