Cloud IAM-Berechtigungen verwenden

Auf dieser Seite wird beschrieben, wie Sie den Zugriff auf Buckets und Objekte mithilfe von Cloud Identity and Access Management (Cloud IAM) steuern. Mit Cloud IAM können Sie bestimmen, wer Zugriff auf Ihre Buckets und Objekte erhält. Weitere Informationen zu Cloud IAM für Cloud Storage finden Sie in der Übersicht über Cloud IAM .

Unter Übersicht über die Zugriffssteuerung werden weitere Möglichkeiten beschrieben, den Zugriff auf Buckets und Objekte zu kontrollieren. Informationen über das Steuern des Zugriffs auf einzelne Objekte in Ihren Buckets finden Sie unter Access Control Lists.

IAM mit Buckets verwenden

In den folgenden Abschnitten wird beschrieben, wie Sie grundlegende IAM-Aufgaben an Buckets ausführen.

Mitglieder zu einer Richtlinie auf Bucket-Ebene hinzufügen

Eine Liste der mit Cloud Storage verknüpften Rollen finden Sie unter Cloud IAM-Rollen. Weitere Informationen zu Entitäten, denen Sie IAM-Rollen zuweisen, finden Sie unter Mitgliedstypen.

Console

  1. Öffnen Sie in der Google Cloud Platform Console den Cloud Storage-Browser.
    Zum Cloud Storage-Browser
  2. Klicken Sie auf das Dreipunkt-Menü des Buckets, für den Sie einem Mitglied eine Rolle zuweisen möchten.

    Klicken Sie am rechten Ende der Zeile des Buckets auf das Symbol mit den drei senkrecht angeordneten Punkten, um dieses Dreipunkt-Menü zu öffnen.

  3. Wählen Sie Bucket-Berechtigungen bearbeiten.

  4. Geben Sie in das Feld Mitglieder hinzufügen eine oder mehrere Identitäten ein, die Zugriff auf den Bucket erhalten sollen.

    Dialogfeld zum Hinzufügen von Mitgliedern

  5. Wählen Sie aus dem Drop-down-Menü Rolle auswählen eine oder mehrere Rollen aus. Die ausgewählten Rollen werden in der Ansicht mit einer kurzen Beschreibung ihrer jeweiligen Berechtigungen angezeigt.

  6. Klicken Sie auf Hinzufügen.

gsutil

Führen Sie folgenden gsutil iam ch-Befehl aus:

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

Dabei gilt:

  • [MEMBER_TYPE] ist der Typ des Mitglieds, dem Sie Zugriff auf den Bucket gewähren. Beispiel: user.
  • [MEMBER_NAME] ist der Name des Mitglieds, dem Sie Zugriff auf den Bucket gewähren. Beispiel: jane@gmail.com.
  • [IAM_ROLE] ist die IAM-Rolle, die Sie dem Mitglied gewähren. Beispiel: roles/storage.objectCreator.
  • [BUCKET_NAME] ist der Name des Buckets, auf den Sie dem Mitglied Zugriff gewähren. Beispiel: my-bucket.

Weitere Beispiele zum Formatieren von [MEMBER_TYPE]:[MEMBER_NAME]:[IAM_ROLE] finden Sie auf der Referenzseite zu gsutil iam ch.

Codebeispiele

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

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#

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.

# 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. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Erstellen Sie eine JSON-Datei, die die folgenden Informationen enthält:

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

    Dabei gilt:

    • [IAM_ROLE] ist die IAM-Rolle, die Sie dem Mitglied gewähren. Beispiel: roles/storage.objectCreator.
    • [MEMBER_NAME] ist der Name des Mitglieds, dem Sie Zugriff auf den Bucket gewähren. Beispiel: jane@gmail.com.

      Weitere Beispiele zum Formatieren von [MEMBER_NAME] finden Sie hier im Abschnitt zu Mitgliedern.

  3. Verwenden Sie cURL, um die JSON API mit einer PUT setIamPolicy-Anfrage aufzurufen:

    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"

    Dabei gilt:

    • [JSON_FILE_NAME] ist der Name der Datei, die Sie in Schritt 2 erstellt haben.
    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [BUCKET_NAME] ist der Name des Buckets, auf den Sie dem Mitglied Zugriff gewähren. Beispiel: my-bucket.

Cloud-IAM-Richtlinie für einen Bucket ansehen

Console

  1. Öffnen Sie in der Google Cloud Platform Console den Cloud Storage-Browser.
    Zum Cloud Storage-Browser
  2. Klicken Sie auf das Dreipunkt-Menü des Buckets, um Mitglieder aufzurufen, denen eine Rolle zugewiesen wurde.

    Klicken Sie ganz rechts neben dem Bucket-Namen auf das Symbol mit den drei senkrecht angeordneten Punkten, um dieses Dreipunkt-Menü zu öffnen.

  3. Wählen Sie Bucket-Berechtigungen bearbeiten.

  4. Maximieren Sie die gewünschte Rolle, um die Mitglieder anzuzeigen, denen diese Rolle zugewiesen wurde.

  5. Optional können Sie die Suchleiste verwenden, um die Ergebnisse nach Rollen oder Mitgliedern zu filtern.

    Bei der Suche nach Mitgliedern werden im Suchergebnis alle Rollen angezeigt, die dem jeweiligen Mitglied zugewiesen wurden.

