Como usar as permissões do Cloud IAM

Nesta página, você verá como controlar o acesso a intervalos e objetos usando as permissões do Cloud Identity and Access Management (Cloud IAM). Com ele, você controla quem tem acesso aos seus intervalos e objetos. Para saber mais sobre o Cloud IAM para o Cloud Storage, consulte a visão geral da ferramenta.

Para saber mais sobre outras formas de controlar o acesso a intervalos e objetos, leia Visão geral do controle de acesso. Para saber mais sobre como controlar o acesso a objetos individuais dentro de intervalos, consulte Listas de controle de acesso.

Como usar o Cloud IAM com intervalos

Nas seções a seguir, mostramos como concluir tarefas básicas do Cloud IAM em intervalos.

Como adicionar um membro a uma política no nível do intervalo

Para ver a lista de papéis associados ao Cloud Storage, consulte Papéis do Cloud IAM. Para ver informações sobre entidades a que você concede papéis do Cloud IAM, consulte Tipos de membros.

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud Platform.
    Abra o navegador do Cloud Storage
  2. Clique no menu suspenso associado ao intervalo a que você quer conceder um papel a um membro.

    O menu suspenso aparece como três pontos verticais na extremidade direita da linha onde está o intervalo.

  3. Selecione Editar permissões do intervalo.

  4. No campo Adicionar membros, insira uma ou mais identidades que precisam acessar seu intervalo.

    Adicione caixa de diálogo de membro.

  5. Escolha um ou mais papéis no menu suspenso Selecionar um papel. Os papéis selecionados são exibidos no painel com uma breve descrição das permissões que eles concedem.

  6. Clique em Adicionar.

gsutil

Use o comando gsutil iam ch:

gsutil iam ch [MEMBER_TYPE]:[MEMBER_NAME]:[IAM_ROLE] gs://[BUCKET_NAME]

Em que:

  • [MEMBER_TYPE] é o tipo de membro ao qual você concede acesso ao intervalo. Por exemplo, user.
  • [MEMBER_NAME] é o nome do membro ao qual você concede acesso ao intervalo. Por exemplo, jane@gmail.com.
  • [IAM_ROLE] é o papel do IAM que você concede ao membro. Por exemplo, roles/storage.objectCreator.
  • [BUCKET_NAME] é o nome do intervalo ao qual você concede acesso ao membro. Por exemplo, my-bucket.

Para mais exemplos de como formatar [MEMBER_TYPE]:[MEMBER_NAME]:[IAM_ROLE], consulte a página de referência gsutil iam ch.

Amostras de código

C++

Para ver mais informações, consulte a documentação de referência da API Cloud Storage para C ++ .

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string role,
   std::string member) {
  auto policy = client.GetNativeBucketIamPolicy(bucket_name);

  if (!policy) {
    throw std::runtime_error(policy.status().message());
  }

  for (auto& binding : policy->bindings()) {
    if (binding.role() != role) {
      continue;
    }
    auto& members = binding.members();
    if (std::find(members.begin(), members.end(), member) == members.end()) {
      members.emplace_back(member);
    }
  }

  auto updated_policy = client.SetNativeBucketIamPolicy(bucket_name, *policy);

  if (!updated_policy) {
    throw std::runtime_error(updated_policy.status().message());
  }

  std::cout << "Updated IAM policy bucket " << bucket_name
            << ". The new policy is " << *updated_policy << "\n";
}

C#

Para ver mais informações, consulte a documentação de referência da API Cloud Storage C#.

private void AddBucketIamMember(string bucketName,
    string role, string member)
{
    var storage = StorageClient.Create();
    var policy = storage.GetBucketIamPolicy(bucketName);
    Policy.BindingsData bindingToAdd = new Policy.BindingsData();
    bindingToAdd.Role = role;
    string[] members = { member };
    bindingToAdd.Members = members;
    policy.Bindings.Add(bindingToAdd);
    storage.SetBucketIamPolicy(bucketName, policy);
    Console.WriteLine($"Added {member} with role {role} "
        + $"to {bucketName}");
}

Go

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Go.

bucket := c.Bucket(bucketName)
policy, err := bucket.IAM().Policy(ctx)
if err != nil {
	return err
}
// Other valid prefixes are "serviceAccount:", "user:"
// See the documentation for more values.
// https://cloud.google.com/storage/docs/access-control/iam
policy.Add("group:cloud-logs@google.com", "roles/storage.objectViewer")
if err := bucket.IAM().SetPolicy(ctx, policy); err != nil {
	return err
}
// NOTE: It may be necessary to retry this operation if IAM policies are
// being modified concurrently. SetPolicy will return an error if the policy
// was modified since it was retrieved.

Java

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Java.

// Initialize a Cloud Storage client
Storage storage = StorageOptions.getDefaultInstance().getService();

// Get IAM Policy for a bucket
Policy policy = storage.getIamPolicy(bucketName);

// Add identity to Bucket-level IAM role
Policy updatedPolicy =
    storage.setIamPolicy(bucketName, policy.toBuilder().addIdentity(role, identity).build());

if (updatedPolicy.getBindings().get(role).contains(identity)) {
  System.out.printf("Added %s with role %s to %s\n", identity, role, bucketName);
}

Node.js

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Node.js.

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';
// const roleName = 'Role to grant, e.g. roles/storage.objectViewer';
// const members = [
//   'user:jdoe@example.com',    // Example members to grant
//   'group:admins@example.com', // the new role to
// ];

// Creates a client
const storage = new Storage();

// Get a reference to a Google Cloud Storage bucket
const bucket = storage.bucket(bucketName);

// Gets and updates the bucket's IAM policy
const [policy] = await bucket.iam.getPolicy();

// Adds the new roles to the bucket's IAM policy
policy.bindings.push({
  role: roleName,
  members: members,
});

// Updates the bucket's IAM policy
await bucket.iam.setPolicy(policy);

console.log(
  `Added the following member(s) with role ${roleName} to ${bucketName}:`
);

members.forEach(member => {
  console.log(`  ${member}`);
});

PHP

Para ver mais informações, consulte a documentação de referência da API Cloud Storage PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Adds a new member / role IAM pair to a given Cloud Storage bucket.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 * @param string $role the role you want to add a given member to.
 * @param string $member the member you want to give the new role for the Cloud
 * Storage bucket.
 *
 * @return void
 */
function add_bucket_iam_member($bucketName, $role, $member)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);

    $policy = $bucket->iam()->policy();

    $policy['bindings'][] = [
        'role' => $role,
        'members' => [$member]
    ];

    $bucket->iam()->setPolicy($policy);

    printf('User %s added to role %s for bucket %s' . PHP_EOL, $member, $role, $bucketName);
}

Python

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Python.

def add_bucket_iam_member(bucket_name, role, member):
    storage_client = storage.Client()
    bucket = storage_client.bucket(bucket_name)

    policy = bucket.get_iam_policy()

    policy[role].add(member)

    bucket.set_iam_policy(policy)

    print('Added {} with role {} to {}.'.format(
         member, role, bucket_name))

Ruby

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Ruby.

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Your Google Cloud Storage bucket name"
# role        = "Bucket-level IAM role"
# member      = "Bucket-level IAM member"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket = storage.bucket bucket_name

bucket.policy do |policy|
  policy.add role, member
end

puts "Added #{member} with role #{role} to #{bucket_name}"

JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json com as informações a seguir:

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

    Em que:

    • [IAM_ROLE] é o papel do IAM que você concede ao membro. Por exemplo, roles/storage.objectCreator.
    • [MEMBER_NAME] é o nome do membro ao qual você concede acesso ao intervalo. Por exemplo, jane@gmail.com.

      Para mais exemplos de como formatar [MEMBER_NAME], consulte a seção sobre membros aqui.

  3. Use cURL para chamar a API JSON com uma solicitação PUT setIamPolicy:

    curl -X PUT --data-binary @[JSON_FILE_NAME].json \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Type: application/json" \
      "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/iam"

    Em que:

    • [JSON_FILE_NAME] é o nome do arquivo criado na Etapa 2.
    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do intervalo ao qual você quer conceder acesso ao membro. Por exemplo, my-bucket.

Como ver a política do Cloud IAM de um intervalo

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud Platform.
    Abra o navegador do Cloud Storage
  2. Clique no menu suspenso associado ao intervalo dos papéis de membros que você quer ver.

    O menu suspenso aparece como três pontos verticais na extremidade direita de onde está o nome do intervalo.

  3. Selecione Editar permissões do intervalo.

  4. Expanda o papel desejado para ver os membros que o receberam.

  5. (Opcional) Use a barra de pesquisa para filtrar os resultados por papel ou membro.

    Se você pesquisar por membro, os resultados exibirão todos os papéis atribuídos ao membro.

gsutil

Use o comando gsutil iam get:

gsutil iam get gs://[BUCKET_NAME]

Em que [BUCKET_NAME] é o nome do Cloud IAM do intervalo cuja política você quer visualizar. Por exemplo, my-bucket.

Amostras de código

C++

Para ver mais informações, consulte a documentação de referência da API Cloud Storage para C ++ .

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name) {
  auto policy = client.GetNativeBucketIamPolicy(bucket_name);

  if (!policy) {
    throw std::runtime_error(policy.status().message());
  }

  std::cout << "The IAM policy for bucket " << bucket_name << " is "
            << *policy << "\n";
}

C#

Para ver mais informações, consulte a documentação de referência da API Cloud Storage C#.

private void ViewBucketIamMembers(string bucketName)
{
    var storage = StorageClient.Create();
    var policy = storage.GetBucketIamPolicy(bucketName);
    foreach (var binding in policy.Bindings)
    {
        Console.WriteLine($"  Role: {binding.Role}");
        Console.WriteLine("  Members:");
        foreach (var member in binding.Members)
        {
            Console.WriteLine($"    {member}");
        }
    }
}

Go

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Go.

policy, err := c.Bucket(bucketName).IAM().Policy(ctx)
if err != nil {
	return nil, err
}
for _, role := range policy.Roles() {
	log.Printf("%q: %q", role, policy.Members(role))
}

Java

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Java.

// Initialize a Cloud Storage client
Storage storage = StorageOptions.getDefaultInstance().getService();

// Get IAM Policy for a bucket
Policy policy = storage.getIamPolicy(bucketName);

// Print Roles and its identities
Map<Role, Set<Identity>> policyBindings = policy.getBindings();
for (Map.Entry<Role, Set<Identity>> entry : policyBindings.entrySet()) {
  System.out.printf("Role: %s Identities: %s\n", entry.getKey(), entry.getValue());
}

Node.js

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Node.js.

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

/**
 * TODO(developer): Uncomment the following line before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Gets and displays the bucket's IAM policy
const results = await storage.bucket(bucketName).iam.getPolicy();

const policy = results[0].bindings;

// Displays the roles in the bucket's IAM policy
console.log(`Roles for bucket ${bucketName}:`);
policy.forEach(role => {
  console.log(`  Role: ${role.role}`);
  console.log(`  Members:`);

  const members = role.members;
  members.forEach(member => {
    console.log(`    ${member}`);
  });
});

PHP

Para ver mais informações, consulte a documentação de referência da API Cloud Storage PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * View Bucket IAM members for a given Cloud Storage bucket.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 *
 * @return void
 */
function view_bucket_iam_members($bucketName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);

    $policy = $bucket->iam()->policy();

    printf('Printing Bucket IAM members for Bucket: %s' . PHP_EOL, $bucketName);
    printf(PHP_EOL);

    foreach ($policy['bindings'] as $binding) {
        printf('Role: %s' . PHP_EOL, $binding['role']);
        printf('Members:' . PHP_EOL);
        foreach ($binding['members'] as $member) {
            printf('  %s' . PHP_EOL, $member);
        }
        printf(PHP_EOL);
    }
}

Python

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Python.

def view_bucket_iam_members(bucket_name):
    storage_client = storage.Client()
    bucket = storage_client.bucket(bucket_name)

    policy = bucket.get_iam_policy()

    for role in policy:
        members = policy[role]
        print('Role: {}, Members: {}'.format(role, members))

Ruby

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Ruby.

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Your Google Cloud Storage bucket name"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket = storage.bucket bucket_name

policy = bucket.policy

policy.roles.each do |role, members|
  puts "Role: #{role} Members: #{members}"
end

JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API JSON com uma solicitação GET getIamPolicy:

    curl -X GET \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/iam"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do intervalo cuja política do Cloud IAM você quer visualizar. Por exemplo, my-bucket.

