Bereinigungsrichtlinien konfigurieren

In einer Artifact Registry-Bereinigungsrichtlinie sind Kriterien für das automatische Löschen definiert Artefaktversionen, die Sie nicht mehr benötigen, oder Artefakte, die Sie behalten möchten speichern können.

Bereinigungsrichtlinien sind nützlich, wenn Sie viele Versionen Ihrer Artefakte speichern, aber Sie müssen nur bestimmte Versionen behalten, die Sie für die Produktion veröffentlichen. Ich kann Löschrichtlinien mit Kriterien zum Löschen von Artefakten und Richtlinien beibehalten mit Kriterien für die Beibehaltung von Artefakten.

Wenn eine Artefaktversion den Kriterien sowohl in einer Löschrichtlinie als auch in einem Keep entspricht wird die Keep-Richtlinie in Artifact Registry angewendet.

Durch Löschrichtlinien ausgelöste Löschungen werden auf Ihre Artifact Registry angerechnet pro Projekt Löschanfragekontingent ist auf 300.000 Löschvorgänge pro Repository und Tag beschränkt.

Zeitplan für die Anwendung der Richtlinie

Artifact Registry löscht und behält Artefakte, die Ihrer Bereinigung entsprechen mit einem regelmäßig ausgeführten Hintergrundjob. Änderungen werden wirksam innerhalb von etwa einem Tag an.

Maximale Anzahl von Bereinigungsrichtlinien pro Repository

Sie können maximal 10 Bereinigungsrichtlinien auf ein Repository anwenden.

Unterstützte Formate

Sie können eine Bereinigungsrichtlinie für Standard- und Remote-Repositories festlegen für alle Repository-Formate.

Erforderliche Rollen

So erhalten Sie die Berechtigungen, die Sie zum Anwenden oder Entfernen von Bereinigungsrichtlinien benötigen: bitten Sie Ihren Administrator, Ihnen IAM-Rolle Artifact Registry-Administrator (roles/artifactregistry.admin) für das Repository-Projekt. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierte Rolle enthält Berechtigungen zum Anwenden oder Entfernen von Bereinigungsrichtlinien Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Bereinigungsrichtlinien anzuwenden oder zu entfernen:

  • artifactregistry.repositories.update
  • So löschen Sie Artefakte, die die Kriterien in einer Bereinigungsrichtlinie erfüllen: artifactregistry.versions.delete

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

Die Standardrolle für den Artifact Registry-Dienst-Agent enthält die Berechtigung artifactregistry.versions.delete, die zum Löschen von Images, die die Kriterien einer Bereinigungsrichtlinie erfüllen.

Richtliniendatei erstellen

Eine Richtliniendatei ist eine JSON-Datei, in der Ihre Richtlinien zum Löschen und Beibehalten definiert sind. Sie können eine Richtliniendatei erstellen, indem Sie eine JSON-Datei erstellen und bearbeiten und dann die Methode Google Cloud CLI, um die Richtlinie anzuwenden, oder die Google Cloud Console verwenden. Löschen legen die Bedingungen zum Löschen von Artefakten fest. Vorgabe von Richtlinien beibehalten Bedingungen zum Beibehalten eines Artefakts oder eine Reihe aktueller Versionen, die beibehalten werden sollen. Ich können Bedingungen und die neuesten Versionen nicht in derselben Keep-Richtlinie verwenden.

Löschrichtlinie erstellen

Mit einer Löschrichtlinie können Sie das Mindest- oder Höchstalter für Löschen von Artefakten und zusätzliche Filterkriterien zum Einschränken der Richtlinie auf bestimmte Artefakte.

Wenn bestimmte Artefakte aus irgendeinem Grund nicht gelöscht werden sollen, erstellen Sie eine bedingte Beibehaltungsrichtlinie oder eine aktuelle Version enthalten sowohl eine Richtlinie als auch eine Löschrichtlinie. Wenn ob ein Artefakt den Kriterien der Lösch- und der Keep-Richtlinie entspricht. dass das Artefakt erhalten bleibt.

Console

Sie können eine Löschrichtlinie für ein neues oder ein vorhandenes Repository erstellen.