gsutil

Führen Sie folgenden gsutil iam get-Befehl aus:

gsutil iam get gs://[BUCKET_NAME]

Dabei ist [BUCKET_NAME] der Name des Buckets, dessen Cloud IAM-Richtlinie Sie ansehen möchten. Beispiel: my-bucket.

Codebeispiele

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

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#

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.

# 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. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Verwenden Sie cURL, um die JSON API mit einer GET getIamPolicy-Anfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [BUCKET_NAME] ist der Name des Buckets, dessen Cloud IAM-Richtlinie Sie ansehen möchten. Beispiel: my-bucket.

Mitglieder aus einer Richtlinie auf Bucket-Ebene entfernen

Console

  1. Öffnen Sie in der Google Cloud Platform Console den Cloud Storage-Browser.
    Zum Cloud Storage-Browser
  2. Klicken Sie auf das Dreipunkt-Menü des Buckets, aus dem Sie die Rolle eines Mitglieds entfernen möchten.

    Klicken Sie ganz rechts neben dem Bucket-Namen auf das Symbol mit den drei senkrecht angeordneten Punkten, um dieses Dreipunkt-Menü zu öffnen.

  3. Wählen Sie Bucket-Berechtigungen bearbeiten.

  4. Erweitern Sie die Rolle, aus der Sie ein Mitglied entfernen möchten.

  5. Bewegen Sie den Mauszeiger auf das Mitglied und klicken Sie auf das angezeigte Papierkorbsymbol.

    Mitglied aus einem Projekt entfernen

  6. Klicken Sie in dem nun eingeblendeten Fenster auf Entfernen.

gsutil

Verwenden Sie den Befehl gsutil iam ch mit dem Flag -d:

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

Dabei gilt:

  • [MEMBER_TYPE] ist der Typ des Mitglieds, das Sie aus der Richtlinie entfernen. Beispiel: user.
  • [MEMBER_NAME] ist der Name des Mitglieds, das Sie aus der Richtlinie entfernen. Beispiel: jane@gmail.com.
  • [BUCKET_NAME] ist der Name des Buckets, auf den das Mitglied keinen Zugriff mehr haben soll. Beispiel: my-bucket.

Weitere Beispiele zum Formatieren von [MEMBER_TYPE]:[MEMBER_NAME] finden Sie auf der Referenzseite zu gsutil iam ch.

Codebeispiele

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

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#

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.

# 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. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Rufen Sie die Richtlinie ab, die für Ihr Projekt gilt. Verwenden Sie dazu cURL, um die JSON API mit einer GET getIamPolicy-Anfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [BUCKET_NAME] ist der Name des Buckets, dessen Cloud IAM-Richtlinie Sie ansehen möchten. Beispiel: my-bucket.
  3. Erstellen Sie eine JSON-Datei mit der Richtlinie, die Sie im vorherigen Schritt abgerufen haben.

  4. Entfernen Sie in der JSON-Datei das gewünschte Mitglied aus der Richtlinie.

  5. Verwenden Sie cURL, um die JSON API mit einer PUT setIamPolicy-Anfrage aufzurufen:

    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"

    Dabei gilt:

    • [JSON_FILE_NAME] ist der Name der Datei, die Sie in Schritt 3 erstellt haben.
    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [BUCKET_NAME] ist der Name des Buckets, auf den das Mitglied keinen Zugriff mehr haben soll. Beispiel: my-bucket.

IAM mit Projekten verwenden

In den folgenden Abschnitten wird beschrieben, wie Sie grundlegende IAM-Aufgaben für Projekte ausführen. Bei diesen Aufgaben wird im Gegensatz zu den meisten Cloud Storage-Aufgaben ein anderer Befehlszeilenbefehl (gcloud) und ein anderer Endpunkt (cloudresourcemanager.googleapis.com) verwendet.

Mitglieder zu einer Richtlinie auf Projektebene hinzufügen

Eine Liste der mit Cloud Storage verknüpften Rollen finden Sie unter Cloud IAM-Rollen. Weitere Informationen zu Entitäten, denen Sie IAM-Rollen zuweisen, finden Sie unter Mitgliedstypen.

