Assured OSS를 Security Command Center와 통합하면 Assured Open Source Software 패키지가 제어하는 프로젝트에서 생성된 Artifact Registry 저장소에 호스팅됩니다.
이 페이지에서는 Assured OSS용 Artifact Registry 저장소에 연결하여 Python 패키지에 직접 액세스하고 다운로드하는 방법을 설명합니다.
이 문서는 Assured OSS 프리미엄 등급에만 적용됩니다. 무료 등급의 경우 무료 등급에서 직접 저장소 액세스를 사용하여 Python 패키지 다운로드를 참조하세요.
시작하기 전에
요청된 서비스 계정의 Assured OSS에 대한 연결을 검증합니다.
최신 버전의 Google Cloud CLI를 설치합니다.
이전에 이미 Google Cloud CLI를 설치한 경우 다음 명령어를 실행하여 최신 버전을 사용할 수 있는지 확인합니다.
gcloud components update
인증 설정
다음 방법 중 하나를 사용하여 Assured OSS Python 패키지 저장소에 인증할 수 있습니다.
- 키링으로 인증
- 서비스 계정 키로 인증
다음 섹션에서는 이러한 인증 방법을 설정하는 방법을 설명합니다.
키링으로 인증
Python 키링을 사용하여 Artifact Registry에 인증하려면 키링으로 인증 및 사용자 인증 정보 검색 순서의 정보를 참조하세요. 인증에는 Python 키링을 사용하는 것이 좋습니다.
인증용 키링을 설정하려면 다음을 수행합니다.
keyring
라이브러리를 설치합니다.pip install keyring
Artifact Registry 백엔드를 설치합니다.
pip install keyrings.google-artifactregistry-auth
백엔드를 나열하여 설치를 확인합니다.
keyring --list-backends
이 목록에는 다음 항목이 포함됩니다.
ChainerBackend(priority:10)
GooglePythonAuth(priority:9)
애플리케이션 기본 사용자 인증 정보 설정에 대한 자세한 내용은 인증 설정을 참조하세요.
이 단계를 통해 Assured OSS 사용자 인증 정보 도우미가 저장소와 연결할 때 키를 가져옵니다.
서비스 계정 키로 인증
애플리케이션에서 사용자 이름과 비밀번호를 사용한 인증이 필요한 경우 서비스 계정 키로 인증합니다.
패키지 저장소 URL https://us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
을 URL https://_json_key_base64:BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
로 바꿉니다.
다음을 바꿉니다.
PROJECT_ID
를 Assured Open Source Software를 설정할 때 선택한 프로젝트의 ID로 바꿉니다.BASE64_KEY
를 base64로 인코딩된 서비스 계정 JSON 키 파일로 바꿉니다. 전체 서비스 계정 JSON 키 파일을 base64 인코딩으로 변환하려면 다음 명령어를 사용합니다.BASE64_KEY=$(cat KEY_FILE_LOCATION | base64 -w 0)
KEY_FILE_LOCATION
을 서비스 계정 JSON 키 파일의 위치로 바꿉니다.
패키지 설치
다음 안내에서는 PyPI를 저장소로 사용하여 종속 항목을 다운로드한다고 가정합니다. 다른 저장소를 사용하는 경우 다른 단계에 따라 종속 항목을 다운로드해야 합니다.
Assured OSS에 있는 패키지 설치
다운로드할 Assured OSS Python 패키지를 지정하려면 requirements.txt
파일 두 개를 만듭니다. 샘플 파일은 다음과 같습니다.
requirements-google.txt
# Packages present in Google's Artifact Registry urllib3==1.26.11 --hash=sha256:1cffe1aa066363a75c856f261c8fce62d87f7c40ce0f46453ea12bf652b12a13 jsonschema==4.13.0 --hash=sha256:29895bfe55b93b75552fbdd1e09aa0c82b7c1c9395d4f267e10c7d43cd31a74e
requirements-pypi.txt
# Packages present in Google's Artifact Registry are mentioned here so that pip # downloads their dependencies from PyPI. urllib3==1.26.11 jsonschema==4.13.0 # Below this comment, add any package version which you need but is NOT # present in Google's Artifact Registry and therefore needs to be downloaded from # PyPI.
패키지를 다운로드하려면 다음 명령어를 실행합니다.
Assured OSS용 Artifact Registry에 있는 필수 패키지를 다운로드하려면 다음을 실행합니다.
pip install --require-hashes --requirement=requirements-google.txt \ --index-url https://_json_key_base64:BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python repo/simple -v \ --no-deps
한 가지 예를 살펴보겠습니다.
--require-hashes
은 선택사항입니다. 포함된 경우requirements.txt
파일의 모든 패키지 및 모든 패키지 버전에 대해 해시가 지정됩니다.BASE64_KEY
를 base64로 인코딩된 서비스 계정 JSON 파일로 바꿉니다.-v
는 선택사항입니다. 지정된 경우 명령어가 더 많은 출력을 제공합니다.
Assured OSS용 Artifact Registry에 없는 필수 패키지를 다운로드하려면 다음을 실행합니다.
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v
이 명령어는 이전 명령어를 사용하여 다운로드한 패키지의 누락된 종속 항목도 다운로드합니다.
Assured OSS에서 사용 가능한 모든 Python 패키지 나열
API를 사용하여 Artifact Registry 저장소에 있는 모든 Python 패키지 목록을 가져오려면 Assured OSS에서 사용 가능한 모든 Python 패키지 나열을 참조하세요.
requirements-google.txt
파일 생성
이 섹션에서는 Python 패키지를 다운로드하는 데 필요한 requirements-google.txt
파일 생성에 대한 추가 정보를 제공합니다. 사용자 환경에 해시를 다운로드하고 requirements-google.txt
파일을 생성하려면 다음 두 가지 옵션 중 하나를 사용할 수 있습니다.
스크립트를 사용하여 모든 아티팩트의 단일 요구사항 파일 생성합니다.
각 아티팩트에 대해 개별 요구사항 파일을 다운로드합니다.
다음 섹션에서는 이러한 옵션을 자세히 설명합니다.
옵션 1: 스크립트를 사용하여 모든 아티팩트의 단일 요구사항 파일 생성
generator.sh
스크립트를 사용하여 Linux 운영체제용 Assured OSS에서 사용 가능한 모든 Python 패키지(해시 포함)를 위한 단일 requirements-google.txt
파일을 생성합니다. 패키지는 Python 버전, 머신 아키텍처, 운영체제와 같은 제약조건을 충족해야 합니다. 그런 후 필요하지 않은 패키지 버전을 삭제하고 결과 파일을 사용할 수 있습니다.
generator.sh
스크립트는 다음 두 가지 방법으로 도움이 됩니다.
- Assured OSS와 함께 사용 가능하고 시스템에 성공적으로 설치할 수 있는 Python 패키지 버전의 최신 목록을 생성합니다.
- 모든 해시와 함께
requirements-google.txt
파일을 생성합니다.
필수 스크립트 및 해당 README.md
파일은 Google Cloud CLI를 사용하여 다운로드할 수 있는 Cloud Storage 버킷(gs://cloud-aoss/utils/python-requirements-txt/v1.0
)에서 사용할 수 있습니다.
스크립트와 README.md
파일을 다운로드하려면 다음 단계를 따르세요.
다음 명령어를 사용하여 서비스 계정으로 인증하여 Cloud Storage 버킷에 액세스합니다.
gcloud auth activate-service-account --key-file KEY_FILE
KEY_FILE
을 설정 중에 제공된 서비스 계정의 사용자 인증 정보가 포함된 파일의 경로로 바꿉니다.다음 명령어를 사용하여 머신에
generator.sh
를 다운로드합니다.gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursive
PATH_TO_LOCAL_STORE
를 다운로드한 파일을 저장할 로컬 경로로 바꿉니다.다음 명령어를 사용하여
README.md
파일을 다운로드합니다.gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursive
PATH_TO_LOCAL_STORE
를 다운로드한 파일을 저장할 로컬 경로로 바꿉니다. 스크립트 사용 방법에 대한 안내가README.md
파일에 포함되어 있습니다.
스크립트를 실행하려면 다음 명령어를 사용합니다.
requirements-google.txt
파일을 만들려면 다음 명령어를 실행하세요.chmod +x generator.sh ./generator.sh
CSV 파일의 패키지 정보를 가져오려면 다음 명령어를 실행합니다.
chmod +x generator.sh ./generator.sh -i
옵션 2: 각 필수 아티팩트의 requirements.txt
다운로드
각 Python 아티팩트에 대해 개별 requirements.txt
(해시 포함) 파일을 다운로드한 후 단일 requirements.txt
파일로 결합할 수도 있습니다.
아티팩트 해시는 gcloud CLI를 사용하여 다운로드할 수 있는 Cloud Storage 버킷에서 제공됩니다. 각 패키지 및 버전에 대한 해시는 gs://cloud-aoss/python/PACKAGE_NAME/VERSION
Cloud Storage 버킷 위치에 있습니다.
requirements.txt
파일을 다운로드하려면 다음 단계를 따르세요.
다음 명령어를 사용하여 서비스 계정으로 인증하여 Cloud Storage 버킷에 액세스합니다.
gcloud auth activate-service-account --key-file KEY_FILE
KEY_FILE
을 서비스 계정 사용자 인증 정보가 포함된 파일의 경로로 바꿉니다.다음 명령어를 사용하여 특정 패키지 및 버전의
requirements.txt
를 로컬 머신에 다운로드합니다.gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive
다음을 바꿉니다.
PACKAGE_NAME
: 패키지 이름VERSION
: 패키지의 버전PATH_TO_LOCAL_STORE
: 파일을 다운로드할 로컬 경로
명령어 샘플:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach
--재귀적샘플
requirements.txt
파일:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
이러한 각
requirements.txt
파일의 콘텐츠는 단일requirements-google.txt
파일로 결합될 수 있습니다.