So fügen Sie einem vorhandenen Repository eine Löschrichtlinie hinzu:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie das Repository in der Liste der Repositories aus und klicken Sie auf Repository bearbeiten.

  3. Wählen Sie im Bereich Bereinigungsrichtlinien die Option Probelauf aus, um die neue bevor Sie die Artefakte löschen. Weitere Informationen zum Anzeigen der Testergebnisse siehe Probelauf.

    Wenn Sie sicher sind, dass Ihre Richtlinie wie vorgesehen funktioniert, bearbeiten Sie die Repository-Einstellungen und wählen Sie Artefakte löschen aus, um die Bereinigungsrichtlinie und löschen Sie die ausgewählten Artefakte.

  4. Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:

    • Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name darf innerhalb von die Gruppe von Richtlinien, die Sie auf ein Repository anwenden.
    • Richtlinientyp: Wählen Sie Bedingtes Löschen aus.
    • Tag-Status: Gibt an, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten. Artefakte werden in folgenden Fällen getaggt: das Hoch- oder Herunterladen eines Images in ein Repository. Weitere Informationen zu Docker finden Sie unter Containerkonzepte.

      • Beliebiger Tag-Status: Der Tag-Status wird ignoriert und gilt sowohl für getaggte als auch nicht getaggte Artefakte.
      • Getaggt: Gilt nur für getaggte Artefakte.
      • Ungetaggt: Gilt nur für Artefakte ohne Tags.

      Formate, die keine Tags unterstützen, werden als untagged behandelt. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte gelöscht werden.

      Weitere Informationen zum Tag-Status Bereinigungsrichtlinien finden Sie in der TagState-Referenz

  5. Sie können die Löschrichtlinie folgendermaßen definieren:

    • Tag-Präfixe: ist eine durch Kommas getrennte Liste von Tag-Präfixe. So würden z. B. die Präfixe test und staging übereinstimmen Bilder mit den Tags testenv und staging-1.5. tagState muss festgelegt werden auf TAGGED, um Tag-Präfixe zu verwenden.
    • Versionspräfixe: – eine durch Kommas getrennte Liste der Artefaktversion Präfixe. So würde z. B. v1 und v2 den Versionen v1.5 entsprechen, v2.0alpha und v10.2.
    • Paketpräfixe: Eine Liste von Artefaktnamenspräfixen. Sie können Sie können mehrere Präfixe eingeben, indem Sie zwischen den Präfixen Enter oder , drücken. Beispiel: red, blue würde die beiden Präfixe red und blue erstellen. würden den Artefaktnamen red-team, redis, und bluebird.
    • Älter als: Dies ist die Mindestzeit, seit die die Version eines Artefakts erstellt wurde. im Repository erstellt und als Dauer angegeben. Beispiel: 30d entspricht 30 Tagen. Sie können eine Dauer in Sekunden, Minuten, Stunden oder Tage durch Anfügen von s, m, h bzw. d an.
    • Neuer als: Dies ist die maximale Zeit seit der Version einer Artefakt wurde im Repository erstellt, angegeben als Dauer. Beispiel: 30d entspricht 30 Tagen.
  6. Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.

  7. Klicken Sie auf Aktualisieren.

    Ihre Bereinigungsrichtlinie wird auf das Repository angewendet. Sie können Ihre Bereinigungsrichtlinien im Abschnitt Repository-Details, indem Sie auf Mehr anzeigen.

JSON

{
  "name": "DELETE_POLICY_NAME",
  "action": {"type": "Delete"},
  "condition": {
    "tagState": "TAG_STATUS",
    "tagPrefixes": ["TAG_PREFIXES"],
    "versionNamePrefixes": ["VERSION_PREFIXES"],
    "packageNamePrefixes": ["PACKAGE_PREFIXES"],
    "olderThan": "OLDER_THAN_DURATION",
    "newerThan": "NEWER_THAN_DURATION"
  }
}

Eine Löschrichtlinie muss einen Namen, eine Aktion und mindestens eine Bedingung enthalten.

