Mit dieser Berechtigung könnte ein Angreifer neue Versionen der Artefakte mit bösartigem Code wie Docker-Images hochladen:
# Configure docker to use gcloud to authenticate with Artifact Registrygcloudauthconfigure-docker<location>-docker.pkg.dev# tag the image to upload itdockertag<local-img-name>:<local-tag><location>-docker.pkg.dev/<proj-name>/<repo-name>/<img-name>:<tag># Upload itdockerpush<location>-docker.pkg.dev/<proj-name>/<repo-name>/<img-name>:<tag>
Es wurde überprüft, dass es möglich ist, ein neues bösartiges Docker-Image hochzuladen mit demselben Namen und Tag wie das bereits vorhandene, sodass das alte den Tag verliert und beim nächsten Mal, wenn das Bild mit diesem Tag heruntergeladen wird, das bösartige heruntergeladen wird.
Laden Sie eine Python-Bibliothek hoch
Beginnen Sie mit der Erstellung der hochzuladenden Bibliothek (wenn Sie die neueste Version aus dem Repository herunterladen können, können Sie diesen Schritt überspringen):
Richten Sie Ihre Projektstruktur ein:
Erstellen Sie ein neues Verzeichnis für Ihre Bibliothek, z. B. hello_world_library.
Erstellen Sie innerhalb dieses Verzeichnisses ein weiteres Verzeichnis mit Ihrem Paketnamen, z. B. hello_world.
Erstellen Sie im Verzeichnis Ihres Pakets eine __init__.py-Datei. Diese Datei kann leer sein oder Initialisierungen für Ihr Paket enthalten.
Im Stammverzeichnis Ihres hello_world_library-Verzeichnisses erstellen Sie eine setup.py-Datei.
Diese Datei enthält Metadaten zu Ihrer Bibliothek und gibt Python an, wie sie installiert werden soll.
# setup.pyfrom setuptools import setup, find_packagessetup(name='hello_world',version='0.1',packages=find_packages(),install_requires=[# Alle Abhängigkeiten, die Ihre Bibliothek benötigt],)
Jetzt laden wir die Bibliothek hoch:
Erstellen Sie Ihr Paket:
Führen Sie vom Stammverzeichnis Ihres hello_world_library-Verzeichnisses aus aus:
python3setup.pysdistbdist_wheel
Konfigurieren Sie die Authentifizierung für Twine (verwendet zum Hochladen Ihres Pakets):
Stellen Sie sicher, dass twine installiert ist (pip install twine).
Verwenden Sie gcloud, um Anmeldeinformationen zu konfigurieren:
Es ist nicht möglich, eine Python-Bibliothek mit derselben Version wie der bereits vorhandenen hochzuladen, aber es ist möglich, höhere Versionen hochzuladen (oder eine zusätzliche .0 am Ende der Version hinzuzufügen, wenn das funktioniert -nicht in Python jedoch-), oder die letzte Version zu löschen und eine neue hochzuladen mit (erforderlich artifactregistry.versions.delete):
Mit dieser Berechtigung können Sie Artefakte herunterladen und nach sensiblen Informationen und Schwachstellen suchen.
Laden Sie ein Docker-Image herunter:
# Configure docker to use gcloud to authenticate with Artifact Registrygcloudauthconfigure-docker<location>-docker.pkg.dev# Dowload imagedockerpull<location>-docker.pkg.dev/<proj-name>/<repo-name>/<img-name>:<tag>
Was passiert, wenn ein Remote- und ein Standard-Repository in einem virtuellen Repository gemischt werden und ein Paket in beiden existiert? Überprüfen Sie diese Seite: