इस अनुमति के साथ एक हमलावर नए संस्करणों को आर्टिफैक्ट्स के साथ अपलोड कर सकता है जैसे कि डॉकर इमेज के साथ दुरुपयोगी कोड:
# 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>
यह जांचा गया था कि एक नए दुष्ट डॉकर इमेज अपलोड करना संभव है जिसका नाम और टैग पहले से मौजूद है, इसलिए पुराना टैग खो जाएगा और अगली बार जब उस टैग के साथ वह इमेज डाउनलोड किया जाएगा तो दुष्ट इमेज डाउनलोड किया जाएगा।
Python पुस्तकालय अपलोड करें
अपलोड करने के लिए पुस्तकालय बनाना शुरू करें (यदि आप रजिस्ट्री से नवीनतम संस्करण डाउनलोड कर सकते हैं तो आप इस कदम को छोड़ सकते हैं):
अपने परियोजना संरचना को सेट अप करें:
अपनी पुस्तकालय के लिए एक नया निर्देशिका बनाएं, उदाहरण के लिए, hello_world_library।
इस निर्देशिका के अंदर, अपने पैकेज नाम के साथ एक और निर्देशिका बनाएं, उदाहरण के लिए, hello_world।
अपने पैकेज निर्देशिका के अंदर, एक __init__.py फ़ाइल बनाएं। इस फ़ाइल में कोई भी विषय नहीं हो सकता या आपके पैकेज के लिए प्रारंभिकरण शामिल किया जा सकता है।
अपने hello_world_library निर्देशिका की मूल में, एक setup.py फ़ाइल बनाएं।
यह फ़ाइल आपकी पुस्तकालय के बारे में मेटाडेटा शामिल करती है और पायथन को इसे कैसे स्थापित करना है बताती है।
# setup.pyfrom setuptools import setup, find_packagessetup(name='hello_world',version='0.1',packages=find_packages(),install_requires=[# आपकी पुस्तकालय को जो कोई भी आवश्यकताएँ होती हैं],)
अब, पुस्तकालय को अपलोड करें:
अपना पैकेज तैयार करें:
अपने hello_world_library निर्देशिका की मूल से, निम्नलिखित को चलाएं:
python3setup.pysdistbdist_wheel
twine के लिए प्रमाणीकरण कॉन्फ़िगर करें (अपने पैकेज को अपलोड करने के लिए उपयोग किया जाता है):
सुनिश्चित करें कि twine स्थापित है (pip install twine।)
प्रमाणीकरण कॉन्फ़िगर करने के लिए gcloud का उपयोग करें:
एक पायथन लाइब्रेरी उपलब्ध संस्करण के साथ एक ही संस्करण अपलोड करना संभव नहीं है, लेकिन अधिक संस्करण अपलोड करना संभव है (या संस्करण के अंत में एक अतिरिक्त .0 जोड़ें अगर वह काम करता है -पायथन में नहीं-), या अंतिम संस्करण को हटाने और एक नया अपलोड करने के लिए (आवश्यक artifactregistry.versions.delete):
इस अनुमति के साथ आप आर्टिफैक्ट्स डाउनलोड कर सकते हैं और संवेदनशील जानकारी और कमजोरियों की खोज कर सकते हैं।
एक डॉकर इमेज डाउनलोड करें:
# 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>