name
Im Snippet für die Löschrichtlinie ist DELETE_POLICY_NAME der Name der Richtlinie. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden.
action
Für eine Löschrichtlinie ist der Wert {"type": "Delete"}.
condition
Geben Sie mindestens eine der folgenden Bedingungen an:
  • tagState: TAG_STATUS gibt an, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten. Artefakte werden in folgenden Fällen getaggt: das Hoch- oder Herunterladen eines Images in ein Repository. Unterstützte Werte:

    • tagged: gilt nur für getaggte Artefakte.
    • untagged: gilt nur für Artefakte ohne Tags.
    • any: Ignoriert den Tag-Status und gilt sowohl für getaggte als auch für nicht getaggte Artefakte.

    Formate, die keine Tags unterstützen, werden als untagged behandelt. Wenn ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden.

    Weitere Informationen zu Docker-Tags finden Sie unter Containerkonzepte:

  • tagPrefixes: TAG_PREFIXES ist eine durch Kommas getrennte Liste von Tag-Präfixe. "test", "staging" würde z. B. Bilder suchen, die Tags "testenv" und "staging-1.5". tagState muss festgelegt werden auf TAGGED, um Tag-Präfixe zu verwenden.

  • versionNamePrefixes: VERSION_PREFIXES ist ein durch Kommas getrennte Liste von Präfixen der Artefaktversion. Beispiel: "v1", "v2" würde den Versionen "v1.5", "v2.0alpha" und "v10.2" entsprechen.

  • packageNamePrefixes: PACKAGE_PREFIXES ist ein kommagetrennte Liste von Artefaktnamenspräfixen. Beispiel: "red", "blue" würde mit den Artefaktnamen "red-team", "redis" und "bluebird" übereinstimmen.

  • olderThan: OLDER_THAN_DURATION ist die Mindestzeit seit die Version eines Artefakts im Repository erstellt und als Dauer angegeben. Beispiel: 30d entspricht 30 Tagen. Sie können eine Dauer in Sekunden, Minuten, Stunden oder Tage durch Anfügen von s, m, h bzw. d an.

  • newerThan: NEWER_THAN_DURATION ist die maximale Zeit seit Die Version eines Artefakts wurde im Repository erstellt, angegeben als Dauer Beispiel: 30d entspricht 30 Tagen.

Bedingte Keep-Richtlinie erstellen

Eine bedingte Keep-Richtlinie legt Kriterien zum Beibehalten von Artefakten fest. Notizen zusammen mit Löschrichtlinien, um Artefakte zu behalten, die gemäß den Spezifikationen Ihrer Löschrichtlinie gelöscht werden, die Sie behalten sollten. Wenn ein Artefakt die Kriterien für eine Löschrichtlinie und eine die Richtlinie beibehalten, wird das Artefakt beibehalten.

Console

Sie können eine Keep-Richtlinie für ein neues oder ein vorhandenes Repository erstellen.

So fügen Sie einem vorhandenen Repository eine Keep-Richtlinie hinzu:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie das Repository in der Liste der Repositories aus und klicken Sie auf Repository bearbeiten.

  3. Wählen Sie im Bereich Bereinigungsrichtlinien die Option Probelauf aus, um die neue bevor Sie die Artefakte löschen. Sie müssen mindestens eine Löschrichtlinie, um die Ergebnisse deiner Notizen anzusehen . Weitere Informationen zu den Ergebnissen des Tests siehe Probelauf.

    Wenn Sie sicher sind, dass Ihre Richtlinien wie vorgesehen funktionieren, bearbeiten Sie die Repository-Einstellungen und wählen Sie Artefakte löschen aus, um die Bereinigungsrichtlinien und Löschen der ausgewählten Artefakte.

  4. Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:

    • Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name darf innerhalb von die Gruppe von Richtlinien, die Sie auf ein Repository anwenden.
    • Richtlinientyp: Wählen Sie Bedingte Beibehaltung aus.
    • Tag-Status: Gibt an, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten. Artefakte werden in folgenden Fällen getaggt: das Hoch- oder Herunterladen eines Images in ein Repository. Weitere Informationen zu Docker finden Sie unter Containerkonzepte.

      • Beliebiger Tag-Status: Der Tag-Status wird ignoriert und gilt sowohl für getaggte als auch nicht getaggte Artefakte.
      • Getaggt: Gilt nur für getaggte Artefakte.
      • Ungetaggt: Gilt nur für Artefakte ohne Tags.

      Formate, die keine Tags unterstützen, werden als untagged behandelt. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte gelöscht werden. Weitere Informationen zum Tag-Status Bereinigungsrichtlinien finden Sie in der TagState-Referenz

  5. Sie können die Notizen-Richtlinie folgendermaßen definieren:

    • Tag-Präfixe: ist eine durch Kommas getrennte Liste von Tag-Präfixe. So würden z. B. die Präfixe test und staging übereinstimmen Bilder mit den Tags testenv und staging-1.5. tagState muss festgelegt werden auf TAGGED, um Tag-Präfixe zu verwenden.
    • Versionspräfixe: – eine durch Kommas getrennte Liste der Artefaktversion Präfixe. So würde z. B. v1 und v2 den Versionen v1.5 entsprechen, v2.0alpha und v10.2.
    • Paketpräfixe: ist eine durch Kommas getrennte Liste von Artefaktnamenspräfixen. Zum Beispiel würde red, blue mit den Artefaktnamen red-team, redis, und bluebird.
    • Älter als: Dies ist die Mindestzeit, seit die die Version eines Artefakts erstellt wurde. im Repository erstellt und als Dauer angegeben. Beispiel: 30d entspricht 30 Tagen. Sie können eine Dauer in Sekunden, Minuten, Stunden oder Tage durch Anfügen von s, m, h bzw. d an.
    • Neuer als: Dies ist die maximale Zeit seit der Version einer Artefakt wurde im Repository erstellt, angegeben als Dauer. Beispiel: 30d entspricht 30 Tagen.
  6. Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.

  7. Klicken Sie auf Aktualisieren.

    Ihre Bereinigungsrichtlinie wird auf das Repository angewendet.