Como remover um membro de uma política no nível do intervalo

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud Platform.
    Abra o navegador do Cloud Storage
  2. Clique no menu suspenso associado ao intervalo de papel de um membro que você quer remover.

    O menu suspenso aparece como três pontos verticais na extremidade direita de onde está o nome do intervalo.

  3. Selecione Editar permissões do intervalo.

  4. Expanda o papel que contém o membro que você quer remover.

  5. Passe o cursor sobre o membro e clique no ícone de lixeira que é exibido.

    Remova um membro de um projeto.

  6. Na janela de sobreposição que aparece, clique em Remover.

gsutil

Use o comando gsutil iam ch com uma sinalização -d:

gsutil iam ch -d [MEMBER_TYPE]:[MEMBER_NAME] gs://[BUCKET_NAME]

Em que:

  • [MEMBER_TYPE] é o tipo do membro que você está removendo da política. Por exemplo, user.
  • [MEMBER_NAME] é o nome do membro que você está removendo da política. Por exemplo, jane@gmail.com.
  • [BUCKET_NAME] é o nome do intervalo do qual você está removendo o acesso do membro. Por exemplo, my-bucket.

Para mais exemplos de como formatar [MEMBER_TYPE]:[MEMBER_NAME], consulte a página de referência gsutil iam ch.

Amostras de código

C++

Para ver mais informações, consulte a documentação de referência da API Cloud Storage para C ++ .

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string role,
   std::string member) {
  auto policy = client.GetNativeBucketIamPolicy(bucket_name);
  if (!policy) {
    throw std::runtime_error(policy.status().message());
  }

  std::vector<google::cloud::storage::NativeIamBinding> updated_bindings;
  for (auto& binding : policy->bindings()) {
    auto& members = binding.members();
    if (binding.role() == role) {
      members.erase(std::remove(members.begin(), members.end(), member),
                    members.end());
    }
    if (!members.empty()) {
      updated_bindings.emplace_back(std::move(binding));
    }
  }
  policy->bindings() = std::move(updated_bindings);

  auto updated_policy = client.SetNativeBucketIamPolicy(bucket_name, *policy);

  if (!updated_policy) {
    throw std::runtime_error(updated_policy.status().message());
  }

  std::cout << "Updated IAM policy bucket " << bucket_name
            << ". The new policy is " << *updated_policy << "\n";
}

C#

Para ver mais informações, consulte a documentação de referência da API Cloud Storage C#.

private void RemoveBucketIamMember(string bucketName,
    string role, string member)
{
    var storage = StorageClient.Create();
    var policy = storage.GetBucketIamPolicy(bucketName);
    policy.Bindings.ToList().ForEach(response =>
    {
        if (response.Role == role)
        {
            // Remove the role/member combo from the IAM policy.
            response.Members = response.Members
                .Where(m => m != member).ToList();
            // Remove role if it contains no members.
            if (response.Members.Count == 0)
            {
                policy.Bindings.Remove(response);
            }
        }
    });
    // Set the modified IAM policy to be the current IAM policy.
    storage.SetBucketIamPolicy(bucketName, policy);
    Console.WriteLine($"Removed {member} with role {role} "
        + $"to {bucketName}");
}

Go

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Go.

bucket := c.Bucket(bucketName)
policy, err := bucket.IAM().Policy(ctx)
if err != nil {
	return err
}
// Other valid prefixes are "serviceAccount:", "user:"
// See the documentation for more values.
// https://cloud.google.com/storage/docs/access-control/iam
policy.Remove("group:cloud-logs@google.com", "roles/storage.objectViewer")
if err := bucket.IAM().SetPolicy(ctx, policy); err != nil {
	return err
}
// NOTE: It may be necessary to retry this operation if IAM policies are
// being modified concurrently. SetPolicy will return an error if the policy
// was modified since it was retrieved.

Java

Para ver mais informações, consulte a documentação de referência da API Cloud Storage para Java .

// Initialize a Cloud Storage client
Storage storage = StorageOptions.getDefaultInstance().getService();

// Get IAM Policy for a bucket
Policy policy = storage.getIamPolicy(bucketName);

// Remove an identity from a Bucket-level IAM role
Policy updatedPolicy =
    storage.setIamPolicy(bucketName, policy.toBuilder().removeIdentity(role, identity).build());

if (updatedPolicy.getBindings().get(role) == null
    || !updatedPolicy.getBindings().get(role).contains(identity)) {
  System.out.printf("Removed %s with role %s from %s\n", identity, role, bucketName);
}

