이 문서에서는 assuredoss-metadata Cloud Storage 버킷에서 보안 메타데이터에 액세스하는 방법을 설명합니다. 보안 메타데이터에 대한 설명은
보안 메타데이터 필드를 참조하세요.
이 문서는 Assured OSS 프리미엄 등급에만 적용됩니다. 무료 등급은 Assured OSS 무료 등급의 서명 확인을 참조하세요.
시작하기 전에
연결을 검증합니다 요청된 서비스 계정의 Assured OSS에 대한
메타데이터 추출
gcloud 또는 curl 명령어를 사용하여 메타데이터를 다운로드할 수 있습니다.
다음 정보를 사용하여 두 메타데이터 모두의 URL을 구성합니다.
- 언어:
java,python,golang또는javascript입니다. 값은 소문자여야 합니다. Package_ID: 다음 중 하나입니다.
- Java:
groupId:artifactId - Python:
packageName - JavaScript:
@org-name/package-name또는@username/package-name또는package-name중 하나 - Go:
packageName
값은 소문자여야 합니다.
- Java:
버전: 패키지 버전입니다.
URL은 다음과 같은 형식이어야 합니다.
gcloud
gs://assuredoss-metadata/language/package_id/version/metadata.json
URL은 소문자여야 합니다.
샘플 URL은 다음과 같습니다.
샘플 Python URL:
gs://assuredoss-metadata/python/blessed/1.20.0/metadata.json샘플 Java URL:
gs://assuredoss-metadata/java/org.apache.logging.log4j:log4j-core/2.17.1/metadata.json샘플 JavaScript URL:
gs://assuredoss-metadata/javascript/@stoplight/spectral-core/0.0.0/metadata.json샘플 Go URL:
gs://assuredoss-metadata/golang/github.com/rs/zerolog/1.9.1/metadata.json
curl
https://storage.googleapis.com/assuredoss-metadata/language/package_id/version/metadata.json
URL은 소문자여야 합니다.
샘플 URL은 다음과 같습니다.
샘플 Python URL:
https://storage.googleapis.com/assuredoss-metadata/python/blessed/1.20.0/metadata.json샘플 Java URL:
https://storage.googleapis.com/assuredoss-metadata/java/org.apache.logging.log4j:log4j-core/2.17.1/metadata.json샘플 JavaScript URL:
https://storage.googleapis.com/assuredoss-metadata/javascript/@stoplight/spectral-core/0.0.0/metadata.json샘플 Go URL:
https://storage.googleapis.com/assuredoss-metadata/golang/github.com/rs/zerolog/1.9.1/metadata.json
- 메타데이터를 다운로드합니다.
gcloud
gcloud storage cp "gs://assuredoss-metadata/language/package_id/version/metadata.json" outputFolderLocation
curl
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -L https://storage.googleapis.com/assuredoss-metadata/language/package_id/version/metadata.json -o metadata.json
이제 서명을 확인할 수 있습니다. 다음의 2가지 옵션이 있습니다.
aoss-verifier 도구를 사용하여 다운로드한 패키지의 서명 확인
aoss-verifier 도구를 사용하여 패키지 메타데이터를 확인합니다.
이 도구를 사용하기 전에 Go를 설치합니다.
aoss-verifier 도구를 설치합니다.
$(go env GOPATH)/bin을 내보냅니다.aoss-verifier verify-metadata명령어를 실행합니다.aoss-verifier verify-metadata \ --metadata_type TYPE \ --language LANGUAGE \ --package_id PACKAGE_ID \ --version VERSION \ [--disable_certificate_verification] \ [--temp_downloads_path TEMP_DOWNLOADS_DIR_PATH] \ [--disable_deletes]다음을 바꿉니다.
TYPE: 사용할 수 있는 값은premiuminfo입니다.LANGUAGE: 패키지 언어입니다. 값은 소문자여야 합니다.PACKAGE_ID: Java의 경우 형식은groupId:artifactId입니다. Python 및 Go의 경우 형식은packageName입니다. 값은 소문자여야 합니다.VERSION: 패키지 버전입니다.
--disable_certificate_verification은 인증서 체인을 통해 리프 인증서와 루트 인증서의 일치를 건너뛰는 선택적 플래그입니다(사용되는 경우).--temp_downloads_path는 파일을 다운로드할 경로를 설정하는 선택적 플래그입니다(TEMP_DOWNLOADS_DIR_PATH변경). 플래그를 설정하지 않으면 파일이 현재 디렉터리의tmp_downloads폴더로 다운로드됩니다.--disable_deletes는 다운로드한 파일을 보관하는 선택적 플래그입니다. 기본적으로 이 도구는 다운로드한 모든 파일을 정리합니다.
자세한 내용은 README를 참조하세요.
다운로드한 패키지의 서명 수동 확인
프록시를 통해 Assured OSS에서 제공되는 바이너리가 아닌 Assured OSS에서 안전하게 빌드한 바이너리에 대한 아티팩트 서명만 확인할 수 있습니다.
다양한 도구를 사용하여 수동으로 서명을 확인할 수 있습니다. 다음 단계에서는 gcloud CLI, OpenSSL (버전 3.0.1 이상), jq(1.7.1 이상)를 사용하여 Linux의 서명을 확인합니다.
메타데이터 파일을 다운로드합니다. 보안 메타데이터 필드의 설명대로 메타데이터 파일의
buildInfo필드 안에SBOM필드가 있습니다. SBOM에는 서명을 나타내는 주석과 함께 빌드된 아티팩트 (예: JAR 또는 EGG 파일)가 포함됩니다. 이 아티팩트를 사용하면 SPDX ID를 확인할 수 있습니다.예를 들어 아티팩트 이름이
artifact_name이면spdx_id은SPDXRef-Package-artifact_name입니다. 이름이gradio-3.30.0-py3-none-any.whl인 패키지의 유효성을 검사하는 경우spdx_id는SPDXRef-Package-gradio-3.30.0-py3-none-any.whl입니다.메타데이터 파일에서 SHA-256 다이제스트를 추출합니다.
cat METADATA_FILENAME | jq -rj '.buildInfo' | jq -rj '.sbom' | jq -rj '.packages' | jq '.[] | select(.SPDXID=="SPDX_ID")' | jq -rj '.annotations[0].comment' | jq -rj '.digest[0].digest' | cut -d ' ' -f1 > expectedDigest.txt
다음을 바꿉니다.
METADATA_FILENAME: 보안 메타데이터 파일 이름입니다.SPDX_ID: SPDX 식별자입니다.
아티팩트 다이제스트를 계산합니다.