JSON

Das Format ähnelt einer Löschrichtlinie. Bei einer Keep-Richtlinie Wert für action ist {"type": "Keep"}.

{
  "name": "KEEP_POLICY_NAME",
  "action": {"type": "Keep"},
  "condition": {
    "tagState": "TAG_STATUS",
    "tagPrefixes": ["TAG_PREFIXES"],
    "versionNamePrefixes": ["VERSION_PREFIXES"],
    "packageNamePrefixes": ["PACKAGE_PREFIXES"],
    "olderThan": "OLDER_THAN_DURATION",
    "newerThan": "NEWER_THAN_DURATION"
  }
}

Ersetzen Sie Folgendes:

  • KEEP_POLICY_NAME durch die Bereinigungsrichtlinie einen Namen. Der Name darf innerhalb von die Gruppe von Richtlinien, die Sie auf ein Repository anwenden.
  • TAG_STATUS durch den Tag-Status, der angibt, ob die Richtlinie sollte nach getaggten oder nicht getaggten Artefakten suchen. Artefakte sind beim Hoch- oder Herunterladen eines Images in ein oder aus einem Repository. Weitere Informationen zu Docker-Tags finden Sie unter Containerkonzepte:

    Folgende Optionen sind verfügbar:

    • tagged: gilt nur für getaggte Artefakte.
    • untagged: gilt nur für Artefakte ohne Tags.
    • any: gilt für alle Versionen

    Formate, die keine Tags unterstützen, werden als untagged behandelt. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte gelöscht werden. Weitere Informationen zum Tag-Status Bereinigungsrichtlinien finden Sie in der TagState-Referenz

  • TAG_PREFIXES durch eine durch Kommas getrennte Liste von Tag-Präfixe. So würden z. B. die Präfixe test und staging übereinstimmen Bilder mit den Tags testenv und staging-1.5. tagState muss festgelegt werden auf TAGGED, um Tag-Präfixe zu verwenden.

  • VERSION_PREFIXES durch eine durch Kommas getrennte Liste der Artefaktversion Präfixe. v1, v2 würde z. B. Versionen v1.5 entsprechen, v2.0alpha und v10.2.

  • PACKAGE_PREFIXES durch eine durch Kommas getrennte Liste von Artefaktnamen Präfixe. Zum Beispiel würde red, blue mit den Artefaktnamen red-team übereinstimmen, redis und bluebird.

  • OLDER_THAN_DURATION durch die Mindestzeit seit dem Version eines Artefakts wurde im Repository erstellt, angegeben als Dauer Beispiel: 30d entspricht 30 Tagen. Sie können die Dauer der Sekunden, Minuten, Stunden oder Tage durch Anfügen von s, m, h bzw. d an.
  • NEWER_THAN_DURATION durch die maximale Zeit seit dem Version eines Artefakts wurde im Repository erstellt, angegeben als Dauer Beispiel: 30d entspricht 30 Tagen.

Keep-Richtlinie für die neuesten Versionen erstellen

Sie können eine Keep-Richtlinie erstellen, um eine bestimmte Anzahl von Versionen beizubehalten. Sie können nicht Verwenden Sie die Kriterien Bedingte Beibehaltung und Neueste Versionen beibehalten. Richtlinien einhalten.

Sie können Richtlinien und Löschrichtlinien nutzen, um Artefakte zu behalten, die gemäß den Vorgaben Ihrer Löschrichtlinie gelöscht werden, behalten möchten. Wenn ein Artefakt die Kriterien für eine Löschrichtlinie und das Artefakt beibehalten wird.

Console

Sie können eine Richtlinie zum Beibehalten der neuesten Versionen für eine neue oder vorhandene zu erstellen.