Node.js

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Node.js.

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';
// const roleName = 'Role to grant, e.g. roles/storage.objectViewer';
// const members = [
//   'user:jdoe@example.com',    // Example members to grant
//   'group:admins@example.com', // the new role to
// ];

// Creates a client
const storage = new Storage();

// Get a reference to a Google Cloud Storage bucket
const bucket = storage.bucket(bucketName);

// Gets and updates the bucket's IAM policy
const [policy] = await bucket.iam.getPolicy();

// Finds and updates the appropriate role-member group
const index = policy.bindings.findIndex(role => role.role === roleName);
const role = policy.bindings[index];
if (role) {
  role.members = role.members.filter(
    member => members.indexOf(member) === -1
  );

  // Updates the policy object with the new (or empty) role-member group
  if (role.members.length === 0) {
    policy.bindings.splice(index, 1);
  } else {
    policy.bindings.index = role;
  }

  // Updates the bucket's IAM policy
  await bucket.iam.setPolicy(policy);
} else {
  // No matching role-member group(s) were found
  throw new Error('No matching role-member group(s) found.');
}

console.log(
  `Removed the following member(s) with role ${roleName} from ${bucketName}:`
);
members.forEach(member => {
  console.log(`  ${member}`);
});

PHP

Para ver mais informações, consulte a documentação de referência da API Cloud Storage PHP.

use Google\Cloud\Core\Iam\PolicyBuilder;
use Google\Cloud\Storage\StorageClient;

/**
 * Removes a member / role IAM pair from a given Cloud Storage bucket.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 * @param string $role the role you want to remove a given member from.
 * @param string $member the member you want to remove from the given role.
 *
 * @return void
 */
function remove_bucket_iam_member($bucketName, $role, $member)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $policy = $bucket->iam()->policy();
    $policyBuilder = new PolicyBuilder($policy);
    $policyBuilder->removeBinding($role, [$member]);

    $bucket->iam()->setPolicy($policyBuilder->result());
    printf('User %s removed from role %s for bucket %s' . PHP_EOL, $member, $role, $bucketName);
}

Python

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Python.

def remove_bucket_iam_member(bucket_name, role, member):
    storage_client = storage.Client()
    bucket = storage_client.bucket(bucket_name)

    policy = bucket.get_iam_policy()

    policy[role].discard(member)

    bucket.set_iam_policy(policy)

    print('Removed {} with role {} from {}.'.format(
        member, role, bucket_name))

Ruby

Para ver mais informações, consulte a documentação de referência da API Cloud Storage Ruby.

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Your Google Cloud Storage bucket name"
# role        = "Bucket-level IAM role"
# member      = "Bucket-level IAM member"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket = storage.bucket bucket_name

bucket.policy do |policy|
  policy.remove role, member
end

puts "Removed #{member} with role #{role} from #{bucket_name}"

JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Receba a política atual aplicada ao projeto. Para fazer isso, use cURL para chamar a API JSON com uma solicitação GET getIamPolicy:

    curl -X GET \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/iam"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do intervalo cuja política do Cloud IAM você quer visualizar. Por exemplo, my-bucket.
  3. Crie um arquivo .json com a política que você recuperou na etapa anterior.

  4. Edite o arquivo .json para remover o membro da política.

  5. Use cURL para chamar a API JSON com uma solicitação PUT setIamPolicy:

    curl -X PUT --data-binary @[JSON_FILE_NAME].json \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Type: application/json" \
      "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/iam"

    Em que:

    • [JSON_FILE_NAME] é o nome do arquivo criado na Etapa 3.
    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do intervalo a partir do qual você quer remover o acesso de membro. Por exemplo, my-bucket.

Como usar o Cloud IAM com projetos

Nas seções a seguir, mostramos como concluir tarefas básicas do Cloud IAM em projetos. Observe que essas tarefas usam um comando de linha de comando diferente, gcloud, e um endpoint separado, cloudresourcemanager.googleapis.com, em comparação com a maioria das tarefas do Cloud Storage.

Como adicionar um membro a uma política no nível do projeto

Para ver a lista de papéis associados ao Cloud Storage, consulte Papéis do Cloud IAM. Para ver informações sobre entidades a que você concede papéis do Cloud IAM, consulte Tipos de membros.

