Defina e faça a gestão de políticas IAM em pastas geridas

Esta página descreve como definir políticas de gestão de identidade e de acesso (IAM) em pastas geridas, para que possa ter um controlo de acesso detalhado sobre grupos específicos de objetos num contentor.

Se procura outros métodos de controlo de acesso, consulte os seguintes recursos:

Funções necessárias

Para receber as autorizações necessárias para definir e gerir políticas de IAM para pastas geridas, peça ao seu administrador para lhe conceder a função de IAM de administrador de pastas de armazenamento (roles/storage.folderAdmin) para o contentor que contém as pastas geridas.

Esta função contém as seguintes autorizações, que são necessárias para definir e gerir políticas de IAM para pastas geridas:

  • storage.managedFolders.getIamPolicy

  • storage.managedFolders.setIamPolicy

Também pode obter estas autorizações com funções personalizadas.

Para obter informações sobre como conceder funções para contentores, consulte o artigo Defina e faça a gestão de políticas de IAM em contentores.

Defina uma Política IAM numa pasta gerida

Consola

  1. Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.

    Aceda a Recipientes

  2. Na lista de contentores, clique no nome do contentor que contém a pasta gerida na qual quer definir uma política de IAM.

  3. Na página Detalhes do contentor, clique no ícone Mais opções no painel Explorador de pastas junto à pasta gerida na qual quer definir uma política de IAM.

    Se quiser controlar o acesso numa pasta ou numa pasta simulada, siga os passos em Crie uma pasta gerida para ativar a gestão na pasta ou na pasta simulada.

  4. Clique em Editar acesso.

  5. No painel Autorizações para MANAGED_FOLDER_NAME , clique em Adicionar principal .

  6. No campo Novos membros, introduza o membro ao qual quer conceder acesso. Para mais informações sobre os principais que pode incluir, consulte o artigo Identificadores principais.

  7. Na secção Atribuir funções, use o menu pendente Selecionar uma função para especificar o nível de acesso que quer conceder ao principal.

  8. Clique em Guardar.

Linha de comandos

  1. Crie um ficheiro JSON que contenha as seguintes informações:

    {
      "bindings":[
        {
          "role": "IAM_ROLE",
          "members":[
            "PRINCIPAL_IDENTIFIER"
          ]
        }
      ]
    }

    Onde:

    • IAM_ROLE é a função do IAM que está a conceder. Por exemplo, roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER identifica a pessoa a quem está a conceder acesso à pasta gerida. Por exemplo, user:example-service-account@example-project.s3ns.iam.gserviceaccount.com. Para ver uma lista dos formatos de identificadores principais, consulte o artigo Identificadores principais.

  2. Use o comando gcloud storage managed-folders set-iam-policy:

    gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME POLICY_FILE

    Onde:

    • BUCKET_NAME é o nome do contentor que contém a pasta gerida à qual quer aplicar a política de IAM. Por exemplo, my-bucket.

    • MANAGED_FOLDER_NAME é o nome da pasta gerida à qual quer aplicar a política de IAM. Por exemplo, my-managed-folder/.

    • POLICY_FILE é o caminho para o ficheiro JSON que criou no passo 1.

APIs REST

JSON

  1. Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho Authorization.

  2. Crie um ficheiro JSON que contenha as seguintes informações:

    {
      "bindings":[
        {
          "role": "IAM_ROLE",
          "members":[
            "PRINCIPAL_IDENTIFIER"
          ]
        }
      ]
    }

    Onde:

    • IAM_ROLE é a função do IAM que está a conceder. Por exemplo, roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER identifica a pessoa a quem está a conceder acesso à pasta gerida. Por exemplo, user:example-service-account@example-project.s3ns.iam.gserviceaccount.com. Para ver uma lista dos formatos de identificadores principais, consulte o artigo Identificadores principais.

  3. Use cURL para chamar a API JSON com um pedido PUT setIamPolicy:

    curl -X PUT --data-binary @POLICY_FILE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Onde:

    • POLICY_FILE é o caminho para o ficheiro de política JSON que criou no passo anterior.

    • BUCKET_NAME é o nome do contentor que contém a pasta gerida à qual quer aplicar a política de IAM. Por exemplo, my-bucket.

    • MANAGED_FOLDER_NAME é o nome da pasta gerida à qual quer conceder acesso ao principal. Por exemplo, my-managed-folder/.

Veja a política IAM de uma pasta gerida

Consola

  1. Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.

    Aceda a Recipientes

  2. Na lista de contentores, clique no nome do contentor que contém a pasta gerida para a qual quer ver as políticas de IAM.

  3. Na página Detalhes do contentor, clique no ícone Mais opções no painel Explorador de pastas junto à pasta gerida para a qual quer ver a política de IAM.

  4. Clique em Editar acesso.

