Aufbewahrungsrichtlinien verwenden und sperren

Übersicht

Auf dieser Seite wird beschrieben, wie Sie das Feature "Bucket-Sperre" verwenden. Sie erhalten unter anderem Informationen zum Arbeiten mit Aufbewahrungsrichtlinien und zum dauerhaften Sperren dieser Richtlinien für Buckets.

Hinweise

Bevor Sie die Funktion „Bucket Lock“ verwenden können, müssen Sie die Schritte in den folgenden Abschnitten ausführen.

Erforderliche Rollen abrufen

Bitten Sie Ihren Administrator, Ihnen die Rolle „Storage-Administrator“ (roles/storage.admin) für den Bucket zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwenden der Bucket-Sperre benötigen. Diese vordefinierte Rolle enthält die Berechtigungen, die für die Verwendung von Bucket Lock erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

  • storage.buckets.get
  • storage.buckets.list
    • Diese Berechtigung ist nur erforderlich, wenn Sie dieGoogle Cloud Console zum Ausführen der Schritte auf dieser Seite verwenden möchten.
  • storage.buckets.update

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen erhalten.

Informationen zum Zuweisen von Rollen für Buckets finden Sie unter IAM-Richtlinien für Buckets festlegen und verwalten.

Aufbewahrungsrichtlinie für einen Bucket festlegen

So fügen Sie eine Aufbewahrungsrichtlinie für einen Bucket hinzu oder ändern oder entfernen sie:

Console

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets, dessen Aufbewahrungsrichtlinie Sie ändern möchten.

  3. Wählen Sie oben auf der Seite den Tab Schutz aus.

  4. Legen Sie im Abschnitt Aufbewahrungsrichtlinie Ihre Aufbewahrungsrichtlinie fest:

    1. Wenn derzeit keine Aufbewahrungsrichtlinie für den Bucket gilt, klicken Sie auf den Link Aufbewahrungsrichtlinie festlegen. Wählen Sie eine Zeiteinheit und eine Zeitdauer für die Aufbewahrungsdauer aus.

    2. Wenn eine Aufbewahrungsrichtlinie derzeit für einen Bucket gilt, wird sie im Abschnitt angezeigt. Klicken Sie auf Bearbeiten, um die Aufbewahrungsdauer zu ändern, oder auf Löschen, um die Aufbewahrungsrichtlinie vollständig zu entfernen.

    Unter Aufbewahrungsdauer erfahren Sie, wie dieGoogle Cloud -Konsole Zeiteinheiten umrechnet.

Unter Fehlerbehebung erfahren Sie, wie Sie detaillierte Fehlerinformationen zu fehlgeschlagenen Cloud Storage-Vorgängen in der Google Cloud Console abrufen.

Befehlszeile

Führen Sie den Befehl gcloud storage buckets update mit dem geeigneten Flag aus.

gcloud storage buckets update gs://BUCKET_NAME FLAG

Dabei gilt:

  • BUCKET_NAME ist der Name des entsprechenden Buckets. Beispiel: my-bucket.

  • FLAG ist die gewünschte Einstellung für die Aufbewahrungsdauer des Buckets. Verwenden Sie eines der folgenden Formate:

    • --retention-period und eine Aufbewahrungsdauer, wenn Sie eine Aufbewahrungsrichtlinie hinzufügen oder ändern möchten. Beispiel: --retention-period=1d43200s.
    • --clear-retention-period, wenn Sie die Aufbewahrungsrichtlinie für den Bucket entfernen möchten.

Wenn der Vorgang erfolgreich war, sieht die Antwort so aus:

Updating gs://my-bucket/...
  Completed 1  

Clientbibliotheken

C++

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

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Im folgenden Beispiel wird eine Aufbewahrungsrichtlinie für einen Bucket festgelegt:

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name,
   std::chrono::seconds period) {
  StatusOr<gcs::BucketMetadata> original =
      client.GetBucketMetadata(bucket_name);
  if (!original) throw std::move(original).status();

  StatusOr<gcs::BucketMetadata> patched = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetRetentionPolicy(period),
      gcs::IfMetagenerationMatch(original->metageneration()));
  if (!patched) throw std::move(patched).status();

  if (!patched->has_retention_policy()) {
    std::cout << "The bucket " << patched->name()
              << " does not have a retention policy set.\n";
    return;
  }

  std::cout << "The bucket " << patched->name()
            << " retention policy is set to " << patched->retention_policy()
            << "\n";
}

Im folgenden Beispiel wird die Aufbewahrungsrichtlinie für einen Bucket entfernt:

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name) {
  StatusOr<gcs::BucketMetadata> original =
      client.GetBucketMetadata(bucket_name);
  if (!original) throw std::move(original).status();

  StatusOr<gcs::BucketMetadata> patched = client.PatchBucket(
      bucket_name, gcs::BucketMetadataPatchBuilder().ResetRetentionPolicy(),
      gcs::IfMetagenerationMatch(original->metageneration()));
  if (!patched) throw std::move(patched).status();

  if (!patched->has_retention_policy())