In diesem Dokument wird beschrieben, wie Sie Bereinigungsrichtlinien erstellen und verwalten.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Artifact Registry Administrator (roles/artifactregistry.admin
) für das Repository-Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Anwenden oder Entfernen von Bereinigungsrichtlinien benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Anwenden oder Entfernen von Bereinigungsrichtlinien erforderlich sind. 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 den Kriterien in einer Bereinigungsrichtlinie entsprechen:
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 Bildern erforderlich ist, die den Kriterien in einer Bereinigungsrichtlinie entsprechen.
Richtliniendatei erstellen
Eine Richtliniendatei ist eine JSON-Datei, in der Ihre Lösch- und Aufbewahrungsrichtlinien definiert sind. Sie können eine Richtliniendatei erstellen, indem Sie eine JSON-Datei erstellen und bearbeiten. Anschließend können Sie die Richtlinie mit der Google Cloud CLI oder der Google Cloud -Konsole anwenden. Mit Löschrichtlinien werden Bedingungen für das Löschen von Artefakten angegeben. Mit Aufbewahrungsrichtlinien werden Bedingungen für die Aufbewahrung eines Artefakts oder eine Anzahl der letzten Versionen angegeben, die beibehalten werden sollen. Sie können in derselben Aufbewahrungsrichtlinie keine Bedingungen und neuesten Versionen verwenden.
Löschrichtlinie erstellen
Mit einer Löschrichtlinie können Sie das Mindest- oder Höchstalter für das Löschen von Artefakten und zusätzliche Filterkriterien angeben, um die Richtlinie auf bestimmte Artefakte zu beschränken.
Wenn Sie bestimmte Artefakte haben, die aus irgendeinem Grund nicht gelöscht werden sollen, erstellen Sie eine bedingte Aufbewahrungsrichtlinie oder eine Aufbewahrungsrichtlinie für die neuesten Versionen sowie eine Löschrichtlinie. Wenn ein Artefakt den Kriterien sowohl in der Löschrichtlinie als auch in der Aufbewahrungsrichtlinie entspricht, wird es beibehalten.
Console
Sie können eine Löschrichtlinie für ein neues oder vorhandenes Repository erstellen.
So fügen Sie einem vorhandenen Repository eine Löschrichtlinie hinzu:
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus, um die neue Richtlinie zu testen, bevor Sie Artefakte löschen. Weitere Informationen zum Anzeigen der Testergebnisse finden Sie unter Probelauf.
Wenn Sie sicher sind, dass Ihre Richtlinie wie vorgesehen funktioniert, bearbeiten Sie die Repository-Einstellungen noch einmal und wählen Sie Artefakte löschen aus, um die Bereinigungsrichtlinie anzuwenden und die ausgewählten Artefakte zu löschen.
Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:
- Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.
- Richtlinientyp: Wählen Sie Bedingte Löschung aus.
Tag-Status: Gibt an, ob die Richtlinie nach Artefakten mit oder ohne Tag suchen soll. Artefakte werden getaggt, wenn ein Image in ein Repository übertragen oder aus einem Repository abgerufen wird. Weitere Informationen zu Docker-Tags finden Sie unter Containerkonzepte.
- Beliebiger Tag-Status: Der Tag-Status wird ignoriert. Die Option gilt sowohl für Artefakte mit als auch ohne Tag.
- Getaggt: Gilt nur für getaggte Artefakte.
- Nicht getaggt: Gilt nur für nicht getaggte Artefakte.
Formate, die keine Tags unterstützen, werden als
untagged
behandelt. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden.Weitere Informationen zum Tag-Status in Bezug auf Bereinigungsrichtlinien finden Sie in der TagState-Referenz.
Sie haben folgende optionale Möglichkeiten, Ihre Löschrichtlinie zu definieren:
- Tag-Präfixe: Eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe
test
undstaging
würden beispielsweise mit Bildern mit den Tagstestenv
undstaging-1.5
übereinstimmen.tagState
muss aufTAGGED
gesetzt sein, damit Tag-Präfixe verwendet werden können. - Versionspräfixe: - ist eine durch Kommas getrennte Liste von Artefaktversionspräfixen. Beispiel:
v1
,v2
würde mit den Versionenv1.5
,v2.0alpha
undv10.2
übereinstimmen. - Paketpräfixe: Eine Liste mit Präfixen für Artefaktnamen. Sie können mehrere Präfixe eingeben, indem Sie zwischen den Präfixen
Enter
oder,
drücken. Mitred, blue
werden beispielsweise die beiden Präfixered
undblue
erstellt. Sie stimmen mit den Artefaktnamenred-team
,redis
undbluebird
überein. - Älter als: Die Mindestzeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer.
Beispiel:
30d
entspricht 30 Tagen. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
oderd
anhängen. - Newer than (Jünger als): Die maximale Zeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer.
Beispiel:
30d
entspricht 30 Tagen.
- Tag-Präfixe: Eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe
Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.
Klicken Sie auf Aktualisieren.
Ihre Bereinigungsrichtlinie wird auf Ihr Repository angewendet. Ihre Bereinigungsrichtlinien können Sie im Bereich Repository details (Repository-Details) aufrufen, indem Sie auf Show more (Mehr anzeigen) klicken.
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, eindeutig sein.
action
- Bei einer Löschrichtlinie ist der Wert
{"type": "Delete"}
. condition
- Geben Sie eine oder mehrere der folgenden Bedingungen an:
tagState
: TAG_STATUS gibt an, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten suchen soll. Artefakte werden getaggt, wenn ein Image in ein Repository übertragen oder aus einem Repository abgerufen wird. Unterstützte Werte:tagged
: Gilt nur für getaggte Artefakte.untagged
: Gilt nur für Artefakte ohne Tag.any
: Der Tag-Status wird ignoriert und gilt sowohl für getaggte als auch für nicht getaggte Artefakte.
Formate, die keine Tags unterstützen, werden als
untagged
behandelt. Wenn für 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äfixen. Beispielsweise würde"test", "staging"
mit Bildern mit den Tags"testenv"
und"staging-1.5"
übereinstimmen.tagState
muss aufTAGGED
gesetzt sein, damit Tag-Präfixe verwendet werden können.versionNamePrefixes
: VERSION_PREFIXES ist eine durch Kommas getrennte Liste von Artefaktversionspräfixen. Beispiel:"v1", "v2"
würde mit den Versionen"v1.5"
,"v2.0alpha"
und"v10.2"
übereinstimmen.packageNamePrefixes
: PACKAGE_PREFIXES ist eine durch Kommas getrennte Liste von Artefaktnamenpräfixen. Beispiel:"red", "blue"
würde mit den Artefaktnamen"red-team"
,"redis"
und"bluebird"
übereinstimmen.olderThan
: OLDER_THAN_DURATION ist die Mindestzeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer. Beispiel:30d
entspricht 30 Tagen. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
oderd
anhängen.newerThan
: NEWER_THAN_DURATION ist die maximale Zeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer. Beispiel:30d
entspricht 30 Tagen.
In Artifact Registry werden Probeläufe und aktive Läufe von Bereinigungsrichtlinien mit einem Hintergrundjob durchgeführt, der regelmäßig ausgeführt wird. Änderungen werden innerhalb von etwa einem Tag wirksam.
Bedingte Aufbewahrungsrichtlinie erstellen
Eine bedingte Aufbewahrungsrichtlinie gibt Kriterien für die Aufbewahrung von Artefakten an. Mit Aufbewahrungsrichtlinien können Sie Artefakte beibehalten, die gemäß den Spezifikationen Ihrer Löschrichtlinie gelöscht würden. Wenn ein Artefakt die Kriterien für eine Löschrichtlinie und eine Aufbewahrungsrichtlinie erfüllt, wird es beibehalten.
Console
Sie können eine Aufbewahrungsrichtlinie für ein neues oder vorhandenes Repository erstellen.
So fügen Sie einem vorhandenen Repository eine Aufbewahrungsrichtlinie hinzu:
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus, um die neue Richtlinie zu testen, bevor Sie Artefakte löschen. Sie müssen mindestens eine Löschrichtlinie festlegen, um die Ergebnisse Ihrer Aufbewahrungsrichtlinie zu sehen. Weitere Informationen zum Anzeigen der Testergebnisse finden Sie unter Probelauf.
Wenn Sie sicher sind, dass Ihre Richtlinien wie vorgesehen funktionieren, bearbeiten Sie die Repository-Einstellungen noch einmal und wählen Sie Artefakte löschen aus, um Ihre Bereinigungsrichtlinien anzuwenden und die ausgewählten Artefakte zu löschen.
Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:
- Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.
- Richtlinientyp: Wählen Sie Bedingtes Beibehalten aus.
Tag-Status: Gibt an, ob die Richtlinie nach Artefakten mit oder ohne Tag suchen soll. Artefakte werden getaggt, wenn ein Image in ein Repository übertragen oder aus einem Repository abgerufen wird. Weitere Informationen zu Docker-Tags finden Sie unter Containerkonzepte.
- Beliebiger Tag-Status: Der Tag-Status wird ignoriert. Die Option gilt sowohl für Artefakte mit als auch ohne Tag.
- Getaggt: Gilt nur für getaggte Artefakte.
- Nicht getaggt: Gilt nur für nicht getaggte Artefakte.
Formate, die keine Tags unterstützen, werden als
untagged
behandelt. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden. Weitere Informationen zum Tag-Status in Bezug auf Bereinigungsrichtlinien finden Sie in der TagState-Referenz.
Sie haben folgende optionale Möglichkeiten, Ihre Aufbewahrungsrichtlinie zu definieren:
- Tag-Präfixe: Eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe
test
undstaging
würden beispielsweise mit Bildern mit den Tagstestenv
undstaging-1.5
übereinstimmen.tagState
muss aufTAGGED
gesetzt sein, damit Tag-Präfixe verwendet werden können. - Versionspräfixe: - ist eine durch Kommas getrennte Liste von Artefaktversionspräfixen. Beispiel:
v1
,v2
würde mit den Versionenv1.5
,v2.0alpha
undv10.2
übereinstimmen. - Paketpräfixe: Eine durch Kommas getrennte Liste von Artefaktnamenpräfixen.
Beispiel:
red, blue
würde mit den Artefaktnamenred-team
,redis
undbluebird
übereinstimmen.
- Älter als: Die Mindestzeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer.
Beispiel:
30d
entspricht 30 Tagen. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
oderd
anhängen. - Newer than (Jünger als): Die maximale Zeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer.
Beispiel:
30d
entspricht 30 Tagen.
- Tag-Präfixe: Eine durch Kommas getrennte Liste von Tag-Präfixen. Die Präfixe
Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.
Klicken Sie auf Aktualisieren.
Ihre Bereinigungsrichtlinie wird auf Ihr Repository angewendet.
JSON
Das Format ähnelt dem einer Löschrichtlinie. Bei einer Aufbewahrungsrichtlinie ist der Wert für action
{"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:
- Ersetzen Sie
KEEP_POLICY_NAME
durch den Namen der Bereinigungsrichtlinie. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein. TAG_STATUS
mit dem Tag-Status, der angibt, ob die Richtlinie nach getaggten oder nicht getaggten Artefakten suchen soll. Artefakte werden beim Push oder Pull eines Images in bzw. aus einem Repository getaggt. 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 Tag.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 nicht gelöscht werden. Weitere Informationen zum Tag-Status in Bezug auf Bereinigungsrichtlinien finden Sie in der TagState-Referenz.TAG_PREFIXES
durch eine durch Kommas getrennte Liste von Tag-Präfixen ersetzen. Die Präfixetest
undstaging
würden beispielsweise mit Bildern mit den Tagstestenv
undstaging-1.5
übereinstimmen.tagState
muss aufTAGGED
gesetzt sein, damit Tag-Präfixe verwendet werden können.VERSION_PREFIXES
durch eine durch Kommas getrennte Liste von Präfixen für Artefaktversionen. Beispiel:v1, v2
würde mit den Versionenv1.5
,v2.0alpha
undv10.2
übereinstimmen.PACKAGE_PREFIXES
durch eine durch Kommas getrennte Liste von Präfixen für Artefaktnamen. Beispiel:red, blue
würde mit den Artefaktnamenred-team
,redis
undbluebird
übereinstimmen.
OLDER_THAN_DURATION
mit der Mindestzeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer. Beispiel:30d
entspricht 30 Tagen. Sie können Zeiträume in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
oderd
anhängen.NEWER_THAN_DURATION
mit der maximalen Zeit seit der Erstellung der Version eines Artefakts im Repository, angegeben als Dauer. Beispiel:30d
entspricht 30 Tagen.
In Artifact Registry werden Probeläufe und aktive Läufe von Bereinigungsrichtlinien mit einem Hintergrundjob durchgeführt, der regelmäßig ausgeführt wird. Änderungen werden innerhalb von etwa einem Tag wirksam.
Aufbewahrungsrichtlinie für die neuesten Versionen erstellen
Sie können eine Aufbewahrungsrichtlinie erstellen, um eine bestimmte Anzahl von Versionen beizubehalten. Sie können die Kriterien Bedingt beibehalten und Neueste Versionen beibehalten nicht in derselben Aufbewahrungsrichtlinie verwenden.
Mit Aufbewahrungsrichtlinien können Sie Artefakte beibehalten, die gemäß den Spezifikationen Ihrer Löschrichtlinie gelöscht würden. Wenn ein Artefakt die Kriterien für eine Löschrichtlinie und eine Aufbewahrungsrichtlinie erfüllt, wird es beibehalten.
Console
Sie können eine Richtlinie zum Beibehalten der neuesten Versionen für ein neues oder vorhandenes Repository erstellen.
So fügen Sie einem vorhandenen Repository eine Richtlinie zum Beibehalten der neuesten Versionen hinzu:
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus, um die neue Richtlinie zu testen, bevor Sie Artefakte löschen. Sie müssen mindestens eine Löschrichtlinie festlegen, um die Ergebnisse Ihrer Aufbewahrungsrichtlinie zu sehen. Weitere Informationen zum Anzeigen der Testergebnisse finden Sie unter Probelauf.
Wenn Sie sicher sind, dass Ihre Richtlinien wie vorgesehen funktionieren, bearbeiten Sie die Repository-Einstellungen noch einmal und wählen Sie Artefakte löschen aus, um Ihre Bereinigungsrichtlinien anzuwenden und die ausgewählten Artefakte zu löschen.
Klicken Sie auf Bereinigungsrichtlinie hinzufügen und fügen Sie Folgendes hinzu:
- Name: Geben Sie der Bereinigungsrichtlinie einen Namen. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.
- Richtlinientyp: Wählen Sie Neueste Versionen beibehalten aus.
Geben Sie im Feld Anzahl beibehalten die Anzahl der Versionen eines Artefakts ein, die in Ihrem Repository beibehalten werden sollen.
Optional: Wählen Sie Paketpräfixe aus, um Paketpräfixe anzugeben, auf die die Aufbewahrungsrichtlinie angewendet werden soll. Beispiel:
red, blue
würde mit den Artefaktnamenred-team
,redis
undbluebird
übereinstimmen.Sie können weitere Bereinigungsrichtlinien hinzufügen, indem Sie auf Bereinigungsrichtlinie hinzufügen klicken.
Klicken Sie auf Aktualisieren.
Ihre Bereinigungsrichtlinie wird auf Ihr Repository angewendet. Ihre Bereinigungsrichtlinien können Sie im Bereich Repository details (Repository-Details) aufrufen, indem Sie auf Show more (Mehr anzeigen) klicken.
JSON
Das Format ähnelt dem einer Löschrichtlinie. Bei einer Aufbewahrungsrichtlinie ist der Wert für action
{"type": "Keep"}
.
Eine Aufbewahrungsrichtlinie zum Beibehalten einer bestimmten Anzahl von Versionen hat einen 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
mit einem Namen für die Aufbewahrungsrichtlinie. Der Name muss innerhalb der Gruppe von Richtlinien, die Sie auf ein Repository anwenden, eindeutig sein.PACKAGE_PREFIXES
mit den optionalen Paketpräfixen, auf die die Keep-Richtlinie angewendet werden soll. Beispiel:red, blue
würde mit den Artefaktnamenred-team
,redis
undbluebird
übereinstimmen.
MINIMUM_NUMBER
durch die Anzahl der Versionen eines Artefakts, die in Ihrem Repository beibehalten werden sollen.
Wenn Sie die Aufbewahrungsrichtlinie auf alle Pakete in Ihrem Repository anwenden möchten, lassen Sie die Bedingung packageNamePrefixes
weg. Die angegebene Anzahl der letzten Versionen jedes Pakets in Ihrem Repository wird beibehalten.
In Artifact Registry werden Probeläufe und aktive Läufe von Bereinigungsrichtlinien mit einem Hintergrundjob durchgeführt, der regelmäßig ausgeführt wird. Änderungen werden innerhalb von etwa einem Tag wirksam.
Beispiel für eine Richtliniendatei
Das folgende Beispiel für eine Richtliniendatei enthält eine Löschrichtlinie und zwei Aufbewahrungsrichtlinien.
- Gemäß der
delete-prerelease
-Richtlinie werden Artefaktversionen 30 Tage nach dem Upload entfernt, wenn das Artefakt mit dem Stringalpha
oderv0
beginnt. - Mit der Richtlinie
keep-tagged-release
werden Artefakte mit dem Präfixrelease
beibehalten, deren Dateiname mitwebapp
odermobile
beginnt. - Gemäß der Richtlinie
keep-minimum-versions
werden die fünf neuesten Versionen von Artefakten beibehalten, deren Dateiname mitwebapp
,mobile
odersandbox
beginnt.
[
{
"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 mit einem Probelauf testen
Wenn Sie Ihre Bereinigungsrichtlinien testen möchten, können Sie sie in der Konsole auf „Probelauf“ festlegen oder den Befehl gcloud artifacts set-cleanup-policies
mit dem Flag --dry-run
ausführen.
Um die Auswirkungen Ihrer Bereinigungsrichtlinien zu analysieren, können Sie die Audit-Logs für den Datenzugriff auf Artifact Registry ansehen. Wenn Sie Audit-Logs zum Datenzugriff für Bereinigungsrichtlinien erhalten möchten, müssen Sie den Typ Datenschreiben von Audit-Logs zum Datenzugriff für den Artifact Registry-Dienst explizit aktivieren. Informationen zum Aktivieren von Audit-Logs zum Datenzugriff finden Sie unter Audit-Logs aktivieren.
Console
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Probelauf aus.
Klicken Sie auf Bereinigungsrichtlinie hinzufügen und konfigurieren Sie die Optionen für die Richtlinien Bedingtes Löschen, Bedingtes Beibehalten oder Neueste Versionen beibehalten.
Klicken Sie auf Aktualisieren.
Wenn eine Löschrichtlinie zu einer BatchDeleteVersions
-Aktion führt, wird der Parameter validateOnly
als "true"
ausgewertet.
In Artifact Registry werden Probeläufe und aktive Läufe von Bereinigungsrichtlinien mit einem Hintergrundjob durchgeführt, der regelmäßig ausgeführt wird. Änderungen werden innerhalb von etwa einem Tag wirksam.
Warten Sie mindestens einen Tag, bevor Sie Audit-Logs für den Probelauf abfragen.
Führen Sie den folgenden Befehl aus, um Audit-Logs für Probeläufe Ihrer Bereinigungsrichtlinien abzufragen:
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
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.PROJECT_ID
durch die ID Ihres Google Cloud -Projekts.-
LOCATION
ist der regionale oder multiregionale Speicherort des Repositorys.
Wenn eine Löschrichtlinie zu einer BatchDeleteVersions
-Aktion führt, wird der Parameter validateOnly
als "true"
ausgewertet.
In Artifact Registry werden Probeläufe und aktive Läufe von Bereinigungsrichtlinien mit einem Hintergrundjob durchgeführt, der regelmäßig ausgeführt wird. Änderungen werden innerhalb von etwa einem Tag wirksam.
Warten Sie mindestens einen Tag, bevor Sie Audit-Logs für den Probelauf abfragen.
Führen Sie den folgenden Befehl aus, um Audit-Logs für Probeläufe Ihrer Bereinigungsrichtlinien abzufragen:
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 mit der gcloud CLI auf die Repositories an, in denen Artifact Registry das automatische Löschen von Artefaktversionen übernehmen soll.
Wenn Sie Bereinigungsrichtlinien, die in der Console auf Probelauf festgelegt sind, anwenden möchten, legen Sie die Richtlinie auf Artefakte löschen fest.
Sie können Bereinigungsrichtlinien nur auf Standard-Repositories anwenden. Sie können keine Bereinigungsrichtlinien auf Folgendes anwenden:
- Ein Google Cloud -Projekt.
Console
So wenden Sie Bereinigungsrichtlinien an:
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Wählen Sie im Abschnitt Bereinigungsrichtlinien die Option Artefakte löschen aus.
Artefakte, die Ihren Richtlinien entsprechen, werden in Artifact Registry mit einem Hintergrundjob gelöscht und beibehalten, der regelmäßig ausgeführt wird. Änderungen sollten innerhalb von etwa einem Tag wirksam werden.
gcloud
Führen Sie den folgenden Befehl im Verzeichnis mit der Bereinigungsrichtliniendatei aus, um Bereinigungsrichtlinien 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.PROJECT_ID
durch die ID Ihres Google Cloud -Projekts.-
LOCATION
ist der regionale oder multiregionale Speicherort des Repositorys. POLICY_FILE
ist der Name der Datei mit der Bereinigungsrichtlinie.
Das Flag --no-dry-run
deaktiviert die Dry-Run-Funktion für das Repository.
Mit dem folgenden Befehl werden beispielsweise Richtlinien in policy.json
auf das Repository my-repo
in der Region us-west1
im Projekt my-project
angewendet.
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, mithilfe eines Hintergrundjobs, der regelmäßig ausgeführt wird. Änderungen sollten innerhalb von etwa einem Tag wirksam werden.
Richtlinie aktualisieren
Console
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Klicken Sie im Bereich Bereinigungsrichtlinien auf den Namen der Richtlinie, die Sie ändern möchten.
Bearbeiten Sie die Bereinigungsrichtlinie und klicken Sie auf Aktualisieren.
Ihre Bereinigungsrichtlinie wird auf Ihr Repository angewendet.
gcloud
Wenn Sie vorhandene Richtlinien aktualisieren möchten, bearbeiten Sie die Einstellungen in Ihrer Richtliniendatei und führen Sie dann 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.PROJECT_ID
durch die ID Ihres Google Cloud -Projekts.-
LOCATION
ist der regionale oder multiregionale Speicherort des Repositorys. POLICY_FILE
ist der Name der Datei mit der Bereinigungsrichtlinie.
Das Flag --no-dry-run
deaktiviert die Dry-Run-Funktion für das Repository.
Bereinigungsrichtlinien für Repositorys auflisten
Sie können die mit einem Repository verknüpften Bereinigungsrichtlinien ansehen.
Console
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Wählen Sie in der Liste der Repositories das Repository aus, das Sie aufrufen möchten.
Klicken Sie im Bereich Repository-Details auf Mehr anzeigen.
Die Namen der Bereinigungsrichtlinien werden angezeigt.
Wenn Sie die Details der Bereinigungsrichtlinien des Repositorys aufrufen oder bearbeiten möchten, klicken Sie auf Repository bearbeiten.
Die Details Ihrer vorhandenen Bereinigungsrichtlinien sind im Abschnitt Bereinigungsrichtlinien aufgeführt.
gcloud
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.PROJECT_ID
durch die ID Ihres Google Cloud -Projekts.-
LOCATION
ist der regionale oder multiregionale Speicherort des Repositorys.
Richtlinie aus einem Repository entfernen
Entfernen Sie eine Bereinigungsrichtlinie aus einem Repository, wenn Artifact Registry Artefaktversionen nicht mehr automatisch löschen soll.
Console
Öffnen Sie in der Google Cloud Console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Bewegen Sie den Mauszeiger im Bereich Bereinigungsrichtlinien auf den Namen der Richtlinie, die Sie löschen möchten.
Klicken Sie auf das Symbol Löschen.
Klicken Sie auf Aktualisieren.
Die Bereinigungsrichtlinie wird gelöscht.
gcloud
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 regionale oder multiregionale Speicherort des Repositorys. POLICY_NAMES
ist eine durch Kommas getrennte Liste der Namen der Richtlinien, 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
entfernt:
gcloud artifacts repositories delete-cleanup-policies my-repo \
--policynames=delete-test \
--project=my-project \
--location=us-west1
Audit-Log-Einträge für Bereinigungsrichtlinien
Wenn Sie Logeinträge für die Bereinigungsrichtlinie in Cloud Logging aufrufen möchten, müssen Sie die DATA_WRITE
-Protokollierung aktivieren.
Wenn Sie eine Bereinigungsrichtlinie für ein Repository festlegen, wird der Vorgang als Aktualisierung des Repository protokolliert (UpdateRepository
-Vorgang).
Wenn in Artifact Registry eine Version eines Artefakts gelöscht wird, wird das Ereignis in den Cloud Logging-Audit-Logs zum Datenzugriff protokolliert. Die Logeinträge zeigen, dass das Artifact Registry-Dienstkonto die Löschung durchgeführt hat. Die Artifact Registry-Dienstkonto-ID hat das Format service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
.