O painel Autorizações para FOLDER_NAME apresenta as autorizações na pasta gerida, incluindo o principal, a função, as funções herdadas e as condições de IAM.

Linha de comandos

Use o comando gcloud storage managed-folder get-iam-policy:

gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME

Onde:

  • BUCKET_NAME é o nome do contentor que contém a pasta gerida cuja política de IAM quer ver. Por exemplo, my-bucket.

  • MANAGED_FOLDER_NAME é o nome da pasta gerida cuja política de IAM quer ver. Por exemplo, my-managed-folder/.

APIs REST

JSON

  1. Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use cURL para chamar a API JSON com um pedido GET getIamPolicy:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Onde:

    • BUCKET_NAME é o nome do contentor que contém a pasta gerida cuja política de IAM quer ver. Por exemplo, my-bucket.

    • MANAGED_FOLDER_NAME é o nome da pasta gerida cuja política de IAM quer ver. Por exemplo, my-managed-folder/.

Remova um principal de uma política de pastas geridas

Consola

  1. Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.

    Aceda a Recipientes

  2. Na lista de contentores, clique no nome do contentor que contém a pasta gerida para a qual quer ver as políticas de IAM.

  3. Na página Detalhes do contentor, clique no ícone Mais opções no painel Explorador de pastas junto à pasta gerida para a qual quer remover um principal.

  4. Clique em Editar acesso.

  5. No painel Autorizações para FOLDER_NAME, introduza o nome do principal no campo Filtro.

  6. Clique no ícone Eliminar para eliminar o principal.

O Cloud Storage elimina o principal da sua pasta gerida.

Linha de comandos

Use o comando gcloud storage managed-folder remove-iam-policy-binding:

gcloud storage managed-folders remove-iam-policy-binding  gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE

Onde:

  • BUCKET_NAME é o nome do contentor que contém a pasta gerida à qual está a revogar o acesso. Por exemplo, my-bucket.

  • MANAGED_FOLDER_NAME é o nome da pasta gerida cuja política de IAM quer remover. Por exemplo, my-managed-folder/.

  • PRINCIPAL_IDENTIFIER identifica a pessoa à qual está a revogar o acesso. Por exemplo, user:example-service-account@example-project.s3ns.iam.gserviceaccount.com. Para ver uma lista de formatos de identificadores principais, consulte Identificadores principais.

  • IAM_ROLE é a função de IAM que está a revogar. Por exemplo, roles/storage.objectViewer.

APIs REST

JSON

  1. Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho Authorization.

  2. Aplique a política existente à sua pasta gerida. Para o fazer, use cURL para chamar a API JSON com um pedido GET getIamPolicy:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Onde:

    • BUCKET_NAME é o nome do contentor que contém a pasta gerida à qual está a revogar o acesso. Por exemplo, my-bucket.

    • MANAGED_FOLDER_NAME é o nome da pasta gerida cuja política de IAM quer remover. Por exemplo, my-managed-folder/.

  3. Crie um ficheiro JSON que contenha a política que obteve no passo anterior.

  4. Edite o ficheiro JSON para remover o principal da política.

  5. Use cURL para chamar a API JSON com um pedido PUT setIamPolicy:

    curl -X PUT --data-binary @JSON_FILE_NAME \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Onde:

    • JSON_FILE_NAME é o caminho para o ficheiro que criou no passo 3.

    • BUCKET_NAME é o nome do contentor que contém a pasta gerida à qual está a revogar o acesso. Por exemplo, my-bucket.

    • MANAGED_FOLDER_NAME é o nome da pasta gerida cuja política de IAM quer remover. Por exemplo, my-managed-folder/.

Use condições do IAM em pastas geridas

As secções seguintes mostram como adicionar e remover condições da IAM nas suas pastas geridas. Para ver as condições da IAM para as suas pastas geridas, consulte o artigo Ver a política da IAM para uma pasta gerida. Para mais informações sobre a utilização das condições da IAM com o Cloud Storage, consulte o artigo Condições.

Tem de ativar o acesso uniforme ao nível do contentor no contentor antes de adicionar condições a pastas geridas.

Defina uma nova condição numa pasta gerida

Linha de comandos

  1. Crie um ficheiro JSON ou YAML que defina a condição, incluindo o title da condição, a lógica com base em atributos expression para a condição e, opcionalmente, um description para a condição.

    Tenha em atenção que o Cloud Storage só suporta os atributos data/hora, tipo de recurso e nome do recurso no expression.

  2. Use o gcloud storage managed-folders add-iam-policy-binding comando com a flag --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