So fügen Sie einem vorhandenen Repository eine Richtlinie zum Beibehalten der neuesten Versionen hinzu:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie das Repository in der Liste der Repositories aus und klicken Sie auf Repository bearbeiten.

  3. Wählen Sie im Bereich Bereinigungsrichtlinien die Option Probelauf aus, um die neue bevor Sie die Artefakte löschen. Sie müssen mindestens eine Löschrichtlinie, um die Ergebnisse deiner Notizen anzusehen . Weitere Informationen zu den Ergebnissen des Tests siehe Probelauf.

    Wenn Sie sicher sind, dass Ihre Richtlinien wie vorgesehen funktionieren, bearbeiten Sie die Repository-Einstellungen und wählen Sie Artefakte löschen aus, um die Bereinigungsrichtlinien und Löschen der ausgewählten Artefakte.

  4. Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:

    • Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name darf innerhalb von die Gruppe von Richtlinien, die Sie auf ein Repository anwenden.
    • Richtlinientyp: Wählen Sie Neueste Versionen beibehalten aus.
  5. Geben Sie im Feld Anzahl beibehalten die Anzahl der Versionen eines Artefakts ein die in Ihrem Repository aufbewahrt werden sollen.

  6. Optional: Wählen Sie Paketpräfixe aus, um die anzuwendenden Paketpräfixe anzugeben. der Keep-Richtlinie. Zum Beispiel würde red, blue mit Artefaktnamen übereinstimmen red-team, redis und bluebird.

  7. Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.

  8. Klicken Sie auf Aktualisieren.

    Ihre Bereinigungsrichtlinie wird auf das Repository angewendet. Sie können Ihre Bereinigungsrichtlinien im Abschnitt Repository-Details, indem Sie auf Mehr anzeigen.

JSON

Das Format ähnelt einer Löschrichtlinie. Bei einer Keep-Richtlinie Wert für action ist {"type": "Keep"}.

Eine Keep-Richtlinie zur Aufbewahrung einer bestimmten Anzahl von Versionen hat eine mostRecentVersions-Abschnitt anstelle eines condition-Abschnitts.

{
  "name": "KEEP_POLICY_NAME",
  "action": {"type": "Keep"},
  "mostRecentVersions": {
    "packageNamePrefixes": ["PACKAGE_PREFIXES"],
    "keepCount": MINIMUM_NUMBER
  }
}

Ersetzen Sie Folgendes:

  • KEEP_POLICY_NAME durch einen Namen für Ihre Notizen-Richtlinie. Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.
  • PACKAGE_PREFIXES durch die optionalen Paketpräfixe, die angewendet werden sollen der Keep-Richtlinie. Zum Beispiel würde red, blue mit Artefaktnamen übereinstimmen red-team, redis und bluebird.
  • MINIMUM_NUMBER durch die Anzahl der Versionen eines Artefakts die in Ihrem Repository aufbewahrt werden sollen.

Wenn Sie die Keep-Richtlinie auf alle Pakete in Ihrem Repository anwenden möchten, lassen Sie den Parameter packageNamePrefixes-Bedingung. Die angegebene Anzahl neuerer Versionen von werden alle Pakete in Ihrem Repository beibehalten.

Beispiel für eine Richtliniendatei

Das folgende Beispiel für eine Richtliniendatei enthält eine Löschrichtlinie und zwei Keep-Richtlinien.

  • Die Richtlinie „delete-prerelease“ entfernt Artefaktversionen 30 Tage nach dem Upload Das Artefakt beginnt mit dem String alpha oder v0.
  • Die Richtlinie keep-tagged-release behält Artefakte bei, die mit diesem Präfix getaggt sind release, deren Dateiname mit webapp oder mobile beginnt.
  • Die Richtlinie keep-minimum-versions behält die fünf neuesten Versionen von Artefakte, deren Dateiname mit webapp, mobile oder sandbox.
[
  {
    "name": "delete-prerelease",
    "action": {"type": "Delete"},
    "condition": {
      "tagState": "tagged",
      "tagPrefixes": ["alpha", "v0"],
      "olderThan": "30d"
    }
  },
  {
    "name": "keep-tagged-release",
    "action": {"type": "Keep"},
    "condition": {
      "tagState": "tagged",
      "tagPrefixes": ["release"],
      "packageNamePrefixes": ["webapp", "mobile"]
    }
  },
  {
    "name": "keep-minimum-versions",
    "action": {"type": "Keep"},
    "mostRecentVersions": {
      "packageNamePrefixes": ["webapp", "mobile", "sandbox"],
      "keepCount": 5
    }
  }
]

Richtlinien im Probelauf testen

Um Ihre Bereinigungsrichtlinien zu testen, können Sie Ihre Bereinigungsrichtlinie auf einen Probelauf in der Konsole oder führen Sie den Befehl gcloud artifacts set-cleanup-policies mit dem Flag --dry-run.

