Nesta página, descrevemos como definir políticas do Identity and Access Management (IAM) em pastas gerenciadas para que você tenha controle de acesso refinado sobre grupos específicos. de objetos em um bucket.
Se você estiver procurando outros métodos de controle de acesso, consulte os seguintes recursos:
Para saber como controlar o acesso a buckets inteiros e aos objetos dentro deles, consulte Definir e gerenciar políticas do IAM em buckets.
Para conhecer uma maneira alternativa de controlar o acesso a objetos individuais dentro de buckets, consulte Listas de controle de acesso.
Para mais informações sobre como controlar o acesso a recursos do Cloud Storage, leia Visão geral do controle de acesso.
Funções exigidas
Para receber as permissões necessárias para definir e gerenciar políticas do IAM
para pastas gerenciadas, peça ao administrador
que conceda a você o papel de Administrador de pastas do Storage (roles/storage.folderAdmin
) do IAM
para o bucket que contém as pastas gerenciadas.
Esse papel contém as permissões necessárias para definir e gerenciar políticas do IAM para pastas gerenciadas:
storage.managedfolders.getIamPolicy
storage.managedfolders.setIamPolicy
Também é possível receber essas permissões com funções personalizadas.
Para informações sobre como conceder papéis para buckets, consulte Definir e gerenciar políticas do IAM em buckets.
Defina uma política do IAM em uma pasta gerenciada
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket que contém a pasta gerenciada em que você quer definir uma política do IAM.
Na página Detalhes do bucket, clique no ícone Mais opções
no painel Navegador de pastas ao lado das pasta gerenciada em que você quer definir uma política do IAM.Se você quiser controlar o acesso em uma pasta ou uma pasta simulada, siga as etapas em Criar uma pasta gerenciada para ativar o gerenciamento na pasta ou na pasta simulada.
Clique em Editar acesso.
No painel Permissões
MANAGED_FOLDER_NAME
, clique em Adicionar principal .No campo Novos principais, insira a principal a que você quer conceder acesso. Para mais informações sobre os principais que podem ser incluídos, consulte Identificadores principais.
Na seção Atribuir papéis, use o menu suspenso Selecionar um papel para especificar o nível de acesso que você quer conceder ao principal.
Clique em Salvar.
Linha de comando
Crie um arquivo JSON com as informações a seguir:
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
Em que:
IAM_ROLE
é o papel do IAM que você concede. Por exemplo,roles/storage.objectViewer
.PRINCIPAL_IDENTIFIER
identifica para quem você está concedendo acesso à pasta gerenciada. Por exemplo,user:jane@gmail.com
. Para uma lista de formatos de identificadores de principais, confira Identificadores de principais.
Use o comando
gcloud storage managed-folders set-iam-policy
(em inglês).gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME POLICY_FILE
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada que você quer aplicar a política do IAM. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada que você quer aplicar a política do IAM. Por exemplo,my-managed-folder/
.POLICY_FILE
é o caminho para o arquivo JSON que você criou na etapa 1.
APIs REST
JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um arquivo JSON com as informações a seguir:
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
Em que:
IAM_ROLE
é o papel do IAM que você concede. Por exemplo,roles/storage.objectViewer
.PRINCIPAL_IDENTIFIER
identifica para quem você está concedendo acesso à pasta gerenciada. Por exemplo,user:jane@gmail.com
. Para uma lista de formatos de identificadores de principais, consulte Identificadores de principais.
Use
cURL
para chamar a API JSON com uma solicitaçãoPUT setIamPolicy
:curl -X PUT --data-binary @POLICY_FILE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Em que:
POLICY_FILE
é o caminho para o arquivo de política JSON criado na etapa anterior.BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada que você quer aplicar a política do IAM. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada que você quer conceder acesso principal. Por exemplo,my-managed-folder/
.
Confira a política do IAM para uma pasta gerenciada
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket que contém a pasta gerenciada para as quais você quer visualizar as políticas do IAM.
Na página Detalhes do bucket, clique no ícone Mais opções
no painel Navegador de pastas ao lado das pasta gerenciada em que você quer visualizar a política do IAM.Clique em Editar acesso.
O painel Permissões para FOLDER_NAME
exibe as
permissões na pasta gerenciada, incluindo o principal,
o papel, os papéis herdados e as condições do IAM.
Linha de comando
Use o comando gcloud storage managed-folder get-iam-policy
(em inglês).
gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada com a política do IAM que você quer visualizar. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada com a política do IAM que você quer visualizar. Por exemplo,my-managed-folder/
.
APIs REST
JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitaçãoGET getIamPolicy
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada com a política do IAM que você quer visualizar. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada com a política do IAM que você quer visualizar. Por exemplo,my-managed-folder/
.
Remova uma principal de uma política de pasta gerenciada
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket que contém a pasta gerenciada para as quais você quer visualizar as políticas do IAM.
Na página Detalhes do bucket, clique no ícone Mais opções
no painel Navegador de pastas ao lado das pasta gerenciada em que você quer remover um principal.Clique em Editar acesso.
No painel Permissões para
FOLDER_NAME
, insira o nome do principal no campo Filtro.Clique no ícone de exclusão
para excluir o relatório.
O Cloud Storage exclui o principal da sua pasta gerenciada.
Linha de comando
Use o comando gcloud storage managed-folder remove-iam-policy-binding
(em inglês).
gcloud storage managed-folders remove-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada que você está revogando o acesso. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada com a política do IAM que você quer remover. Por exemplo,my-managed-folder/
.PRINCIPAL_IDENTIFIER
identifica de quem você está revogando o acesso. Por exemplo,user:jane@gmail.com
. Para uma lista de formatos de identificadores de principais, consulte Identificadores de principais.IAM_ROLE
é o papel do IAM que você está revogando. Por exemplo,roles/storage.objectViewer
.
APIs REST
JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Receba a política atual aplicada à pasta gerenciada. Para fazer isso, use
cURL
para chamar a API JSON com uma solicitaçãoGET getIamPolicy
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada que você está revogando o acesso. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada com a política do IAM que você quer remover. Por exemplo,my-managed-folder/
.
Crie um arquivo JSON com a política que você recuperou na etapa anterior.
Edite o arquivo JSON para remover o principal da política.
Use
cURL
para chamar a API JSON com uma solicitaçãoPUT setIamPolicy
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo criado na Etapa 3.BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada que você está revogando o acesso. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada com a política do IAM que você quer remover. Por exemplo,my-managed-folder/
.
Use condições do IAM em pastas gerenciadas
As seções a seguir mostram como adicionar e remover Condições do IAM nas pastas gerenciadas. Para ver as condições do IAM das pastas gerenciadas, confira Como visualizar a política do IAM de uma pasta gerenciada. Para mais informações sobre como usar as condições do IAM com o Cloud Storage, confira Condições.
É necessário ativar o acesso uniforme no nível do bucket antes de adicionar condições às pastas gerenciadas.
Defina uma nova condição em uma pasta gerenciada
Linha de comando
Crie um arquivo JSON ou YAML que defina a condição, incluindo o
title
da condição, a lógica baseada em atributoexpression
da condição e, opcionalmente, umdescription
para a condição.O Cloud Storage só é compatível com a data/hora, tipo de recurso e nome do recurso atribuídos no
expression
.Use o comando
gcloud storage managed-folders add-iam-policy-binding
com a sinalização--condition-from-file
.
gcloud storage managed-folders add-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE --condition-from-file=CONDITION_FILE
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada que você está concedendo o acesso principal. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada que você está concedendo o acesso principal. Por exemplo,my-managed-folder/
.PRINCIPAL_IDENTIFIER
identifica a quem a condição se aplica. Por exemplo,user:jane@gmail.com
. Para ver uma lista de formatos de identificadores de principais, consulte Identificadores de principais.IAM_ROLE
é o papel do IAM que você concede à principal. Por exemplo,roles/storage.objectViewer
.CONDITION_FILE
é o arquivo criado na etapa anterior.
Como alternativa, é possível incluir a condição diretamente no comando
com a flag --condition
em vez da flag --condition-from-file
.
APIs REST
JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Use uma solicitação
GET getIamPolicy
para salvar a política do IAM da pasta gerenciada em um arquivo JSON temporário:curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada que você quer definir uma condição do IAM.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada que você quer definir uma condição do IAM.
Edite o arquivo
tmp-policy.json
em um editor de texto para adicionar novas condições às vinculações na política do IAM:{ "version": VERSION, "bindings": [ { "role": "IAM_ROLE", "members": [ "PRINCIPAL_IDENTIFIER" ], "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ], "etag": "ETAG" }
Em que:
VERSION
é a versão da política do IAM, que precisa ser 3 para pastas gerenciadas com Condições do IAM.IAM_ROLE
é o papel ao qual a condição se aplica. Por exemplo,roles/storage.objectViewer
.PRINCIPAL_IDENTIFIER
identifica a quem a condição se aplica. Por exemplo,user:jane@gmail.com
. Para uma lista de formatos de identificadores de principais, consulte Identificadores de principais.TITLE
é o título da condição. Por exemplo,expires in 2019
.DESCRIPTION
é uma descrição opcional da condição. Por exemplo,Permission revoked on New Year's
.EXPRESSION
é uma expressão lógica com base em atributos. Por exemplo,request.time < timestamp(\"2019-01-01T00:00:00Z\")
. Para ver mais exemplos de expressões, consulte a referência do atributo de condições. O Cloud Storage aceita apenas os atributos data/hora, tipo de recurso e nome do recurso.
Não modifique
ETAG
.Use uma solicitação
PUT setIamPolicy
para definir a política de IAM modificada no bucket:curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada que você quer definir uma condição do IAM.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada que você quer definir uma condição do IAM.
Remova uma condição de uma pasta gerenciada
Linha de comando
Use o comando
gcloud storage managed-folders get-iam-policy
para salvar a política do IAM da pasta gerenciada em um arquivo JSON temporário.gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME > tmp-policy.json
Edite o arquivo
tmp-policy.json
em um editor de texto para remover condições da política de IAM.Use o comando
gcloud storage managed-folders set-iam-policy
para definir a política do IAM modificada na pasta gerenciada.gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json
APIs REST
JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Use uma solicitação
GET getIamPolicy
para salvar a política do IAM da pasta gerenciada em um arquivo JSON temporário:curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada que você está mudando o acesso. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada que você está mudando o acesso. Por exemplo,my-managed-folder/
.
Edite o arquivo
tmp-policy.json
em um editor de texto para remover condições da política de IAM.Use uma solicitação
PUT setIamPolicy
para definir a política do IAM modificada na pasta gerenciada:curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"
Em que:
BUCKET_NAME
é o nome do bucket que contém a pasta gerenciada que você está mudando o acesso. Por exemplo,my-bucket
.MANAGED_FOLDER_NAME
é o nome da pasta gerenciada que você está mudando o acesso. Por exemplo,my-managed-folder/
.
Usar o IAM com projetos
Consulte Gerenciar o acesso a projetos, pastas gerenciadas e organizações para orientações sobre como conceder e revogar papéis do IAM no nível do projeto e acima.
Práticas recomendadas
Defina o papel mínimo possível que concede ao membro
o acesso necessário. Por exemplo, se um membro da equipe só precisa visualizar
as pastas gerenciadas em um bucket, conceda o papel Administrador de objetos do Storage
(roles/storage.objectAdmin
) em vez do Administrador de pastas do Cloud Storage (roles/storage.folderAdmin
).
Da mesma forma, se o membro da equipe precisar de controle total das pastas gerenciadas em um bucket, conceda a ele o papel Administrador de pastas do Storage (roles/storage.folderAdmin
) em vez de amin do Storage (roles/storage.admin
).
A seguir
Saiba como compartilhar seus dados publicamente.
Veja exemplos específicos de compartilhamento e colaboração.
Saiba mais sobre as práticas recomendadas para o uso do IAM.
Para resolver problemas de operações com falha relacionadas a papéis e permissões do IAM, consulte Solução de problemas.