Onde:

  • BUCKET_NAME é o nome do contentor que contém a pasta gerida à qual está a conceder acesso ao principal. Por exemplo, my-bucket.

  • MANAGED_FOLDER_NAME é o nome da pasta gerida à qual está a conceder acesso ao principal. Por exemplo, my-managed-folder/.

  • PRINCIPAL_IDENTIFIER identifica a quem se aplica a condição. Por exemplo, user:example-service-account@example-project.s3ns.iam.gserviceaccount.com. Para ver uma lista de formatos de identificadores principais, consulte Identificadores principais.

  • IAM_ROLE é a função do IAM que está a conceder ao principal. Por exemplo, roles/storage.objectViewer.

  • CONDITION_FILE é o ficheiro que criou no passo anterior.

Em alternativa, pode incluir a condição diretamente no comando com a flag --condition em vez da flag --condition-from-file.

APIs REST

JSON

  1. Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use um pedido GET getIamPolicy para guardar a política de IAM da pasta gerida num ficheiro JSON temporário:

    curl \
    'https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \
    --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json

    Onde:

    • BUCKET_NAME é o nome do contentor que contém a pasta gerida na qual quer definir uma condição do IAM.

    • MANAGED_FOLDER_NAME é o nome da pasta gerida na qual quer definir uma condição de IAM.

  3. Edite o ficheiro tmp-policy.json num editor de texto para adicionar novas condições às associações na política de IAM:

    {
        "version": VERSION,
        "bindings": [
          {
            "role": "IAM_ROLE",
            "members": [
              "PRINCIPAL_IDENTIFIER"
            ],
            "condition": {
              "title": "TITLE",
              "description": "DESCRIPTION",
              "expression": "EXPRESSION"
            }
          }
        ],
        "etag": "ETAG"
    }

    Onde:

    • VERSION é a versão da política IAM, que tem de ser 3 para pastas geridas com condições IAM.

    • IAM_ROLE é a função à qual a condição se aplica. Por exemplo, roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER identifica a quem se aplica a condição. Por exemplo, user:example-service-account@example-project.s3ns.iam.gserviceaccount.com. Para ver uma lista de formatos de identificadores principais, consulte o artigo Identificadores 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 baseada 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 Conditions. O Cloud Storage só suporta os atributos de data/hora, tipo de recurso e nome do recurso.

    Não modifique ETAG.

  4. Use um pedido PUT setIamPolicy para definir a política IAM modificada no contentor:

    curl -X PUT --data-binary @tmp-policy.json \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"

    Onde:

    • BUCKET_NAME é o nome do contentor que contém a pasta gerida na qual quer definir uma condição do IAM.

    • MANAGED_FOLDER_NAME é o nome da pasta gerida na qual quer definir uma condição de IAM.

Remova uma condição de uma pasta gerida

Linha de comandos

  1. Use o comando gcloud storage managed-folders get-iam-policy para guardar a política de IAM da pasta gerida num ficheiro JSON temporário.

    gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME > tmp-policy.json
  2. Edite o ficheiro tmp-policy.json num editor de texto para remover condições da política de IAM.

  3. Use o comando gcloud storage managed-folders set-iam-policy para definir a Política IAM modificada na pasta gerida.

    gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json

APIs REST

JSON

  1. Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use um pedido GET getIamPolicy para guardar a política de IAM da pasta gerida num ficheiro JSON temporário:

    curl \
    'https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \
    --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json

    Onde:

    • BUCKET_NAME é o nome do contentor que contém a pasta gerida cujo acesso está a alterar. Por exemplo, my-bucket.

    • MANAGED_FOLDER_NAME é o nome da pasta gerida cujo acesso está a alterar. Por exemplo, my-managed-folder/.

  3. Edite o ficheiro tmp-policy.json num editor de texto para remover condições da política do IAM.

  4. Use um pedido PUT setIamPolicy para definir a Política IAM modificada na pasta gerida:

    curl -X PUT --data-binary @tmp-policy.json \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"

    Onde:

    • BUCKET_NAME é o nome do contentor que contém a pasta gerida cujo acesso está a alterar. Por exemplo, my-bucket.

    • MANAGED_FOLDER_NAME é o nome da pasta gerida cujo acesso está a alterar. Por exemplo, my-managed-folder/.

Use o IAM com projetos

Consulte o artigo Faça a gestão do acesso a projetos, pastas geridas e organizações para ver orientações sobre a concessão e a revogação de funções do IAM ao nível do projeto e superior.

Práticas recomendadas

Deve definir a função mínima possível que concede ao principal o acesso necessário. Por exemplo, se um membro da equipa só precisar de ver as pastas geridas num contentor, atribua-lhe a função de administrador de objetos de armazenamento (roles/storage.objectAdmin) em vez da função de administrador de pastas de armazenamento (roles/storage.folderAdmin). Da mesma forma, se o membro da equipa precisar de controlo total das pastas geridas num contentor, conceda-lhe a função de administrador da pasta de armazenamento (roles/storage.folderAdmin) em vez da função de administrador do armazenamento (roles/storage.admin).

O que se segue?