Usa permisos de Cloud IAM

En esta página, se describe cómo controlar el acceso a los depósitos y objetos mediante los permisos de Cloud Identity and Access Management (Cloud IAM). Cloud IAM te permite controlar quién tiene acceso a tus depósitos y objetos. Si deseas obtener más información sobre Cloud IAM para Cloud Storage, consulta la Descripción general de Cloud IAM.

Para obtener información sobre otras formas de controlar el acceso a los depósitos y objetos, consulta la Descripción general del control de acceso. Para obtener información sobre cómo controlar el acceso a objetos individuales en tus depósitos, consulta Listas de control de acceso.

Usa Cloud IAM con depósitos

En las siguientes secciones, se muestra cómo completar las tareas básicas de Cloud IAM en depósitos.

Agrega un miembro a una política a nivel de depósito

Para obtener una lista de las funciones asociadas con Cloud Storage, consulta Funciones de Cloud IAM. Para obtener información sobre las entidades a las que otorgas funciones de Cloud IAM, consulta Tipos de miembros.

Console

  1. Abre el navegador de Cloud Storage en Google Cloud Platform Console.
    Abrir el navegador de Cloud Storage
  2. Haz clic en el menú desplegable asociado con el depósito en el que deseas otorgarle una función a un miembro.

    El menú desplegable aparece como tres puntos verticales en el extremo derecho de la fila del depósito.

  3. Elige Edit bucket permissions (Editar permisos de depósito).

  4. En el campo Agregar miembros (Add members), ingresa una o más identidades que necesiten acceso a tu depósito.

    Cuadro de diálogo Agregar miembros

  5. Selecciona una función (o funciones) del menú desplegable Seleccionar una función. Las funciones que seleccionas aparecen en el panel con una descripción breve del permiso que otorgan.

  6. Haz clic en Agregar (Add).

gsutil

Usa el comando gsutil iam ch:

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

donde:

  • [MEMBER_TYPE] es el tipo de miembro al que le estás otorgando acceso al depósito. Por ejemplo, user.
  • [MEMBER_NAME] es el nombre del miembro al que le estás otorgando acceso al depósito. Por ejemplo, jane@gmail.com.
  • [IAM_ROLE] es la función de IAM que le estás otorgando al miembro. Por ejemplo, roles/storage.objectCreator.
  • [BUCKET_NAME] es el nombre del depósito para el cual el miembro recibirá acceso. Por ejemplo, my-bucket.

Para obtener más ejemplos sobre cómo dar formato a [MEMBER_TYPE]:[MEMBER_NAME]:[IAM_ROLE], consulta la página de referencia de gsutil iam ch.

Ejemplos de código

C++

Si deseas obtener más información, consulta la documentación de referencia de la API de 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#

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de 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);

// 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Crea un archivo .json que contenga la siguiente información:

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

    donde:

    • [IAM_ROLE] es la función de IAM que le estás otorgando al miembro. Por ejemplo, roles/storage.objectCreator.
    • [MEMBER_NAME] es el nombre del miembro al que le estás otorgando acceso al depósito. Por ejemplo, jane@gmail.com.

      Si deseas obtener más ejemplos sobre cómo dar formato a [MEMBER_NAME], consulta la sección para miembros aquí.

  3. Usa cURL para llamar a la API de JSON con una solicitud 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"

    donde:

    • [JSON_FILE_NAME] es el nombre del archivo que creaste en el paso 2.
    • [OAUTH2_TOKEN] es el token de acceso que generaste en el paso 1.
    • [BUCKET_NAME] es el nombre del depósito al cual le quieres otorgar acceso al miembro. Por ejemplo, my-bucket.

Visualiza la Política de Cloud IAM de un depósito

Console

  1. Abre el navegador de Cloud Storage en Google Cloud Platform Console.
    Abrir el navegador de Cloud Storage
  2. Haz clic en el menú desplegable asociado con el depósito en el que deseas ver los miembros de las funciones.

    El menú desplegable aparece como tres puntos verticales en el extremo derecho del nombre del depósito.

  3. Elige Edit bucket permissions.

  4. Expande la función deseada para ver los miembros que tiene asignados.

  5. (Opcional) Usa la barra de búsqueda para filtrar los resultados por función o por miembro.

    Si buscas por miembro, tus resultados mostrarán cada función a la que está asignado el miembro.