Um die Auswirkungen Ihrer Bereinigungsrichtlinien zu analysieren, können Sie die Audit-Logs zum Zugriff auf Artifact Registry-Daten Um Daten zu empfangen Auf Audit-Logs für Bereinigungsrichtlinien zugreifen, müssen Sie die Audit-Logs zum Datenzugriff für den Artifact Registry-Dienst vom Typ data write. Informationen zum Aktivieren von Audit-Logs zum Datenzugriff finden Sie unter Aktivieren Sie Audit-Logs.

Console

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie das Repository in der Liste der Repositories aus und klicken Sie auf Repository bearbeiten.

  3. Wählen Sie im Bereich Bereinigungsrichtlinien die Option Probelauf aus.

  4. Klicken Sie auf Bereinigungsrichtlinie hinzufügen und konfigurieren Sie die Optionen für Ihre Bedingtes Löschen Bedingte Beibehaltung oder Richtlinien für Neueste Versionen beibehalten:

  5. Klicken Sie auf Aktualisieren.

Wenn eine Löschrichtlinie zu einer BatchDeleteVersions-Aktion führt, wird der Parameter validateOnly ergibt "true".

Führen Sie den folgenden Befehl aus, um Audit-Logs für Probeläufe Ihrer Bereinigungsrichtlinien abzufragen: Befehl:

gcloud logging read 'protoPayload.serviceName="artifactregistry.googleapis.com" AND protoPayload.request.parent:"projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY" AND protoPayload.request.validateOnly=true' \
    --resource-names="projects/PROJECT_ID" \
    --project=PROJECT_ID

Die Ausgabe sollte so aussehen:

insertId: qwe123ty3
logName: projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access
operation:
  first: true
  id: projects/my-project/locations/us-west1/operations/12345abc-fb9b-4b6f-b02c-9a397ee807d4
  producer: artifactregistry.googleapis.com
protoPayload:
  '@type': type.googleapis.com/google.cloud.audit.AuditLog
  authenticationInfo:
    principalEmail: service-774919394028@gcp-sa-staging-artreg.iam.gserviceaccount.com
  authorizationInfo:
  - granted: true
    permission: artifactregistry.versions.delete
    resource: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
    resourceAttributes: {}
  methodName: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
  request:
    '@type': type.googleapis.com/google.devtools.artifactregistry.v1.BatchDeleteVersionsRequest
    names:
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:4bb3756e4e75dfbc3ced87521ed62b26d16fb4e17993ae6877165f2b6551fb55
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:e8185538b50df953529b300be4963b2c21158808becac7aa0d610f61de8ba701
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:7f7fb0a9453da49f831fe92eb8b1751be13acefe1bbd44cc3f0d63d41c422246
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:84ac871a34560b39dd7bde57b4d333f18a7e8c1b61c8d350c1fefeb1fcd2b3ac
parent: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
    validateOnly: true
  requestMetadata:
    callerIp: private
    callerSuppliedUserAgent: stubby_client
    destinationAttributes: {}
    requestAttributes:
      auth: {}
      time: '2023-05-26T04:31:21.909465579Z'
  resourceName: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
  serviceName: artifactregistry.googleapis.com
receiveTimestamp: '2023-05-26T04:31:22.641338594Z'
resource:
  labels:
    method: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
    project_id: my-project
    service: artifactregistry.googleapis.com
  type: audited_resource
severity: INFO
timestamp: '2023-05-26T04:31:21.909004200Z'

gcloud-CLI

Führen Sie den folgenden Befehl aus, um einen Probelauf mit Ihren Bereinigungsrichtlinien durchzuführen:

gcloud artifacts repositories set-cleanup-policies REPOSITORY \
    --project=PROJECT_ID \
    --location=LOCATION \
    --policy=POLICY_FILE \
    --dry-run

Ersetzen Sie Folgendes:

  • REPOSITORY durch den Namen des Repositorys.
  • Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts.
  • LOCATION mit dem regional oder multiregional Speicherort des Repositorys.

Wenn eine Löschrichtlinie zu einer BatchDeleteVersions-Aktion führt, wird der Parameter validateOnly ergibt "true".

Führen Sie den folgenden Befehl aus, um Audit-Logs für Probeläufe Ihrer Bereinigungsrichtlinien abzufragen: Befehl:

gcloud logging read 'protoPayload.serviceName="artifactregistry.googleapis.com" AND protoPayload.request.parent:"projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY" AND protoPayload.request.validateOnly=true' \
    --resource-names="projects/PROJECT_ID" \
    --project=PROJECT_ID

Die Ausgabe sollte so aussehen:

insertId: qwe123ty3
logName: projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access
operation:
  first: true
  id: projects/my-project/locations/us-west1/operations/12345abc-fb9b-4b6f-b02c-9a397ee807d4
  producer: artifactregistry.googleapis.com