Console

  1. Öffnen Sie in der Google Cloud Platform Console den Browser IAM & Verwaltung.
    Zum Browser "IAM & Verwaltung"
  2. Wählen Sie das Projekt aus, dem Sie ein Mitglied hinzufügen möchten.

    Mitglied zu einem Projekt hinzufügen

  3. Geben Sie im Dialogfeld Add Members (Mitglieder hinzufügen) den Namen der Entität an, der Sie Zugriff gewähren möchten.

    Dialogfeld zum Hinzufügen von Mitgliedern

  4. Wählen Sie im Drop-down-Menü Rolle auswählen die Berechtigungen aus, die Sie dem Teammitglied gewähren möchten.

    Die Rollen für Cloud Storage-Buckets und -Objekte finden Sie in den Untermenüs Projekt und Storage.

  5. Klicken Sie auf Hinzufügen.

gsutil

Cloud IAM-Richtlinien auf Projektebene werden über den gcloud-Befehl verwaltet, der Teil des Google Cloud SDK ist. Wenn Sie eine Richtlinie auf Projektebene hinzufügen möchten, verwenden Sie gcloud beta projects add-iam-policy-binding.

JSON

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Erstellen Sie eine JSON-Datei, die die folgenden Informationen enthält:

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

    Dabei gilt:

    • [IAM_ROLE] ist die IAM-Rolle, die Sie dem Mitglied gewähren. Beispiel: roles/storage.objectCreator.
    • [MEMBER_NAME] ist der Typ und der Name des Mitglieds, dem Sie Zugriff auf das Projekt gewähren. Beispiel: user:jane@gmail.com.
  3. Verwenden Sie cURL, um die Resource Manager API mit einer POST setIamPolicy-Anfrage aufzurufen:

    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"

    Dabei gilt:

    • [JSON_FILE_NAME] ist der Name der Datei, die Sie in Schritt 2 erstellt haben.
    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [PROJECT_NAME] ist der Name des Projekts, auf das Sie dem Mitglied Zugriff gewähren. Beispiel: my-project.

Cloud-IAM-Richtlinie für einen Bucket anzeigen

Console

  1. Öffnen Sie in der Google Cloud Platform Console den Browser IAM & Verwaltung.
    Zum Browser "IAM & Verwaltung"
  2. Wählen Sie das Projekt aus, dessen Richtlinie Sie aufrufen möchten.

  3. Verwenden Sie das Drop-down-Menü der jeweiligen Rolle, um zu sehen, welche Mitglieder die betreffende Rolle haben. Sie können auch das Dialogfeld Mitglieder suchen nutzen, um die Ergebnisse zu filtern.

gsutil

Cloud IAM-Richtlinien auf Projektebene werden über den gcloud-Befehl verwaltet, der Teil des Google Cloud SDK ist. Verwenden Sie den Befehl gcloud beta projects get-iam-policy, um die Cloud IAM-Richtlinie eines Projekts anzusehen.

JSON

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Verwenden Sie cURL, um die Resource Manager API mit einer POST getIamPolicy-Anfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [PROJECT_NAME] ist der Name des Projekts, auf das Sie dem Mitglied Zugriff gewähren. Beispiel: my-project.

Mitglieder aus einer Richtlinie auf Projektebene entfernen

Console

  1. Öffnen Sie in der Google Cloud Platform Console den Browser IAM & Verwaltung.
    Zum Browser "IAM & Verwaltung"
  2. Wählen Sie das Projekt aus, aus dem Sie ein Mitglied entfernen möchten.

    Mitglied zu einem Projekt hinzufügen

  3. Geben Sie im Dialogfeld Mitglieder suchen den Namen des Mitglieds ein, dessen Zugriff Sie entfernen möchten.

  4. Bewegen Sie in der Ergebnisliste unter dem Suchfeld den Mauszeiger auf das Mitglied, das entfernt werden soll, und klicken Sie auf das angezeigte Papierkorbsymbol.

    Mitglied aus einem Projekt entfernen

  5. Klicken Sie in dem nun eingeblendeten Fenster auf Entfernen.

gsutil

Cloud IAM-Richtlinien auf Projektebene werden über den gcloud-Befehl verwaltet, der Teil des Google Cloud SDK ist. Wenn Sie eine Richtlinie auf Projektebene entfernen möchten, verwenden Sie gcloud beta projects remove-iam-policy-binding.

JSON

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Rufen Sie die Richtlinie ab, die für Ihr Projekt gilt. Verwenden Sie dazu cURL, um die Resource Manager API mit einer POST getIamPolicy-Anfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [PROJECT_NAME] ist der Name des Projekts, auf das das Mitglied keinen Zugriff mehr haben soll. Beispiel: my-project.
  3. Erstellen Sie eine JSON-Datei mit der Richtlinie, die Sie im vorherigen Schritt abgerufen haben.

  4. Entfernen Sie in der JSON-Datei das gewünschte Mitglied aus der Richtlinie.

  5. Verwenden Sie cURL, um die Resource Manager API mit einer POST setIamPolicy-Anfrage aufzurufen:

    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"

    Dabei gilt:

    • [JSON_FILE_NAME] ist der Name der Datei, die Sie in Schritt 2 erstellt haben.
    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [PROJECT_NAME] ist der Name des Projekts, auf das das Mitglied keinen Zugriff mehr haben soll. Beispiel: my-project.

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...