Dokumen ini menjelaskan cara membuat dan mengelola kebijakan pembersihan Anda.
Peran yang diperlukan
Untuk mendapatkan izin yang
diperlukan untuk menerapkan atau menghapus kebijakan pembersihan,
minta administrator Anda untuk memberi Anda
peran IAM Administrator Artifact Registry (roles/artifactregistry.admin
)
di project repositori.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk menerapkan atau menghapus kebijakan pembersihan. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menerapkan atau menghapus kebijakan pembersihan:
-
artifactregistry.repositories.update
-
Untuk menghapus artefak yang memenuhi kriteria dalam kebijakan pembersihan:
artifactregistry.versions.delete
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Peran default untuk Agen Layanan Artifact Registry
mencakup izin artifactregistry.versions.delete
, yang
diperlukan untuk menghapus image yang memenuhi kriteria dalam kebijakan pembersihan.
Membuat file kebijakan
File kebijakan adalah file JSON yang menentukan kebijakan hapus dan simpan Anda. Anda dapat membuat file kebijakan dengan membuat dan mengedit file JSON, lalu menggunakan Google Cloud CLI untuk menerapkan kebijakan, atau menggunakan konsol Google Cloud . Kebijakan penghapusan menentukan kondisi untuk menghapus artefak. Kebijakan penyimpanan menentukan kondisi untuk menyimpan artefak, atau jumlah versi terbaru yang akan disimpan. Anda tidak dapat menggunakan kondisi dan versi terbaru dalam kebijakan penyimpanan yang sama.
Membuat kebijakan penghapusan
Kebijakan penghapusan memungkinkan Anda menentukan usia minimum atau maksimum untuk penghapusan artefak dan kriteria pemfilteran tambahan untuk membatasi kebijakan pada artefak tertentu.
Jika Anda memiliki artefak tertentu yang tidak ingin dihapus karena alasan apa pun, buat kebijakan penyimpanan bersyarat, atau kebijakan penyimpanan versi terbaru serta kebijakan penghapusan. Jika artefak cocok dengan kriteria dalam kebijakan penghapusan dan kebijakan penyimpanan, artefak tersebut akan disimpan.
console
Anda dapat membuat kebijakan penghapusan untuk repositori baru atau yang sudah ada.
Untuk menambahkan kebijakan penghapusan ke repositori yang ada:
Buka halaman Repositories di konsol Google Cloud .
Di daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, pilih Uji coba untuk menguji kebijakan baru Anda sebelum memutuskan untuk menghapus artefak. Untuk mengetahui informasi selengkapnya tentang cara melihat hasil pengujian, lihat uji coba.
Setelah Anda yakin bahwa kebijakan Anda berfungsi sebagaimana mestinya, edit setelan repositori Anda lagi, lalu pilih Hapus artefak untuk menerapkan kebijakan pembersihan dan menghapus artefak yang dipilih.
Klik Tambahkan kebijakan pembersihan dan tambahkan berikut ini:
- Nama: Beri nama kebijakan pembersihan. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.
- Jenis kebijakan: Pilih Penghapusan bersyarat.
Status tag: menunjukkan apakah kebijakan harus memeriksa artefak yang diberi tag atau artefak yang tidak diberi tag. Artefak diberi tag saat mengirim atau menarik image ke atau dari repositori. Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep penampung.
- Status tag apa pun: mengabaikan status tag dan berlaku untuk artefak yang diberi tag dan tidak diberi tag.
- Diberi tag: hanya berlaku untuk artefak yang diberi tag.
- Tidak diberi tag: hanya berlaku untuk artefak yang tidak diberi tag.
Format yang tidak mendukung tag diperlakukan sebagai
untagged
. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus.Untuk mengetahui informasi selengkapnya tentang status tag sebagaimana berlaku untuk kebijakan pembersihan, lihat Referensi TagState.
Berikut adalah cara opsional untuk menentukan kebijakan penghapusan Anda:
- Awalan tag: adalah daftar awalan tag yang dipisahkan koma. Misalnya, awalan
test
danstaging
akan cocok dengan gambar dengan tagtestenv
danstaging-1.5
.tagState
harus ditetapkan keTAGGED
untuk menggunakan awalan tag. - Awalan versi: - adalah daftar awalan versi artefak yang dipisahkan koma. Misalnya,
v1
,v2
akan cocok dengan versiv1.5
,v2.0alpha
, danv10.2
. - Awalan paket: adalah daftar awalan nama artefak. Anda dapat memasukkan
beberapa awalan dengan menekan
Enter
atau,
di antara awalan. Misalnya,red, blue
akan membuat dua awalan,red
danblue
, serta akan mencocokkan nama artefakred-team
,redis
, danbluebird
. - Lebih lama dari: adalah waktu minimum sejak versi artefak
dibuat di repositori, yang ditentukan sebagai durasi.
Misalnya,
30d
adalah 30 hari. Anda dapat menentukan durasi dalam detik, menit, jam, atau hari dengan menambahkans
,m
,h
, ataud
. - Lebih baru dari: adalah waktu maksimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi.
Misalnya,
30d
adalah 30 hari.
- Awalan tag: adalah daftar awalan tag yang dipisahkan koma. Misalnya, awalan
Anda dapat menambahkan kebijakan pembersihan lainnya dengan mengklik Tambahkan kebijakan pembersihan.
Klik Perbarui.
Kebijakan pembersihan Anda diterapkan ke repositori Anda. Anda dapat melihat kebijakan pembersihan di bagian Detail repositori dengan mengklik Tampilkan lebih banyak.
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"
}
}
Kebijakan penghapusan harus menyertakan nama, tindakan, dan minimal satu kondisi.
name
- Dalam cuplikan kebijakan penghapusan, DELETE_POLICY_NAME adalah nama kebijakan. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.
action
- Untuk kebijakan penghapusan, nilainya adalah
{"type": "Delete"}
. condition
- Tentukan satu atau beberapa kondisi berikut:
tagState
: TAG_STATUS menunjukkan apakah kebijakan harus memeriksa artefak yang diberi tag atau artefak yang tidak diberi tag. Artefak diberi tag saat mengirim atau menarik image ke atau dari repositori. Nilai yang didukung adalah:tagged
: hanya berlaku untuk artefak yang diberi tag.untagged
: hanya berlaku untuk artefak yang tidak diberi tag.any
: mengabaikan status tag dan berlaku untuk artefak yang diberi tag dan tidak diberi tag.
Format yang tidak mendukung tag diperlakukan sebagai
untagged
. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus.Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep container.
tagPrefixes
: TAG_PREFIXES adalah daftar awalan tag yang dipisahkan koma. Misalnya,"test", "staging"
akan cocok dengan gambar yang memiliki tag"testenv"
dan"staging-1.5"
.tagState
harus ditetapkan keTAGGED
untuk menggunakan awalan tag.versionNamePrefixes
: VERSION_PREFIXES adalah daftar awalan versi artefak yang dipisahkan koma. Misalnya,"v1", "v2"
akan cocok dengan versi"v1.5"
,"v2.0alpha"
, dan"v10.2"
.packageNamePrefixes
: PACKAGE_PREFIXES adalah daftar awalan nama artefak yang dipisahkan koma. Misalnya,"red", "blue"
akan cocok dengan nama artefak"red-team"
,"redis"
, dan"bluebird"
.olderThan
: OLDER_THAN_DURATION adalah waktu minimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi. Misalnya,30d
adalah 30 hari. Anda dapat menentukan durasi dalam detik, menit, jam, atau hari dengan menambahkans
,m
,h
, ataud
.newerThan
: NEWER_THAN_DURATION adalah waktu maksimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi. Misalnya,30d
adalah 30 hari.
Artifact Registry melakukan uji coba dan menjalankan kebijakan pembersihan secara aktif menggunakan tugas latar belakang yang berjalan secara berkala. Perubahan akan diterapkan dalam waktu sekitar satu hari.
Membuat kebijakan penyimpanan bersyarat
Kebijakan penyimpanan bersyarat menentukan kriteria untuk menyimpan artefak. Kebijakan penyimpanan berfungsi dengan kebijakan penghapusan untuk menyimpan artefak yang akan dihapus sesuai dengan spesifikasi kebijakan penghapusan Anda, tetapi ingin Anda simpan. Jika artefak cocok dengan kriteria kebijakan penghapusan dan kebijakan penyimpanan, artefak tersebut akan disimpan.
console
Anda dapat membuat kebijakan penyimpanan untuk repositori baru atau yang sudah ada.
Untuk menambahkan kebijakan penyimpanan ke repositori yang ada:
Buka halaman Repositories di konsol Google Cloud .
Di daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, pilih Uji coba untuk menguji kebijakan baru Anda sebelum memutuskan untuk menghapus artefak. Anda harus menetapkan setidaknya satu kebijakan penghapusan untuk melihat hasil kebijakan penyimpanan Anda. Untuk mengetahui informasi selengkapnya tentang cara melihat hasil pengujian, lihat uji coba.
Setelah Anda yakin bahwa kebijakan Anda berfungsi sebagaimana mestinya, edit setelan repositori Anda lagi, lalu pilih Hapus artefak untuk menerapkan kebijakan pembersihan dan menghapus artefak yang dipilih.
Klik Tambahkan kebijakan pembersihan dan tambahkan berikut ini:
- Nama: Beri nama kebijakan pembersihan. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.
- Jenis kebijakan: Pilih Penyimpanan bersyarat.
Status tag: menunjukkan apakah kebijakan harus memeriksa artefak yang diberi tag atau artefak yang tidak diberi tag. Artefak diberi tag saat mengirim atau menarik image ke atau dari repositori. Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep penampung.
- Status tag apa pun: mengabaikan status tag dan berlaku untuk artefak yang diberi tag dan tidak diberi tag.
- Diberi tag: hanya berlaku untuk artefak yang diberi tag.
- Tidak diberi tag: hanya berlaku untuk artefak yang tidak diberi tag.
Format yang tidak mendukung tag diperlakukan sebagai
untagged
. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus. Untuk mengetahui informasi selengkapnya tentang status tag sebagaimana berlaku untuk kebijakan pembersihan, lihat Referensi TagState.
Berikut adalah cara opsional untuk menentukan kebijakan penyimpanan Anda:
- Awalan tag: adalah daftar awalan tag yang dipisahkan koma. Misalnya, awalan
test
danstaging
akan cocok dengan gambar dengan tagtestenv
danstaging-1.5
.tagState
harus ditetapkan keTAGGED
untuk menggunakan awalan tag. - Awalan versi: - adalah daftar awalan versi artefak yang dipisahkan koma. Misalnya,
v1
,v2
akan cocok dengan versiv1.5
,v2.0alpha
, danv10.2
. - Awalan paket: adalah daftar awalan nama artefak yang dipisahkan koma.
Misalnya,
red, blue
akan cocok dengan nama artefakred-team
,redis
, danbluebird
.
- Lebih lama dari: adalah waktu minimum sejak versi artefak
dibuat di repositori, yang ditentukan sebagai durasi.
Misalnya,
30d
adalah 30 hari. Anda dapat menentukan durasi dalam detik, menit, jam, atau hari dengan menambahkans
,m
,h
, ataud
. - Lebih baru dari: adalah waktu maksimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi.
Misalnya,
30d
adalah 30 hari.
- Awalan tag: adalah daftar awalan tag yang dipisahkan koma. Misalnya, awalan
Anda dapat menambahkan kebijakan pembersihan lainnya dengan mengklik Tambahkan kebijakan pembersihan.
Klik Perbarui.
Kebijakan pembersihan Anda diterapkan ke repositori Anda.
JSON
Formatnya mirip dengan kebijakan penghapusan. Untuk kebijakan penyimpanan, nilai action
adalah {"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"
}
}
Ganti kode berikut:
KEEP_POLICY_NAME
dengan nama kebijakan pembersihan. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.TAG_STATUS
dengan status tag, yang menunjukkan apakah kebijakan harus memeriksa artefak yang diberi tag atau artefak yang tidak diberi tag. Artefak diberi tag saat mengirim atau menarik image ke atau dari repositori. Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep container.Opsinya adalah:
tagged
: hanya berlaku untuk artefak yang diberi tag.untagged
: hanya berlaku untuk artefak yang tidak diberi tag.any
: berlaku untuk semua versi
Format yang tidak mendukung tag diperlakukan sebagai
untagged
. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus. Untuk mengetahui informasi selengkapnya tentang status tag sebagaimana berlaku untuk kebijakan pembersihan, lihat Referensi TagState.TAG_PREFIXES
dengan daftar awalan tag yang dipisahkan koma. Misalnya, awalantest
danstaging
akan cocok dengan gambar dengan tagtestenv
danstaging-1.5
.tagState
harus ditetapkan keTAGGED
untuk menggunakan awalan tag.VERSION_PREFIXES
dengan daftar awalan versi artefak yang dipisahkan koma. Misalnya,v1, v2
akan cocok dengan versiv1.5
,v2.0alpha
, danv10.2
.PACKAGE_PREFIXES
dengan daftar awalan nama artefak yang dipisahkan koma. Misalnya,red, blue
akan cocok dengan nama artefakred-team
,redis
, danbluebird
.
OLDER_THAN_DURATION
dengan waktu minimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi. Misalnya,30d
adalah 30 hari. Anda dapat menentukan durasi detik, menit, jam, atau hari dengan menambahkans
,m
,h
, ataud
.NEWER_THAN_DURATION
dengan waktu maksimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi. Misalnya,30d
adalah 30 hari.
Artifact Registry melakukan uji coba dan menjalankan kebijakan pembersihan secara aktif menggunakan tugas latar belakang yang berjalan secara berkala. Perubahan akan diterapkan dalam waktu sekitar satu hari.
Membuat kebijakan penyimpanan untuk versi terbaru
Anda dapat membuat kebijakan penyimpanan untuk menyimpan sejumlah versi tertentu. Anda tidak dapat menggunakan kriteria Pertahankan bersyarat dan Pertahankan versi terbaru dalam kebijakan penyimpanan yang sama.
Kebijakan penyimpanan berfungsi dengan kebijakan penghapusan untuk menyimpan artefak yang akan dihapus sesuai dengan spesifikasi kebijakan penghapusan Anda, tetapi ingin Anda simpan. Jika artefak cocok dengan kriteria kebijakan penghapusan dan kebijakan penyimpanan, artefak tersebut akan disimpan.
console
Anda dapat membuat kebijakan simpan versi terbaru untuk repositori baru atau yang sudah ada.
Untuk menambahkan kebijakan menyimpan versi terbaru ke repositori yang ada:
Buka halaman Repositories di konsol Google Cloud .
Di daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, pilih Uji coba untuk menguji kebijakan baru Anda sebelum memutuskan untuk menghapus artefak. Anda harus menetapkan setidaknya satu kebijakan penghapusan untuk melihat hasil kebijakan penyimpanan. Untuk mengetahui informasi selengkapnya tentang cara melihat hasil pengujian, lihat uji coba.
Setelah Anda yakin bahwa kebijakan Anda berfungsi sebagaimana mestinya, edit setelan repositori Anda lagi, lalu pilih Hapus artefak untuk menerapkan kebijakan pembersihan dan menghapus artefak yang dipilih.
Klik Tambahkan kebijakan pembersihan dan tambahkan berikut ini:
- Nama: Beri nama kebijakan pembersihan. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.
- Jenis kebijakan: Pilih Pertahankan versi terbaru.
Di kolom Jumlah yang disimpan, masukkan jumlah versi artefak yang akan disimpan di repositori Anda.
Opsional: pilih Awalan paket untuk menentukan awalan paket yang akan menerapkan kebijakan penyimpanan. Misalnya,
red, blue
akan cocok dengan nama artefakred-team
,redis
, danbluebird
.Anda dapat menambahkan kebijakan pembersihan lainnya dengan mengklik Tambahkan kebijakan pembersihan.
Klik Perbarui.
Kebijakan pembersihan Anda diterapkan ke repositori Anda. Anda dapat melihat kebijakan pembersihan di bagian Detail repositori dengan mengklik Tampilkan lebih banyak.
JSON
Formatnya mirip dengan kebijakan penghapusan. Untuk kebijakan penyimpanan, nilai action
adalah {"type": "Keep"}
.
Kebijakan penyimpanan untuk mempertahankan sejumlah versi tertentu memiliki bagian
mostRecentVersions
, bukan bagian condition
.
{
"name": "KEEP_POLICY_NAME",
"action": {"type": "Keep"},
"mostRecentVersions": {
"packageNamePrefixes": ["PACKAGE_PREFIXES"],
"keepCount": MINIMUM_NUMBER
}
}
Ganti kode berikut:
KEEP_POLICY_NAME
dengan nama untuk kebijakan penyimpanan Anda. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.PACKAGE_PREFIXES
dengan awalan paket opsional untuk menerapkan kebijakan penyimpanan. Misalnya,red, blue
akan cocok dengan nama artefakred-team
,redis
, danbluebird
.
MINIMUM_NUMBER
dengan jumlah versi artefak yang akan disimpan di repositori Anda.
Untuk menerapkan kebijakan penyimpanan ke semua paket di repositori Anda, hapus kondisi
packageNamePrefixes
. Jumlah versi terbaru yang ditentukan dari setiap paket di repositori Anda akan disimpan.
Artifact Registry melakukan uji coba dan menjalankan kebijakan pembersihan secara aktif menggunakan tugas latar belakang yang berjalan secara berkala. Perubahan akan diterapkan dalam waktu sekitar satu hari.
Contoh file kebijakan
Contoh file kebijakan berikut memiliki satu kebijakan penghapusan dan dua kebijakan penyimpanan.
- Kebijakan
delete-prerelease
menghapus versi artefak 30 hari setelah diupload jika artefak dimulai dengan stringalpha
atauv0
. - Kebijakan
keep-tagged-release
mempertahankan artefak yang diberi tag dengan awalanrelease
yang memiliki nama file yang diawali denganwebapp
ataumobile
. - Kebijakan
keep-minimum-versions
mempertahankan lima versi artefak terbaru yang memiliki nama file yang dimulai denganwebapp
,mobile
, atausandbox
.
[
{
"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
}
}
]
Menguji kebijakan dengan uji coba
Untuk menguji kebijakan pembersihan, Anda dapat menyetel kebijakan pembersihan ke uji coba di
konsol, atau menjalankan
perintah gcloud artifacts set-cleanup-policies
dengan tanda --dry-run
.
Untuk menganalisis efek kebijakan pembersihan, Anda dapat melihat log audit Akses data Artifact Registry. Untuk menerima log audit Akses Data untuk kebijakan pembersihan, Anda harus mengaktifkan jenis log audit akses data penulisan data secara eksplisit untuk layanan Artifact Registry. Untuk mengaktifkan log audit akses data, lihat Mengaktifkan log audit.
console
Buka halaman Repositories di konsol Google Cloud .
Di daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, pilih Uji coba.
Klik Tambahkan kebijakan pembersihan dan konfigurasikan opsi untuk kebijakan Hapus bersyarat, Simpan bersyarat, atau Simpan versi terbaru.
Klik Perbarui.
Jika kebijakan penghapusan menghasilkan tindakan BatchDeleteVersions
, parameter
validateOnly
akan dievaluasi menjadi "true"
.
Artifact Registry melakukan uji coba dan menjalankan kebijakan pembersihan secara aktif menggunakan tugas latar belakang yang berjalan secara berkala. Perubahan akan diterapkan dalam waktu sekitar satu hari.
Tunggu setidaknya satu hari sebelum Anda membuat kueri log audit untuk uji coba.
Untuk membuat kueri log audit untuk uji coba kebijakan pembersihan, jalankan perintah berikut:
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
Outputnya akan terlihat seperti berikut:
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
Untuk melakukan uji coba dengan kebijakan pembersihan Anda, jalankan perintah berikut:
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--dry-run
Ganti kode berikut:
REPOSITORY
dengan nama repositori.PROJECT_ID
dengan ID project Google Cloud Anda.-
LOCATION
adalah lokasi repositori regional atau multi-regional.
Jika kebijakan penghapusan menghasilkan tindakan BatchDeleteVersions
, parameter
validateOnly
akan dievaluasi menjadi "true"
.
Artifact Registry melakukan uji coba dan menjalankan kebijakan pembersihan secara aktif menggunakan tugas latar belakang yang berjalan secara berkala. Perubahan akan diterapkan dalam waktu sekitar satu hari.
Tunggu setidaknya satu hari sebelum Anda membuat kueri log audit untuk uji coba.
Untuk membuat kueri log audit untuk uji coba kebijakan pembersihan, jalankan perintah berikut:
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
Outputnya akan terlihat seperti berikut:
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'
Menerapkan kebijakan ke repositori
Untuk menggunakan kebijakan pembersihan yang ditentukan dalam file JSON lokal, terapkan kebijakan tersebut ke repositori tempat Anda ingin Artifact Registry menangani penghapusan otomatis versi artefak menggunakan gcloud CLI.
Untuk menerapkan kebijakan pembersihan yang ditetapkan ke Uji coba di konsol, tetapkan kebijakan ke Hapus artefak.
Anda hanya dapat menerapkan kebijakan pembersihan ke repositori standar. Anda tidak dapat menerapkan kebijakan pembersihan ke:
- Project Google Cloud .
console
Untuk menerapkan kebijakan pembersihan:
Buka halaman Repositories di konsol Google Cloud .
Di daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, pilih Hapus artefak.
Artifact Registry menghapus dan mempertahankan artefak yang sesuai dengan kebijakan Anda menggunakan tugas latar belakang yang berjalan secara berkala. Perubahan akan diterapkan dalam waktu sekitar satu hari.
gcloud
Untuk menerapkan kebijakan pembersihan, jalankan perintah berikut di direktori dengan file kebijakan pembersihan Anda.
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--no-dry-run
Ganti kode berikut:
REPOSITORY
dengan nama repositori.PROJECT_ID
dengan ID project Google Cloud Anda.-
LOCATION
adalah lokasi repositori regional atau multi-regional. POLICY_FILE
adalah nama file dengan kebijakan pembersihan.
Flag --no-dry-run
menonaktifkan fungsionalitas uji coba untuk
repositori.
Misalnya, perintah berikut menerapkan kebijakan di policy.json
ke
repositori my-repo
di region us-west1
dalam project my-project
.
gcloud artifacts repositories set-cleanup-policies my-repo \
--project=my-project \
--location=us-west1 \
--policy=policy.json
Artifact Registry menghapus dan mempertahankan artefak yang sesuai dengan kebijakan Anda menggunakan tugas latar belakang yang berjalan secara berkala. Perubahan akan diterapkan dalam waktu sekitar satu hari.
Memperbarui kebijakan
console
Buka halaman Repositories di konsol Google Cloud .
Di daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, klik nama kebijakan yang ingin Anda tetapkan untuk diubah.
Edit kebijakan pembersihan, lalu klik Perbarui.
Kebijakan pembersihan Anda diterapkan ke repositori Anda.
gcloud
Untuk memperbarui kebijakan yang ada, edit setelan dalam file kebijakan Anda, lalu jalankan perintah berikut untuk menerapkan kebijakan lagi.
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--no-dry-run
Ganti kode berikut:
REPOSITORY
dengan nama repositori.PROJECT_ID
dengan ID project Google Cloud Anda.-
LOCATION
adalah lokasi repositori regional atau multi-regional. POLICY_FILE
adalah nama file dengan kebijakan pembersihan.
Flag --no-dry-run
menonaktifkan fungsionalitas uji coba untuk
repositori.
Mencantumkan kebijakan pembersihan repositori
Anda dapat melihat kebijakan pembersihan yang terkait dengan repositori.
console
Buka halaman Repositories di konsol Google Cloud .
Di daftar repositori, pilih repositori yang ingin Anda lihat.
Di bagian Repository details, klik Show more.
Nama kebijakan pembersihan akan ditampilkan.
Untuk melihat atau mengedit detail kebijakan pembersihan repositori, klik Edit Repositori.
Detail kebijakan pembersihan yang ada tercantum di bagian Kebijakan pembersihan.
gcloud
Jalankan perintah berikut:
gcloud artifacts repositories list-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION
Ganti kode berikut:
REPOSITORY
dengan nama repositori.PROJECT_ID
dengan ID project Google Cloud Anda.-
LOCATION
adalah lokasi repositori regional atau multi-regional.
Menghapus kebijakan dari repositori
Hapus kebijakan pembersihan dari repositori jika Anda tidak ingin lagi Artifact Registry menghapus versi artefak secara otomatis.
console
Buka halaman Repositories di konsol Google Cloud .
Di daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, arahkan kursor ke nama kebijakan yang ingin Anda hapus.
Klik ikon Hapus.
Klik Perbarui.
Kebijakan pembersihan dihapus.
gcloud
Jalankan perintah berikut:
gcloud artifacts repositories delete-cleanup-policies REPOSITORY \
--policynames=POLICY_NAMES \
--project=PROJECT_ID \
--location=LOCATION
Ganti kode berikut:
REPOSITORY
adalah nama repositori.PROJECT_ID
adalah ID project Google Cloud Anda.-
LOCATION
adalah lokasi repositori regional atau multi-regional. POLICY_NAMES
adalah daftar nama kebijakan yang dipisahkan koma untuk kebijakan yang ingin Anda hapus.
Misalnya, perintah berikut menghapus kebijakan bernama delete-test
dari
repositori my-repo
di region us-west1
dalam project my-project
:
gcloud artifacts repositories delete-cleanup-policies my-repo \
--policynames=delete-test \
--project=my-project \
--location=us-west1
Entri log audit untuk kebijakan pembersihan
Untuk melihat entri log kebijakan pembersihan di Cloud Logging, Anda harus mengaktifkan logging DATA_WRITE
.
Saat Anda menetapkan kebijakan pembersihan pada repositori, operasi tersebut dicatat sebagai update pada repositori (operasi UpdateRepository
).
Saat Artifact Registry menghapus versi artefak, Artifact Registry akan mencatat peristiwa tersebut
dalam log Akses Data Cloud Logging. Entri log menunjukkan bahwa akun layanan Artifact Registry melakukan penghapusan. ID akun layanan Artifact Registry memiliki format service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com