protoPayload:
  '@type': type.googleapis.com/google.cloud.audit.AuditLog
  authenticationInfo:
    principalEmail: service-774919394028@gcp-sa-staging-artreg.iam.gserviceaccount.com
  authorizationInfo:
  - granted: true
    permission: artifactregistry.versions.delete
    resource: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
    resourceAttributes: {}
  methodName: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
  request:
    '@type': type.googleapis.com/google.devtools.artifactregistry.v1.BatchDeleteVersionsRequest
    names:
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:4bb3756e4e75dfbc3ced87521ed62b26d16fb4e17993ae6877165f2b6551fb55
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:e8185538b50df953529b300be4963b2c21158808becac7aa0d610f61de8ba701
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:7f7fb0a9453da49f831fe92eb8b1751be13acefe1bbd44cc3f0d63d41c422246
    - projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:84ac871a34560b39dd7bde57b4d333f18a7e8c1b61c8d350c1fefeb1fcd2b3ac
parent: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
    validateOnly: true
  requestMetadata:
    callerIp: private
    callerSuppliedUserAgent: stubby_client
    destinationAttributes: {}
    requestAttributes:
      auth: {}
      time: '2023-05-26T04:31:21.909465579Z'
  resourceName: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
  serviceName: artifactregistry.googleapis.com
receiveTimestamp: '2023-05-26T04:31:22.641338594Z'
resource:
  labels:
    method: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
    project_id: my-project
    service: artifactregistry.googleapis.com
  type: audited_resource
severity: INFO
timestamp: '2023-05-26T04:31:21.909004200Z'

Richtlinien auf ein Repository anwenden

Wenn Sie Ihre in einer lokalen JSON-Datei definierten Bereinigungsrichtlinien verwenden möchten, wenden Sie sie auf Repositories, in denen Artifact Registry das automatische Löschen ausführen soll von Artefaktversionen über die gcloud CLI.

Wenn Sie Bereinigungsrichtlinien anwenden möchten, die in der Console auf Probelauf festgelegt sind, legen Sie die Richtlinie so fest: Artefakte löschen.

Bereinigungsrichtlinien können nur auf Standard-Repositories angewendet werden. Sie können nicht Bereinigungsrichtlinien anwenden auf:

  • Ein Google Cloud-Projekt.

Console

So wenden Sie Bereinigungsrichtlinien an:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie das Repository in der Liste der Repositories aus und klicken Sie auf Repository bearbeiten.

  3. Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Artefakte löschen aus.

    Artifact Registry löscht und speichert Artefakte, die Ihren Richtlinien entsprechen, mithilfe eines Hintergrundjobs, der regelmäßig ausgeführt wird. Änderungen sollten werden sie innerhalb von etwa einem Tag wirksam.

gcloud

Um Bereinigungsrichtlinien anzuwenden, führen Sie den folgenden Befehl im Verzeichnis mit der Bereinigungsrichtliniendatei.

gcloud artifacts repositories set-cleanup-policies REPOSITORY \
    --project=PROJECT_ID \
    --location=LOCATION \
    --policy=POLICY_FILE \
    --no-dry-run

Ersetzen Sie Folgendes:

  • REPOSITORY durch den Namen des Repositorys.
  • Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts.
  • LOCATION mit dem regional oder multiregional Speicherort des Repositorys.
  • --no-dry-run deaktiviert die Probelauffunktion für das Repository.
  • POLICY_FILE ist der Name der Datei mit der Bereinigungsrichtlinie.

Mit dem folgenden Befehl werden beispielsweise Richtlinien in policy.json auf die Repository my-repo in der Region us-west1 im Projekt my-project.

gcloud artifacts repositories set-cleanup-policies my-repo \
    --project=my-project \
    --location=us-west1 \
    --policy=policy.json

Artifact Registry löscht und behält Artefakte, die Ihren Richtlinien entsprechen mit einem regelmäßig ausgeführten Hintergrundjob. Änderungen sollten wirksam werden innerhalb von etwa einem Tag an.

Richtlinie aktualisieren

Console

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie das Repository in der Liste der Repositories aus und klicken Sie auf Repository bearbeiten.

  3. Klicken Sie im Abschnitt Bereinigungsrichtlinien auf den Namen der gewünschten Richtlinie. zum Ändern festzulegen.

  4. Bearbeiten Sie die Bereinigungsrichtlinie und klicken Sie auf Aktualisieren.

    Ihre Bereinigungsrichtlinie wird auf das Repository angewendet.

gcloud-CLI

