Ce document explique comment créer et gérer vos règles de nettoyage.
Rôles requis
Pour obtenir les autorisations nécessaires pour appliquer ou supprimer des règles de nettoyage, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Artifact Registry (roles/artifactregistry.admin
) sur le projet de dépôt.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour appliquer ou supprimer des règles de nettoyage. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour appliquer ou supprimer des règles de nettoyage :
-
artifactregistry.repositories.update
-
Pour supprimer les artefacts qui répondent aux critères d'une règle de nettoyage :
artifactregistry.versions.delete
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Le rôle par défaut de l'agent de service Artifact Registry inclut l'autorisation artifactregistry.versions.delete
, qui est requise pour supprimer les images qui répondent aux critères d'une règle de nettoyage.
Créer un fichier de règles
Un fichier de règles est un fichier JSON qui définit vos règles de suppression et de conservation. Vous pouvez créer un fichier de règles en créant et en modifiant un fichier JSON, puis en utilisant la Google Cloud CLI pour appliquer la règle, ou en utilisant la console Google Cloud . Les règles de suppression spécifient les conditions de suppression des artefacts. Les règles de conservation spécifient les conditions à remplir pour conserver un artefact ou le nombre de versions récentes à conserver. Vous ne pouvez pas utiliser de conditions et de versions les plus récentes dans la même règle de conservation.
Créer une règle de suppression
Une règle de suppression vous permet de spécifier l'âge minimal ou maximal pour la suppression des artefacts, ainsi que des critères de filtrage supplémentaires pour limiter la règle à des artefacts spécifiques.
Si vous avez certains artefacts que vous ne souhaitez pas supprimer pour une raison quelconque, créez une règle de conservation conditionnelle ou une règle de conservation des versions les plus récentes, ainsi qu'une règle de suppression. Si un artefact correspond aux critères de la règle de suppression et de la règle de conservation, il est conservé.
Console
Vous pouvez créer une règle de suppression pour un dépôt nouveau ou existant.
Pour ajouter une règle de suppression à un dépôt existant :
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, sélectionnez Exécution à blanc pour tester votre nouvelle règle avant de vous engager à supprimer des artefacts. Pour savoir comment afficher les résultats du test, consultez Simulation.
Une fois que vous êtes sûr que votre règle fonctionne comme prévu, modifiez à nouveau les paramètres de votre dépôt et sélectionnez Supprimer les artefacts pour appliquer votre règle de nettoyage et supprimer les artefacts sélectionnés.
Cliquez sur Ajouter une règle de nettoyage, puis ajoutez les éléments suivants :
- Nom : attribuez un nom à la règle de nettoyage. Le nom doit être unique dans le groupe de règles que vous appliquez à un dépôt.
- Type de règle : sélectionnez Suppression conditionnelle.
État du tag : indique si la règle doit rechercher les artefacts tagués ou non tagués. Les artefacts sont tagués lorsque vous transférez ou extrayez une image vers ou depuis un dépôt. Pour en savoir plus sur les tags Docker, consultez Concepts liés aux conteneurs.
- N'importe quel état de tag : ignore l'état du tag et s'applique aux artefacts tagués et non tagués.
- Tagué : ne s'applique qu'aux artefacts tagués.
- Non tagué : ne s'applique qu'aux artefacts non tagués.
Les formats qui ne sont pas compatibles avec les tags sont traités comme des
untagged
. Si les tags immuables sont activés pour un dépôt, les artefacts tagués ne peuvent pas être supprimés.Pour en savoir plus sur l'état des tags en ce qui concerne les règles de nettoyage, consultez la documentation de référence sur TagState.
Voici quelques méthodes facultatives pour définir votre règle de suppression :
- Préfixes de balise : liste de préfixes de balise séparés par une virgule. Par exemple, les préfixes
test
etstaging
correspondent aux images comportant les tagstestenv
etstaging-1.5
.tagState
doit être défini surTAGGED
pour utiliser les préfixes de tags. - Préfixes de version : liste de préfixes de version d'artefact séparés par une virgule. Par exemple,
v1
,v2
correspondrait aux versionsv1.5
,v2.0alpha
etv10.2
. - Préfixes de package : liste des préfixes de nom d'artefact. Vous pouvez saisir plusieurs préfixes en appuyant sur
Enter
ou,
entre les préfixes. Par exemple,red, blue
créerait deux préfixes,red
etblue
, et correspondrait aux noms d'artefactsred-team
,redis
etbluebird
. - Plus ancien que : durée minimale depuis la création de la version d'un artefact dans le dépôt.
Par exemple,
30d
correspond à 30 jours. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant respectivements
,m
,h
oud
. - Plus récent que : durée maximale écoulée depuis la création de la version d'un artefact dans le dépôt.
Par exemple,
30d
correspond à 30 jours.
- Préfixes de balise : liste de préfixes de balise séparés par une virgule. Par exemple, les préfixes
Vous pouvez ajouter d'autres règles de nettoyage en cliquant sur Ajouter une règle de nettoyage.
Cliquez sur Mettre à jour.
Votre règle de nettoyage est appliquée à votre dépôt. Vous pouvez afficher vos règles de nettoyage dans la section Détails du dépôt en cliquant sur Afficher plus.
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"
}
}
Une règle de suppression doit inclure un nom, une action et au moins une condition.
name
- Dans l'extrait de code de la stratégie de suppression, DELETE_POLICY_NAME est le nom de la stratégie. Le nom doit être unique dans le groupe de règles que vous appliquez à un dépôt.
action
- Pour une règle de suppression, la valeur est
{"type": "Delete"}
. condition
- Spécifiez une ou plusieurs des conditions suivantes :
tagState
: TAG_STATUS indique si la règle doit rechercher les artefacts tagués ou non tagués. Les artefacts sont tagués lorsque vous transférez ou extrayez une image vers ou depuis un dépôt. Les valeurs compatibles sont :tagged
: ne s'applique qu'aux artefacts tagués.untagged
: ne s'applique qu'aux artefacts non tagués.any
: ignore l'état du tag et s'applique aux artefacts tagués et non tagués.
Les formats qui ne sont pas compatibles avec les tags sont traités comme des
untagged
. Si les tags immuables sont activés pour un dépôt, les artefacts tagués ne peuvent pas être supprimés.Pour en savoir plus sur les tags Docker, consultez Concepts liés aux conteneurs.
tagPrefixes
: TAG_PREFIXES est une liste de préfixes de tags séparés par une virgule. Par exemple,"test", "staging"
correspondrait aux images comportant les tags"testenv"
et"staging-1.5"
.tagState
doit être défini surTAGGED
pour utiliser les préfixes de tags.versionNamePrefixes
: VERSION_PREFIXES est une liste de préfixes de version d'artefact séparés par une virgule. Par exemple,"v1", "v2"
correspondrait aux versions"v1.5"
,"v2.0alpha"
et"v10.2"
.packageNamePrefixes
: PACKAGE_PREFIXES est une liste de préfixes de noms d'artefacts séparés par une virgule. Par exemple,"red", "blue"
correspondrait aux noms d'artefacts"red-team"
,"redis"
et"bluebird"
.olderThan
: OLDER_THAN_DURATION correspond à la durée minimale depuis la création de la version d'un artefact dans le dépôt. Par exemple,30d
correspond à 30 jours. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant respectivements
,m
,h
oud
.newerThan
: NEWER_THAN_DURATION correspond à la durée maximale écoulée depuis la création de la version d'un artefact dans le dépôt. Par exemple,30d
correspond à 30 jours.
Artifact Registry effectue des dry runs et des exécutions actives des règles de nettoyage à l'aide d'un job en arrière-plan qui s'exécute périodiquement. Les modifications prennent effet dans un délai d'environ un jour.
Créer une règle de conservation conditionnelle
Une règle de conservation conditionnelle spécifie des critères pour conserver les artefacts. Les règles de conservation fonctionnent avec les règles de suppression pour conserver les artefacts qui seraient supprimés conformément aux spécifications de votre règle de suppression, mais que vous souhaitez conserver. Lorsqu'un artefact correspond aux critères d'une règle de suppression et d'une règle de conservation, il est conservé.
Console
Vous pouvez créer une règle de conservation pour un dépôt nouveau ou existant.
Pour ajouter une règle de conservation à un dépôt existant :
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, sélectionnez Exécution à blanc pour tester votre nouvelle règle avant de vous engager à supprimer des artefacts. Vous devez définir au moins une règle de suppression pour afficher les résultats de votre règle de conservation. Pour savoir comment afficher les résultats du test, consultez Simulation.
Une fois que vous êtes sûr que vos règles fonctionnent comme prévu, modifiez à nouveau les paramètres de votre dépôt et sélectionnez Supprimer les artefacts pour appliquer vos règles de nettoyage et supprimer les artefacts sélectionnés.
Cliquez sur Ajouter une règle de nettoyage, puis ajoutez les éléments suivants :
- Nom : attribuez un nom à la règle de nettoyage. Le nom doit être unique dans le groupe de règles que vous appliquez à un dépôt.
- Type de règle : sélectionnez Conservation conditionnelle.
État du tag : indique si la règle doit rechercher les artefacts tagués ou non tagués. Les artefacts sont tagués lorsque vous transférez ou extrayez une image vers ou depuis un dépôt. Pour en savoir plus sur les tags Docker, consultez Concepts liés aux conteneurs.
- N'importe quel état de tag : ignore l'état du tag et s'applique aux artefacts tagués et non tagués.
- Tagué : ne s'applique qu'aux artefacts tagués.
- Non tagué : ne s'applique qu'aux artefacts non tagués.
Les formats qui ne sont pas compatibles avec les tags sont traités comme des
untagged
. Si les tags immuables sont activés pour un dépôt, les artefacts tagués ne peuvent pas être supprimés. Pour en savoir plus sur l'état des tags en ce qui concerne les règles de nettoyage, consultez la documentation de référence sur TagState.
Voici quelques options facultatives pour définir votre règle de conservation :
- Préfixes de balise : liste de préfixes de balise séparés par une virgule. Par exemple, les préfixes
test
etstaging
correspondent aux images comportant les tagstestenv
etstaging-1.5
.tagState
doit être défini surTAGGED
pour utiliser les préfixes de tags. - Préfixes de version : liste de préfixes de version d'artefact séparés par une virgule. Par exemple,
v1
,v2
correspondrait aux versionsv1.5
,v2.0alpha
etv10.2
. - Préfixes de package : liste de préfixes de noms d'artefacts séparés par une virgule.
Par exemple,
red, blue
correspondrait aux noms d'artefactsred-team
,redis
etbluebird
.
- Plus ancien que : durée minimale depuis la création de la version d'un artefact dans le dépôt.
Par exemple,
30d
correspond à 30 jours. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant respectivements
,m
,h
oud
. - Plus récent que : durée maximale écoulée depuis la création de la version d'un artefact dans le dépôt.
Par exemple,
30d
correspond à 30 jours.
- Préfixes de balise : liste de préfixes de balise séparés par une virgule. Par exemple, les préfixes
Vous pouvez ajouter d'autres règles de nettoyage en cliquant sur Ajouter une règle de nettoyage.
Cliquez sur Mettre à jour.
Votre règle de nettoyage est appliquée à votre dépôt.
JSON
Le format est semblable à celui d'une stratégie de suppression. Pour une stratégie de conservation, la valeur de action
est {"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"
}
}
Remplacez les éléments suivants :
KEEP_POLICY_NAME
par le nom de la règle de nettoyage. Le nom doit être unique dans le groupe de règles que vous appliquez à un dépôt.TAG_STATUS
avec l'état du tag, qui indique si la règle doit rechercher des artefacts tagués ou non tagués. Les artefacts sont tagués lorsque vous transférez ou extrayez une image vers ou depuis un dépôt. Pour en savoir plus sur les tags Docker, consultez Concepts liés aux conteneurs.Vous disposez des options suivantes :
tagged
: ne s'applique qu'aux artefacts tagués.untagged
: ne s'applique qu'aux artefacts non tagués.any
: s'applique à toutes les versions
Les formats qui ne sont pas compatibles avec les tags sont traités comme des
untagged
. Si les tags immuables sont activés pour un dépôt, les artefacts tagués ne peuvent pas être supprimés. Pour en savoir plus sur l'état des tags en ce qui concerne les règles de nettoyage, consultez la documentation de référence sur TagState.TAG_PREFIXES
par une liste de préfixes de tags séparés par une virgule. Par exemple, les préfixestest
etstaging
correspondent aux images comportant les tagstestenv
etstaging-1.5
.tagState
doit être défini surTAGGED
pour utiliser les préfixes de tags.VERSION_PREFIXES
par une liste de préfixes de version d'artefact séparés par une virgule. Par exemple,v1, v2
correspondrait aux versionsv1.5
,v2.0alpha
etv10.2
.PACKAGE_PREFIXES
par une liste de préfixes de noms d'artefacts séparés par une virgule. Par exemple,red, blue
correspondrait aux noms d'artefactsred-team
,redis
etbluebird
.
OLDER_THAN_DURATION
avec la durée minimale depuis la création de la version d'un artefact dans le dépôt. Par exemple,30d
correspond à 30 jours. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant respectivements
,m
,h
oud
.NEWER_THAN_DURATION
avec la durée maximale depuis la création de la version d'un artefact dans le dépôt, spécifiée sous forme de durée. Par exemple,30d
correspond à 30 jours.
Artifact Registry effectue des dry runs et des exécutions actives des règles de nettoyage à l'aide d'un job en arrière-plan qui s'exécute périodiquement. Les modifications prennent effet dans un délai d'environ un jour.
Créer une règle de conservation pour les versions les plus récentes
Vous pouvez créer une règle de conservation pour conserver un nombre spécifique de versions. Vous ne pouvez pas utiliser les critères Conserver sous conditions et Conserver les versions les plus récentes dans la même règle de conservation.
Les règles de conservation fonctionnent avec les règles de suppression pour conserver les artefacts qui seraient supprimés conformément aux spécifications de votre règle de suppression, mais que vous souhaitez conserver. Lorsqu'un artefact correspond aux critères d'une règle de suppression et d'une règle de conservation, il est conservé.
Console
Vous pouvez créer une règle de conservation des versions les plus récentes pour un dépôt nouveau ou existant.
Pour ajouter une règle "Conserver les versions les plus récentes" à un dépôt existant :
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, sélectionnez Exécution à blanc pour tester votre nouvelle règle avant de vous engager à supprimer des artefacts. Vous devez définir au moins une règle de suppression pour afficher les résultats de votre règle de conservation. Pour savoir comment afficher les résultats du test, consultez Simulation.
Une fois que vous êtes sûr que vos règles fonctionnent comme prévu, modifiez à nouveau les paramètres de votre dépôt et sélectionnez Supprimer les artefacts pour appliquer vos règles de nettoyage et supprimer les artefacts sélectionnés.
Cliquez sur Ajouter une règle de nettoyage, puis ajoutez les éléments suivants :
- Nom : attribuez un nom à la règle de nettoyage. Le nom doit être unique dans le groupe de règles que vous appliquez à un dépôt.
- Type de règles : sélectionnez Conserver les versions les plus récentes.
Dans le champ Nombre de versions à conserver, saisissez le nombre de versions d'un artefact à conserver dans votre dépôt.
Facultatif : sélectionnez Préfixes de package pour spécifier les préfixes de package auxquels appliquer la règle de conservation. Par exemple,
red, blue
correspondrait aux noms d'artefactsred-team
,redis
etbluebird
.Vous pouvez ajouter d'autres règles de nettoyage en cliquant sur Ajouter une règle de nettoyage.
Cliquez sur Mettre à jour.
Votre règle de nettoyage est appliquée à votre dépôt. Vous pouvez afficher vos règles de nettoyage dans la section Détails du dépôt en cliquant sur Afficher plus.
JSON
Le format est semblable à celui d'une stratégie de suppression. Pour une stratégie de conservation, la valeur de action
est {"type": "Keep"}
.
Une règle de conservation d'un nombre spécifique de versions comporte une section mostRecentVersions
au lieu d'une section condition
.
{
"name": "KEEP_POLICY_NAME",
"action": {"type": "Keep"},
"mostRecentVersions": {
"packageNamePrefixes": ["PACKAGE_PREFIXES"],
"keepCount": MINIMUM_NUMBER
}
}
Remplacez les éléments suivants :
KEEP_POLICY_NAME
par le nom de votre règle de conservation. Le nom doit être unique dans le groupe de règles que vous appliquez à un dépôt.PACKAGE_PREFIXES
avec les préfixes de package facultatifs auxquels appliquer la règle de conservation. Par exemple,red, blue
correspondrait aux noms d'artefactsred-team
,redis
etbluebird
.
MINIMUM_NUMBER
par le nombre de versions d'un artefact à conserver dans votre dépôt.
Pour appliquer la règle de conservation à tous les packages de votre dépôt, omettez la condition packageNamePrefixes
. Le nombre spécifié de versions récentes de chaque package de votre dépôt est conservé.
Artifact Registry effectue des dry runs et des exécutions actives des règles de nettoyage à l'aide d'un job en arrière-plan qui s'exécute périodiquement. Les modifications prennent effet dans un délai d'environ un jour.
Exemple de fichier de règles
L'exemple de fichier de règles suivant comporte une règle de suppression et deux règles de conservation.
- La règle
delete-prerelease
supprime les versions d'artefacts 30 jours après leur importation si l'artefact commence par la chaînealpha
ouv0
. - La règle
keep-tagged-release
conserve les artefacts tagués avec le préfixerelease
dont le nom de fichier commence parwebapp
oumobile
. - La règle
keep-minimum-versions
conserve les cinq versions les plus récentes des artefacts dont le nom de fichier commence parwebapp
,mobile
ousandbox
.
[
{
"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
}
}
]
Tester vos règles avec une simulation
Pour tester vos règles de nettoyage, vous pouvez les définir en mode dry run dans la console ou exécuter la commande gcloud artifacts set-cleanup-policies
avec l'indicateur --dry-run
.
Pour analyser l'effet de vos règles de nettoyage, vous pouvez consulter les journaux d'audit de l'accès aux données Artifact Registry. Pour recevoir les journaux d'audit des accès aux données pour les règles de nettoyage, vous devez activer explicitement le type de journaux d'audit des accès aux données Écriture de données pour le service Artifact Registry. Pour activer les journaux d'audit des accès aux données, consultez Activer les journaux d'audit.
Console
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, sélectionnez Simulation.
Cliquez sur Ajouter une règle de nettoyage, puis configurez les options pour vos règles Suppression conditionnelle, Conservation conditionnelle ou Conserver les versions les plus récentes.
Cliquez sur Mettre à jour.
Lorsqu'une règle de suppression entraîne une action BatchDeleteVersions
, le paramètre validateOnly
est évalué à "true"
.
Artifact Registry effectue des dry runs et des exécutions actives des règles de nettoyage à l'aide d'un job en arrière-plan qui s'exécute périodiquement. Les modifications prennent effet dans un délai d'environ un jour.
Attendez au moins un jour avant d'interroger les journaux d'audit pour le dry run.
Pour interroger les journaux d'audit concernant les simulations de vos règles de nettoyage, exécutez la commande suivante :
gcloud logging read 'protoPayload.serviceName="artifactregistry.googleapis.com" AND protoPayload.request.parent="projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY/packages/-" AND protoPayload.request.validateOnly=true' \
--resource-names="projects/PROJECT_ID" \
--project=PROJECT_ID
Le résultat se présente comme suit :
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
Pour effectuer une simulation avec vos règles de nettoyage, exécutez la commande suivante :
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--dry-run
Remplacez les éléments suivants :
REPOSITORY
par le nom du dépôt.PROJECT_ID
par l'ID de votre projet Google Cloud .-
LOCATION
est l'emplacement régional ou multirégional du dépôt.
Lorsqu'une règle de suppression entraîne une action BatchDeleteVersions
, le paramètre validateOnly
est évalué à "true"
.
Artifact Registry effectue des dry runs et des exécutions actives des règles de nettoyage à l'aide d'un job en arrière-plan qui s'exécute périodiquement. Les modifications prennent effet dans un délai d'environ un jour.
Attendez au moins un jour avant d'interroger les journaux d'audit pour le dry run.
Pour interroger les journaux d'audit concernant les simulations de vos règles de nettoyage, exécutez la commande suivante :
gcloud logging read 'protoPayload.serviceName="artifactregistry.googleapis.com" AND protoPayload.request.parent="projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY/packages/-" AND protoPayload.request.validateOnly=true' \
--resource-names="projects/PROJECT_ID" \
--project=PROJECT_ID
Le résultat se présente comme suit :
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'
Appliquer des règles à un dépôt
Pour utiliser vos règles de nettoyage définies dans un fichier JSON local, appliquez-les aux dépôts pour lesquels vous souhaitez qu'Artifact Registry gère la suppression automatique des versions d'artefacts à l'aide de la gcloud CLI.
Pour appliquer les règles de nettoyage définies sur Dry run dans la console, définissez la règle sur Supprimer les artefacts.
Vous ne pouvez appliquer des règles de nettoyage qu'aux dépôts standards. Vous ne pouvez pas appliquer de règles de nettoyage aux éléments suivants :
- Un projet Google Cloud .
Console
Pour appliquer des règles de nettoyage :
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, sélectionnez Supprimer les artefacts.
Artifact Registry supprime et conserve les artefacts qui correspondent à vos règles à l'aide d'un job en arrière-plan qui s'exécute régulièrement. Les modifications devraient prendre effet dans un délai d'environ un jour.
gcloud
Pour appliquer des règles de nettoyage, exécutez la commande suivante dans le répertoire contenant votre fichier de règles de nettoyage.
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--no-dry-run
Remplacez les éléments suivants :
REPOSITORY
par le nom du dépôt.PROJECT_ID
par l'ID de votre projet Google Cloud .-
LOCATION
est l'emplacement régional ou multirégional du dépôt. POLICY_FILE
est le nom du fichier contenant la règle de nettoyage.
L'option --no-dry-run
désactive la fonctionnalité d'essai à sec pour le dépôt.
Par exemple, la commande suivante applique les stratégies de policy.json
au dépôt my-repo
dans la région us-west1
du projet my-project
.
gcloud artifacts repositories set-cleanup-policies my-repo \
--project=my-project \
--location=us-west1 \
--policy=policy.json
Artifact Registry supprime et conserve les artefacts qui correspondent à vos règles à l'aide d'un job en arrière-plan qui s'exécute régulièrement. Les modifications devraient prendre effet dans un délai d'environ un jour.
Mettre à jour une stratégie
Console
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, cliquez sur le nom de la règle que vous souhaitez définir pour la modifier.
Modifiez la règle de nettoyage, puis cliquez sur Mettre à jour.
Votre règle de nettoyage est appliquée à votre dépôt.
gcloud
Pour mettre à jour les règles existantes, modifiez les paramètres dans votre fichier de règles, puis exécutez à nouveau la commande suivante pour appliquer les règles.
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--no-dry-run
Remplacez les éléments suivants :
REPOSITORY
par le nom du dépôt.PROJECT_ID
par l'ID de votre projet Google Cloud .-
LOCATION
est l'emplacement régional ou multirégional du dépôt. POLICY_FILE
est le nom du fichier contenant la règle de nettoyage.
L'option --no-dry-run
désactive la fonctionnalité d'essai à sec pour le dépôt.
Lister les règles de nettoyage du dépôt
Vous pouvez afficher les règles de nettoyage associées à un dépôt.
Console
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, sélectionnez celui que vous souhaitez afficher.
Dans la section Détails du dépôt, cliquez sur Afficher plus.
Les noms des règles de nettoyage s'affichent.
Pour afficher ou modifier les détails des règles de nettoyage du dépôt, cliquez sur Modifier le dépôt.
Les détails de vos règles de nettoyage existantes sont listés dans la section Règles de nettoyage.
gcloud
Exécutez la commande ci-dessous.
gcloud artifacts repositories list-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION
Remplacez les éléments suivants :
REPOSITORY
par le nom du dépôt.PROJECT_ID
par l'ID de votre projet Google Cloud .-
LOCATION
est l'emplacement régional ou multirégional du dépôt.
Supprimer une règle d'un dépôt
Supprimez une règle de nettoyage d'un dépôt lorsque vous ne souhaitez plus qu'Artifact Registry supprime automatiquement les versions d'artefacts.
Console
Ouvrez la page Dépôts dans la console Google Cloud .
Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.
Dans la section Règles de nettoyage, pointez sur le nom de la règle que vous souhaitez supprimer.
Cliquez sur l'icône Supprimer.
Cliquez sur Mettre à jour.
La règle de nettoyage est supprimée.
gcloud
Exécutez la commande ci-dessous.
gcloud artifacts repositories delete-cleanup-policies REPOSITORY \
--policynames=POLICY_NAMES \
--project=PROJECT_ID \
--location=LOCATION
Remplacez les éléments suivants :
REPOSITORY
est le nom du dépôt.PROJECT_ID
est l'ID de votre projet Google Cloud .-
LOCATION
est l'emplacement régional ou multirégional du dépôt. POLICY_NAMES
est une liste de noms de règles séparés par une virgule pour les règles que vous souhaitez supprimer.
Par exemple, la commande suivante supprime une règle nommée delete-test
du dépôt my-repo
dans la région us-west1
du projet my-project
:
gcloud artifacts repositories delete-cleanup-policies my-repo \
--policynames=delete-test \
--project=my-project \
--location=us-west1
Entrées de journal d'audit pour les règles de nettoyage
Pour afficher les entrées de journal des règles de nettoyage dans Cloud Logging, vous devez activer la journalisation DATA_WRITE
.
Lorsque vous définissez une règle de nettoyage sur un dépôt, l'opération est consignée en tant que mise à jour du dépôt (opération UpdateRepository
).
Lorsqu'Artifact Registry supprime une version d'un artefact, il consigne l'événement dans les journaux d'accès aux données Cloud Logging. Les entrées de journal indiquent que le compte de service Artifact Registry a effectué la suppression. L'ID du compte de service Artifact Registry est au format service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
.