gsutil

Usa el comando gsutil iam get:

gsutil iam get gs://[BUCKET_NAME]

donde [BUCKET_NAME] es el nombre del depósito cuya Política de Cloud IAM deseas ver. Por ejemplo, my-bucket.

Ejemplos de código

C++

Si deseas obtener más información, consulta la documentación de referencia de la API de 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#

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de 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);

// 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API de JSON con una solicitud GET getIamPolicy:

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

    donde:

    • [OAUTH2_TOKEN] es el token de acceso que generaste en el paso 1.
    • [BUCKET_NAME] es el nombre del depósito cuya Política de Cloud IAM deseas ver. Por ejemplo, my-bucket.

Quita a un miembro de una política a nivel del depósito

Console

  1. Abre el navegador de Cloud Storage en Google Cloud Platform Console.
    Abrir el navegador de Cloud Storage
  2. Haz clic en el menú desplegable asociado con el depósito en el que deseas quitarle una función a un miembro.

    El menú desplegable aparece como tres puntos verticales en el extremo derecho del nombre del depósito.

  3. Elige Edit bucket permissions.

  4. Expande la función que contiene el miembro que quieres quitar.

  5. Coloca el cursor sobre el miembro y haz clic en el ícono de papelera que aparece.

    Quita a un miembro de un proyecto.

  6. En la ventana de superposición que aparece, haz clic en Quitar.

gsutil

Usa el comando gsutil iam ch con un marcador -d:

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

donde:

  • [MEMBER_TYPE] es el tipo de miembro que quitas de la política. Por ejemplo, user.
  • [MEMBER_NAME] es el nombre del miembro que quitas de la política. Por ejemplo, jane@gmail.com.
  • [BUCKET_NAME] es el nombre del depósito del cual quitas el acceso al miembro. Por ejemplo, my-bucket.

Para obtener más ejemplos sobre cómo dar formato a [MEMBER_TYPE]:[MEMBER_NAME], consulta la página de referencia de gsutil iam ch.

Ejemplos de código

C++

Si deseas obtener más información, consulta la documentación de referencia de la API de 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#

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para 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. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Obtén la política existente aplicada a tu proyecto. Para ello, usa cURL para llamar a la API de JSON con una solicitud GET getIamPolicy:

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

    donde:

    • [OAUTH2_TOKEN] es el token de acceso que generaste en el paso 1.
    • [BUCKET_NAME] es el nombre del depósito cuya Política de Cloud IAM deseas ver. Por ejemplo, my-bucket.
  3. Crea un archivo .json que contenga la política que recuperaste en el paso anterior.

  4. Edita el archivo .json para quitar al miembro de la política.

  5. Usa cURL para llamar a la API de JSON con una solicitud 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"

    donde:

    • [JSON_FILE_NAME] es el nombre del archivo que creaste en el paso 3.
    • [OAUTH2_TOKEN] es el token de acceso que generaste en el paso 1.
    • [BUCKET_NAME] es el nombre del depósito para el cual quieres quitar el acceso al miembro. Por ejemplo, my-bucket.

Cómo usar Cloud IAM con proyectos

En las siguientes secciones, se muestra cómo completar tareas básicas de Cloud IAM en proyectos. Ten en cuenta que estas tareas utilizan un comando diferente de la línea de comandos, gcloud, y un extremo diferente, cloudresourcemanager.googleapis.com, en comparación con la mayoría de las tareas de Cloud Storage.

Agrega un miembro a una política a nivel de proyecto

Para obtener una lista de las funciones asociadas con Cloud Storage, consulta Funciones de Cloud IAM. Para obtener información sobre las entidades a las que otorgas funciones de Cloud IAM, consulta Tipos de miembros.

Console

  1. Abre el navegador IAM y administración en Google Cloud Platform Console.
    Abrir el navegador IAM y administración
  2. Selecciona el proyecto al que deseas agregar un miembro.

    Agrega un miembro a un proyecto.

  3. En el cuadro de diálogo Agregar miembros (Add members), especifica el nombre de la entidad a la que le otorgas acceso.

    Cuadro de diálogo Agregar miembros

  4. En el menú desplegable Seleccionar una función (Select a role), establece los permisos adecuados para el miembro del equipo.

    Las funciones que afectan a los depósitos y objetos de Cloud Storage se encuentran en los submenús Project (Proyecto) y Storage (Almacenamiento).

  5. Haz clic en Agregar (Add).