Um vorhandene Richtlinien zu aktualisieren, bearbeiten Sie die Einstellungen in der Richtliniendatei und dann Führen Sie den folgenden Befehl aus, um die Richtlinien noch einmal anzuwenden.

gcloud artifacts repositories set-cleanup-policies REPOSITORY \
    --project=PROJECT_ID \
    --location=LOCATION \
    --policy=POLICY_FILE \
    --no-dry-run

Ersetzen Sie Folgendes:

  • REPOSITORY durch den Namen des Repositorys.
  • Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts.
  • LOCATION mit dem regional oder multiregional Speicherort des Repositorys.
  • --no-dry-run deaktiviert die Probelauffunktion für das Repository.
  • POLICY_FILE ist der Name der Datei mit der Bereinigungsrichtlinie.

Richtlinien zur Repository-Bereinigung auflisten

Sie können die mit einem Repository verknüpften Bereinigungsrichtlinien aufrufen.

Console

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie in der Liste der Repositories das Repository aus, das Sie ansehen möchten.

  3. Klicken Sie im Abschnitt Repository-Details auf Mehr anzeigen.

    Die Namen der Bereinigungsrichtlinien werden angezeigt.

  4. Um die Details der Bereinigungsrichtlinien des Repositorys anzusehen oder zu bearbeiten, klicken Sie auf Repository bearbeiten.

    Die Details zu Ihren vorhandenen Bereinigungsrichtlinien finden Sie im Bereinigungsrichtlinien.

gcloud-CLI

Führen Sie dazu diesen Befehl aus:

gcloud artifacts repositories list-cleanup-policies REPOSITORY \
    --project=PROJECT_ID \
    --location=LOCATION

Ersetzen Sie Folgendes:

  • REPOSITORY durch den Namen des Repositorys.
  • Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts.
  • LOCATION mit dem regional oder multiregional Speicherort des Repositorys.

Richtlinie aus einem Repository entfernen

Bereinigungsrichtlinie aus einem Repository entfernen, wenn Sie sie nicht mehr benötigen Artifact Registry zum automatischen Löschen von Artefaktversionen.

Console

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie das Repository in der Liste der Repositories aus und klicken Sie auf Repository bearbeiten.

  3. Bewegen Sie den Mauszeiger im Abschnitt Bereinigungsrichtlinien auf den Namen der Richtlinie, die Sie löschen möchten.

  4. Klicken Sie auf das Symbol Löschen.

  5. Klicken Sie auf Aktualisieren.

    Die Bereinigungsrichtlinie wird gelöscht.

gcloud-CLI

Führen Sie dazu diesen Befehl aus:

gcloud artifacts repositories delete-cleanup-policies REPOSITORY \
    --policynames=POLICY_NAMES \
    --project=PROJECT_ID \
    --location=LOCATION

Ersetzen Sie Folgendes:

  • REPOSITORY ist der Name des Repositorys.
  • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
  • LOCATION ist der/die/das regional oder multiregional Speicherort für das Repository.
  • POLICY_NAMES ist eine durch Kommas getrennte Liste von Richtliniennamen für die Richtlinien aus, die Sie entfernen möchten.

Mit dem folgenden Befehl wird beispielsweise eine Richtlinie namens delete-test aus dem Repository my-repo in der Region us-west1 im Projekt my-project:

gcloud artifacts repositories delete-cleanup-policies my-repo \
    --policynames=delete-test \
    --project=my-project \
    --location=us-west1

Audit-Logeinträge für Bereinigungsrichtlinien

Zum Aufrufen von Logeinträgen für Bereinigungsrichtlinien in Cloud Logging müssen Sie DATA_WRITE-Logging aktivieren

Wenn Sie eine Bereinigungsrichtlinie für ein Repository festlegen, wird der Vorgang als Aktualisierung auf das Repository (Vorgang UpdateRepository)

Wenn Artifact Registry eine Version eines Artefakts löscht, wird das Ereignis protokolliert in den Datenzugriffslogs von Cloud Logging. Aus den Logeinträgen geht hervor, dass der Das Artifact Registry-Dienstkonto hat das Löschen durchgeführt. Die Die Artifact Registry-Dienstkonto-ID hat das Format service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com

Sonstige Tools

Für Container-Images können Sie auch die folgenden Tools für den Image-Lebenszyklus verwenden Verwaltung:

  • gcrane: Ein Tool für Container Registries, mit dem Sie Images kopieren können zwischen Repositories.
  • gcr-cleaner: Tool zum Löschen von Containern basierend auf bestimmten Kriterien.

Die Tools gcrane und gcr-cleaner sind keine offiziellen Google-Produkte.