이 문서는 서비스 계정 및 AWS 계정이 Assured Open Source Software 서비스에 액세스할 수 있도록 사용 설정되었는지 확인하는 데 도움이 됩니다.
Google Cloud 서비스 계정 또는 (무료 등급만 해당) AWS 계정 ID가 Assured OSS 저장소 및 선별된 패키지 포트폴리오에 액세스할 수 있는지 확인하려면 API를 사용하여 사용 가능한 Java 또는 Python 패키지를 나열하세요. 이를 위해 API를 직접 호출하거나 Cloud Shell을 사용하여 API에 대한 curl 명령어 줄 호출을 실행할 수 있습니다.
무료 등급을 사용하는 경우 고객 지원 양식을 제출한 후 드물게 한 시간 이상 권한 거부 오류가 발생할 수 있습니다.
이 문서는 프리미엄 등급과 무료 등급 모두에 적용됩니다.
시작하기 전에
최신 버전의 Google Cloud CLI를 설치합니다. 이전에 Google Cloud CLI를 설치한 경우 다음을 실행하여 최신 버전이 있는지 확인합니다.
gcloud components updateGoogle Cloud를 사용하여 Assured OSS에 액세스하려면 Assured OSS에 대해 사용 설정한 서비스 계정의 상위 Google Cloud 프로젝트에 대해 Artifact Registry API를 사용 설정하세요. 프리미엄 등급을 사용하는 경우 설정 중에 API가 사용 설정됩니다.
네트워크의 허용 목록에 다음 URL을 추가합니다.
*.pkg.devartifactregistry.googleapis.com
인증 설정
Google Cloud
서비스 계정 키를 생성하고 다운로드합니다. 서비스 계정 키 관리 권장사항을 따르는 것이 좋습니다.
Google Cloud CLI에 이미 로그인한 경우 기존 인증을 취소합니다.
gcloud auth revokeGoogle Cloud에 대해 인증합니다.
gcloud auth login --cred-file=FILEPATH.json여기서 FILEPATH은 서비스 계정 키의 경로입니다.
애플리케이션 기본 사용자 인증 정보를 업데이트합니다.
export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json여기서 FILEPATH은 서비스 계정 키의 경로입니다.
AWS의 경우
이 단계는 Assured OSS 무료 등급에만 적용됩니다.
임시 사용자 인증 정보를 요청할 수 있도록 EC2 인스턴스를 설정합니다.
- AWS 관리 콘솔에 로그인합니다.
- AWS 관리 콘솔에서 EC2 대시보드로 이동하여 타겟 EC2 인스턴스를 선택합니다.
- 작업 > 보안 > IAM 역할 수정을 선택합니다.
- 새 IAM 역할 만들기 > 역할 만들기를 선택합니다.
- 신뢰할 수 있는 항목 유형으로 AWS 서비스를 선택합니다.
- 사용 사례로 EC2를 선택합니다.
- AmazonEC2ReadOnlyAccess 권한을 추가하고 다음을 클릭합니다.
- IAM 역할의 의미 있는 이름을 입력하고 다음을 클릭합니다.
- IAM 역할 수정으로 돌아갑니다. 새로 만든 역할을 선택하고 IAM 역할 업데이트를 클릭합니다.
사용자 인증 정보 구성 파일을 생성합니다.
gcloud iam workload-identity-pools create-cred-config \ projects/ASSIGNED_PROJECT_NUMBER/locations/global/workloadIdentityPools/aoss-wif-pool/providers/aws-AWS_ACCOUNT_ID-provider \ --service-account=aoss-wif-aws-AWS_ACCOUNT_ID-sa@ASSIGNED_PROJECT_ID.iam.gserviceaccount.com \ --aws \ --output-file=FILEPATH.json다음을 바꿉니다.
- AWS_ACCOUNT_ID: AWS 계정의 12자리 숫자입니다 (예:
123456789012). - FILEPATH: 구성을 저장할 파일 + ASSIGNED_PROJECT_ID: 사용 설정 메일에 언급된 대로 할당된 Google Cloud 프로젝트 ID입니다. + ASSIGNED_PROJECT_NUMBER: 사용 설정 메일에 언급된 대로 할당된 Google Cloud 프로젝트 번호입니다.
AWS IMDSv2를 사용하는 경우 앞의 명령어에 플래그
--enable-imdsv2를 추가합니다. 자세한 내용은 인증 정보 구성 만들기를 참고하세요.- AWS_ACCOUNT_ID: AWS 계정의 12자리 숫자입니다 (예:
Google Cloud CLI에 이미 로그인한 경우 기존 인증을 취소합니다.
gcloud auth revokeGoogle Cloud에 대해 인증합니다.
gcloud auth login --cred-file=FILEPATH.json여기서 FILEPATH은 사용자 인증 정보 구성 파일의 경로입니다.
애플리케이션 기본 사용자 인증 정보를 업데이트합니다.
export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json여기서 FILEPATH은 서비스 계정 키 또는 사용자 인증 정보 구성 파일의 경로입니다.
인증 관련 문제 해결에 대한 자세한 내용은 인증 오류 문제 해결을 참고하세요.
Assured OSS에서 사용 가능한 모든 Java 패키지 나열
REST API를 사용하여 모든 Java 패키지와 버전을 나열할 수 있습니다.
Assured OSS 무료 등급의 경우 다음 HTTP 요청을 입력합니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts"
Assured OSS의 프리미엄 등급의 경우 다음 HTTP 요청을 입력합니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages
PROJECT_ID를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.
다음은 무료 등급에서 Java 저장소에 연결하는 샘플 curl 명령어입니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts"
이 요청은 다음 샘플 응답과 비슷한 응답을 반환합니다.
{
"mavenArtifacts": [
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/com.alibaba:fastjson:1.2.83",
"pomUri":
"us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/com/alibaba/fastjson/1.2.83/fastjson-1.2.83.pom",
"groupId": "com.alibaba",
"artifactId": "fastjson",
"version": "1.2.83",
"createTime": "2022-06-24T09:10:05.166879Z",
"updateTime": "2022-06-24T09:10:05.166879Z"
},
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/org.apache.logging.log4j:log4j-api:2.17.1",
"pomUri":
"us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.pom",
"groupId": "org.apache.logging.log4j",
"artifactId": "log4j-api",
"version": "2.17.1",
"createTime": "2022-03-16T12:22:50.113695Z",
"updateTime": "2022-03-16T12:22:50.113695Z"
},
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/org.apache.logging.log4j:log4j-core:2.17.1",
"pomUri":
"us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.pom",
"groupId": "org.apache.logging.log4j",
"artifactId": "log4j-core",
"version": "2.17.1",
"createTime": "2022-03-16T12:26:40.317215Z",
"updateTime": "2022-03-16T12:26:40.317215Z"
}
]
}
사용 가능한 패키지가 많은 경우 API 응답이 페이지로 나눠질 수 있습니다. 목록이 불완전한 경우 연속 토큰 nextPageToken이 응답에 반환됩니다. nextPageToken은 마지막으로 반환된 결과를 나타냅니다. 후속 요청의 pageToken 매개변수에 nextPageToken 값을 전달하면 마지막 결과 이후에 시작하여 결과의 다음 페이지를 반환합니다.
결과의 다음 페이지를 보거나 페이지당 반환되는 객체 수를 늘리려면 다음 URL을 사용하세요.
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"
다음을 바꿉니다.
- NUMBER: 페이지당 반환할 항목 수입니다. 허용되는 최댓값은 1,000입니다.
- NEXT_PAGE_TOKEN: JSON 응답에서 반환된
nextPageToken토큰 값입니다.
또는 다음 스크립트를 사용하여 앞서 언급한 API 요청의 페이지로 나누어진 결과를 파일에 수집할 수 있습니다.
tempFile=$(mktemp)
nextPageToken=""
while
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000&pageToken=$nextPageToken" > $tempFile
nextPageToken=$(grep nextPageToken $tempFile | sed 's/ "nextPageToken": "//' | sed 's/.$//')
grep -v nextPageToken $tempFile >> FILENAME1
[ -n "$nextPageToken" ]
do
:
done
선택사항: 정렬된 기본 Java 패키지 이름 목록을 FILENAME2에 작성
다음 추가 명령줄 작업은 반환된 원시 Java 패키지 목록을 필터링하여 기본 패키지 이름만 포함된 목록을 제공합니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000" \
| grep artifactId | sort -f | uniq > FILENAME2
선택사항: Java 패키지 버전을 정렬된 목록으로 FILENAME3에 작성
다음 추가 명령줄 작업은 반환된 원시 Java 패키지 목록을 필터링하여 패키지 버전 목록만 제공합니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000" \
| grep name | sort -f | uniq > FILENAME3
Assured OSS에서 사용 가능한 모든 Python 패키지 나열
REST API를 사용하여 모든 Python 패키지와 버전을 나열할 수 있습니다. 이러한 패키지는 Python 3.8에서 사용할 수 있습니다.
Assured OSS 무료 등급의 경우 다음 HTTP 요청을 입력합니다.
GET https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages
Assured OSS의 프리미엄 등급의 경우 다음 HTTP 요청을 입력합니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages"
PROJECT_ID를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.
환경에 특정한 모든 패키지를 나열하려면 generator.sh 스크립트를 사용하세요.
다음 명령어는 무료 등급에서 Assured OSS Python 저장소에 연결하는 샘플 curl 명령어입니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages"
이 요청은 다음 샘플 응답과 비슷한 응답을 반환합니다.
{
"pythonPackages": [
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/Flask:2.1.2",
"uri":
"us-python.pkg.dev/cloud-aoss/cloud-aoss-python/flask/Flask-2.1.2-py3-none-any.whl",
"packageName": "Flask",
"version": "2.1.2",
"createTime": "2022-07-13T11:06:54.163313Z",
"updateTime": "2022-07-13T11:06:54.163313Z"
},
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/ujson:5.3.0",
"uri":
"us-python.pkg.dev/cloud-aoss/cloud-aoss-python/ujson/ujson-5.3.0-cp38-cp38-linux_x86_64.whl",
"packageName": "ujson",
"version": "5.3.0",
"createTime": "2022-07-13T11:06:17.263638Z",
"updateTime": "2022-07-13T11:06:17.263638Z"
},
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/ujson:5.4.0",
"uri":
"us-python.pkg.dev/cloud-aoss/cloud-aoss-python/ujson/ujson-5.4.0-cp38-cp38-linux_x86_64.whl",
"packageName": "ujson",
"version": "5.4.0",
"createTime": "2022-07-13T11:09:00.865162Z",
"updateTime": "2022-07-13T11:09:00.865162Z"
},
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/urllib3:1.26.8",
"uri":
"us-python.pkg.dev/cloud-aoss/cloud-aoss-python/urllib3/urllib3-1.26.8-py2.py3-none-any.whl",
"packageName": "urllib3",
"version": "1.26.8",
"createTime": "2022-07-13T11:05:56.529484Z",
"updateTime": "2022-07-13T11:05:56.529484Z"
}
]
}
사용 가능한 패키지가 많은 경우 API 응답이 페이지로 나눠질 수 있습니다. 목록이 불완전한 경우 연속 토큰 nextPageToken이 응답에 반환됩니다. nextPageToken은 마지막으로 반환된 결과를 나타냅니다. 후속 요청의 pageToken 매개변수에 nextPageToken 값을 전달하면 마지막 결과 이후에 시작하여 결과의 다음 페이지를 반환합니다.
결과의 다음 페이지를 보거나 페이지당 반환되는 객체 수를 늘리려면 무료 등급에서 다음 URL을 사용하세요.
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"
다음을 바꿉니다.
- NUMBER: 페이지당 반환할 항목 수입니다. 허용되는 최댓값은 1,000입니다.
- NEXT_PAGE_TOKEN: JSON 응답에서 반환된
nextPageToken토큰 값입니다.
또는 다음 스크립트를 사용하여 앞에서 언급한 API 요청의 페이지로 나눈 결과를 파일에 수집할 수 있습니다.
tempFile=$(mktemp)
nextPageToken=""
while
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000&pageToken=$nextPageToken" > $tempFile
nextPageToken=$(grep nextPageToken $tempFile | sed 's/ "nextPageToken": "//' | sed 's/.$//')
grep -v nextPageToken $tempFile >> FILENAME4
[ -n "$nextPageToken" ]
do
:
done
선택사항: 정렬된 기본 Python 패키지 이름을 FILENAME5에 작성
다음 추가 명령줄 작업은 반환된 원시 Python 패키지 목록을 필터링하여 기본 패키지 이름만 포함된 목록을 제공합니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000" \
| grep packageName | sort -f | uniq > FILENAME5
선택사항: 정렬된 Python 패키지 버전 목록을 FILENAME6에 작성
다음 추가 명령줄 작업은 반환된 원시 Python 패키지 목록을 필터링하여 패키지 버전만 나열합니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000" \
| grep name | sort -f | uniq > FILENAME6
Assured OSS에서 사용 가능한 모든 Go 패키지 나열
REST API를 사용하여 모든 Go 패키지와 버전을 나열할 수 있습니다.
Assured OSS 무료 등급의 경우 다음 HTTP 요청을 입력합니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages"
Assured OSS의 프리미엄 등급의 경우 다음 HTTP 요청을 입력합니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-go/packages
PROJECT_ID를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.
다음은 무료 등급에서 Go 저장소에 연결하는 샘플 curl 명령어입니다.
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages
이 요청은 다음과 비슷한 응답을 반환합니다.
{
"packages": [
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fauth",
"createTime": "2025-08-05T06:04:54.442071Z",
"updateTime": "2025-08-05T06:04:54.442071Z"
},
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fauth%2Foauth2adapt",
"createTime": "2025-08-05T06:04:41.242052Z",
"updateTime": "2025-08-05T06:04:41.242052Z"
},
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fcompute%2Fmetadata",
"createTime": "2025-08-05T06:05:31.140186Z",
"updateTime": "2025-08-05T06:05:31.140186Z"
},
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fiam",
"createTime": "2025-08-05T06:04:54.455300Z",
"updateTime": "2025-08-05T06:04:54.455300Z"
},
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Flogging",
"createTime": "2025-08-05T06:05:36.186851Z",
"updateTime": "2025-08-05T06:05:36.186851Z"
}
]
}
사용 가능한 패키지가 많은 경우 API 응답이 페이지로 나눠질 수 있습니다. 목록이 불완전한 경우 연속 토큰 nextPageToken이 응답에 반환됩니다. nextPageToken은 마지막으로 반환된 결과를 나타냅니다.
후속 요청의 pageToken 매개변수에 nextPageToken 값을 전달하면 마지막 결과 이후에 시작하여 결과의 다음 페이지를 반환합니다.
결과의 다음 페이지를 보거나 페이지당 반환되는 객체 수를 늘리려면 다음 URL을 사용하세요.
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"
다음을 바꿉니다.
- NUMBER: 페이지당 반환할 항목 수입니다. 허용되는 최댓값은 1,000입니다.
- NEXT_PAGE_TOKEN: JSON 응답에서 반환된
nextPageToken토큰 값입니다.
또는 다음 스크립트를 사용하여 API 요청의 페이지로 나눈 결과를 파일에 수집할 수 있습니다.
tempFile=$(mktemp)
nextPageToken=""
while
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=1000&pageToken=$nextPageToken" > $tempFile
nextPageToken=$(grep nextPageToken $tempFile | sed 's/ "nextPageToken": "//' | sed 's/.$//')
grep -v nextPageToken $tempFile >> FILENAME7
[ -n "$nextPageToken" ]
do
:
done
선택사항: 정렬된 기본 Go 패키지 이름 목록을 FILENAME8에 작성합니다.
다음 작업은 반환된 원시 Go 모듈 목록을 필터링하여 기본 패키지 이름 목록을 제공합니다.
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=1000" \
| grep name | sort -f | uniq > FILENAME8
선택사항: 정렬된 Go 패키지 버전을 FILENAME9에 작성합니다.
모든 Go 패키지 버전을 나열하는 직접 HTTP 요청은 사용할 수 없지만 특정 Go 패키지의 모든 버전을 나열할 수 있습니다. FILENAME8 목록에 식별된 각 Go 패키지의 버전을 반복적으로 나열하여 모든 Go 패키지 버전의 전체 목록을 생성할 수 있습니다.
다음 작업은 반환된 Go 패키지 버전의 원시 목록을 필터링하여 패키지 버전 목록을 제공합니다.
grep -o "packages/.*" FILENAME8 | tr -d '",' | cut -d '/' -f 2 | while read package_name; do curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/$package_name/versions | grep name | sort -f | uniq >> FILENAME9; done
다음 단계
- 원격 저장소 액세스 설정
- 직접 저장소 액세스를 사용하여 Java 패키지 다운로드
- 직접 저장소 액세스를 사용하여 Go 패키지 다운로드
- 직접 저장소 액세스를 사용하여 Python 패키지 다운로드
- 가상 저장소 액세스 설정하기
- 지원되는 Java 및 Python 패키지
- 지원되는 Go 패키지