Console

  1. Abra o navegador de IAM e administrador no console do Google Cloud Platform.
    Abra o navegador de IAM e administrador
  2. Selecione o projeto onde você quer adicionar um membro.

    Adição de um membro a um projeto.

  3. Na caixa de diálogo Adicionar membros, especifique o nome da entidade que receberá acesso.

    Adicione caixa de diálogo de membro.

  4. Na lista suspensa Selecionar um papel, defina as permissões apropriadas para o membro da equipe.

    Os papéis que afetam os intervalos e objetos do Cloud Storage estão nos submenus Projeto e Armazenamento.

  5. Clique em Adicionar.

gsutil

As políticas do Cloud IAM para envolvidos no projeto são gerenciadas por meio do comando gcloud, que faz parte do SDK do Google Cloud. Para adicionar uma política para envolvidos no projeto, use gcloud beta projects add-iam-policy-binding.

JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json com as informações a seguir:

    {
      "policy": {
        "version": "0",
        "bindings": {
          "role": "[IAM_ROLE]",
          "members": "[MEMBER_NAME]"
        },
      }
    }

    Em que:

    • [IAM_ROLE] é o papel do IAM que você concede ao membro. Por exemplo, roles/storage.objectCreator.
    • [MEMBER_NAME] é o tipo e o nome do membro ao qual você concede acesso ao projeto. Por exemplo, user:jane@gmail.com.
  3. Use cURL para chamar a API Resource Manager com uma solicitação POST setIamPolicy:

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Type: application/json" \
      "https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT_NAME]:setIamPolicy"

    Em que:

    • [JSON_FILE_NAME] é o nome do arquivo criado na Etapa 2.
    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [PROJECT_NAME] é o nome do projeto ao qual você concede acesso de membro. Por exemplo, my-project.

Como ver a política do Cloud IAM de um projeto

Console

  1. Abra o navegador de IAM e administrador no console do Google Cloud Platform.
    Abra o navegador de IAM e administrador
  2. Selecione o projeto cuja política você quer ver.

  3. Use a lista suspensa associada a cada papel individual para ver quais membros receberam o papel. Ou use a caixa de diálogo Pesquisar membros para filtrar os resultados.

gsutil

As políticas do Cloud IAM para envolvidos no projeto são gerenciadas por meio do comando gcloud, que faz parte do SDK do Google Cloud. Para exibir a política do Cloud IAM de um projeto, use o comando gcloud beta projects get-iam-policy.

JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API Resource Manager com uma solicitação POST getIamPolicy:

    curl -X POST \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Length: 0" \
      "https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT_NAME]:getIamPolicy"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [PROJECT_NAME] é o nome do projeto ao qual você concede acesso de membro. Por exemplo, my-project.

Como remover um membro de uma política para envolvidos no projeto

Console

  1. Abra o navegador de IAM e administrador no console do Google Cloud Platform.
    Abra o navegador de IAM e administrador
  2. Selecione o projeto cujo membro você quer remover.

    Adição de um membro a um projeto.

  3. Na caixa de diálogo Pesquisar membros, especifique o nome do membro de quem você quer revogar o acesso.

  4. Nos resultados, abaixo da pesquisa, passe o cursor do mouse sobre o membro a ser removido e clique no ícone de lixeira exibido.

    Remova um membro de um projeto.

  5. Na janela de sobreposição que aparece, clique em Remover.

gsutil

As políticas do Cloud IAM para envolvidos no projeto são gerenciadas por meio do comando gcloud, que faz parte do SDK do Google Cloud. Para remover uma política para envolvidos no projeto, use gcloud beta projects remove-iam-policy-binding.

JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Receba a política atual aplicada ao projeto. Para isso, use cURL para chamar a API Resource Manager com uma solicitação POST getIamPolicy:

    curl -X POST \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Length: 0" \
      "https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT_NAME]:getIamPolicy"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [PROJECT_NAME] é o nome do projeto ao qual você quer adicionar acesso de membro. Por exemplo, my-project.
  3. Crie um arquivo .json com a política que você recuperou na etapa anterior.

  4. Edite o arquivo .json para remover o membro da política.

  5. Use cURL para chamar a API Resource Manager com uma solicitação POST setIamPolicy:

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Type: application/json" \
      "https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT_NAME]:setIamPolicy"

    Em que:

    • [JSON_FILE_NAME] é o nome do arquivo criado na Etapa 2.
    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [PROJECT_NAME] é o nome do projeto ao qual você quer conceder acesso de membro. Por exemplo, my-project.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.