gsutil

Las Políticas de Cloud IAM a nivel de proyecto se administran a través del comando de gcloud, que forma parte del SDK de Google Cloud. Para agregar una política a nivel de proyecto, usa gcloud beta projects add-iam-policy-binding.

JSON

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Crea un archivo .json que contenga la siguiente información:

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

    donde:

    • [IAM_ROLE] es la función de IAM que le estás otorgando al miembro. Por ejemplo, roles/storage.objectCreator.
    • [MEMBER_NAME] es el tipo y nombre del miembro al que le estás otorgando acceso al proyecto. Por ejemplo, user:jane@gmail.com.
  3. Usa cURL para llamar a la API de Resource Manager con una solicitud 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"

    donde:

    • [JSON_FILE_NAME] es el nombre del archivo que creaste en el paso 2.
    • [OAUTH2_TOKEN] es el token de acceso que generaste en el paso 1.
    • [PROJECT_NAME] es el nombre del proyecto al que le estás otorgando acceso de miembro. Por ejemplo, my-project.

Visualiza la Política de Cloud IAM de un proyecto

Console

  1. Abre el navegador IAM y administración en Google Cloud Platform Console.
    Abrir el navegador IAM y administración
  2. Selecciona el proyecto cuya política deseas ver.

  3. Usa el menú desplegable asociado con funciones individuales para ver qué miembros tienen la función, o usa el cuadro de diálogo Buscar miembros para filtrar tus resultados.

gsutil

Las Políticas de Cloud IAM a nivel de proyecto se administran a través del comando de gcloud, que forma parte del SDK de Google Cloud. Para ver las Políticas de Cloud IAM de un proyecto, usa el comando gcloud beta projects get-iam-policy.

JSON

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API de Resource Manager con una solicitud POST getIamPolicy:

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

    donde:

    • [OAUTH2_TOKEN] es el token de acceso que generaste en el paso 1.
    • [PROJECT_NAME] es el nombre del proyecto al que le estás otorgando acceso de miembro. Por ejemplo, my-project.

Quita a un miembro de una política a nivel de proyecto

Console

  1. Abre el navegador IAM y administración en Google Cloud Platform Console.
    Abrir el navegador IAM y administración
  2. Selecciona el proyecto en el que deseas quitar a un miembro.

    Agrega un miembro a un proyecto.

  3. En el cuadro de diálogo Buscar miembros, especifica el nombre del miembro cuyo acceso quieres quitar.

  4. En los resultados debajo de la búsqueda, coloca el cursor sobre el miembro que quieres quitar y haz clic en el ícono de papelera que aparece.

    Quita a un miembro de un proyecto.

  5. En la ventana de superposición que aparece, haz clic en Quitar.

gsutil

Las Políticas de Cloud IAM a nivel de proyecto se administran a través del comando de gcloud, que forma parte del SDK de Google Cloud. Para quitar una política a nivel de proyecto, usa gcloud beta projects remove-iam-policy-binding.

JSON

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Obtén la política existente aplicada a tu proyecto. Para ello, usa cURL para llamar a la API de Resource Manager con una solicitud POST getIamPolicy:

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

    donde:

    • [OAUTH2_TOKEN] es el token de acceso que generaste en el paso 1.
    • [PROJECT_NAME] es el nombre del proyecto al que deseas agregar acceso de miembro. Por ejemplo, my-project.
  3. Crea un archivo .json que contenga la política que recuperaste en el paso anterior.

  4. Edita el archivo .json para quitar al miembro de la política.

  5. Usa cURL para llamar a la API de Resource Manager con una solicitud 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"

    donde:

    • [JSON_FILE_NAME] es el nombre del archivo que creaste en el paso 2.
    • [OAUTH2_TOKEN] es el token de acceso que generaste en el paso 1.
    • [PROJECT_NAME] es el nombre del proyecto al que deseas otorgar acceso de miembro. Por ejemplo, my-project.

Qué sigue

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.