Assured Open Source Software(Assured OSS) 프리미엄 등급을 사용하면 Google에서 자체 개발자 워크플로에 사용하는 OSS 패키지를 사용하여 코드 보안을 강화할 수 있습니다. Assured OSS를 사용할 경우 개발자는 Google이 자체 오픈소스 종속 항목의 보호를 위해 적용하는 보안 전문 기술과 경험을 활용할 수 있습니다.
Assured OSS를 Security Command Center와 통합하면 다음을 수행할 수 있습니다.
- TensorFlow, Pandas, Scikit-learn과 같은 일반적인 머신러닝 및 인공지능 프로젝트를 포함하여 수천 개의 선별되고 가장 많이 사용되는 Java, Python, Go 패키지 중에서 선택합니다.
- Assured OSS 증명이 포함된 모든 Java, Python, Go, JavaScript 패키지를 다운로드하도록 보안 프록시를 구성하여 Google을 신뢰할 수 있는 알려진 공급업체로 만듭니다.
- SPDX 및 CycloneDX와 같은 업계 표준 형식으로 제공되는 Assured OSS의 SBOM과 VEX를 사용하여 재료에 대해 자세히 알아봅니다.
- Google에서 제공하는 서명된 조작 방지 출처를 통해 사용 중인 패키지의 무결성에 대한 신뢰도를 향상시킵니다.
- Google에서 선별된 패키지에서 새로운 취약점을 적극적으로 스캔, 발견, 수정하여 보안 위험을 줄입니다.
시작하기 전에
이 페이지의 남은 태스크를 수행하기 전에 먼저 다음 태스크를 수행하세요.
Security Command Center Enterprise 등급 활성화
Security Command Center Enterprise 등급이 조직 수준에서 활성화되었는지 확인합니다.
조직 수준에서 권한 설정
조직 수준 및 프로젝트 수준에서 권한을 설정해야 합니다.
-
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
IAM으로 이동 - 조직을 선택합니다.
-
주 구성원 열에서 나 또는 내가 속한 그룹을 식별하는 모든 행을 찾습니다. 내가 속한 그룹을 알아보려면 관리자에게 문의하세요.
- 나를 지정하거나 포함하는 모든 행의 역할 열을 확인하여 역할 목록에 필요한 역할이 포함되어 있는지 확인합니다.
-
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
IAM으로 이동 - 조직을 선택합니다.
- 액세스 권한 부여를 클릭합니다.
-
새 주 구성원 필드에 사용자 식별자를 입력합니다. 일반적으로 Google 계정의 이메일 주소입니다.
- 역할 선택을 클릭한 후 역할을 검색합니다.
- 역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.
- 저장을 클릭합니다.
조직에 다음 역할이 있는지 확인합니다. 보안 센터 관리자, 조직 관리자
역할 확인
역할 부여
프로젝트 수준에서 권한 설정
-
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
IAM으로 이동 - 프로젝트를 선택합니다.
-
주 구성원 열에서 나 또는 내가 속한 그룹을 식별하는 모든 행을 찾습니다. 내가 속한 그룹을 알아보려면 관리자에게 문의하세요.
- 나를 지정하거나 포함하는 모든 행의 역할 열을 확인하여 역할 목록에 필요한 역할이 포함되어 있는지 확인합니다.
-
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
IAM으로 이동 - 프로젝트를 선택합니다.
- 액세스 권한 부여를 클릭합니다.
-
새 주 구성원 필드에 사용자 식별자를 입력합니다. 일반적으로 Google 계정의 이메일 주소입니다.
- 역할 선택을 클릭한 후 역할을 검색합니다.
- 역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.
- 저장을 클릭합니다.
프로젝트에 다음 역할이 있는지 확인합니다. 서비스 사용량 관리자, 서비스 계정 관리자, 프로젝트 IAM 관리자
역할 확인
역할 부여
Google Cloud CLI 설정
Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.
Google Cloud 콘솔 하단에 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.
Assured OSS 설정
콘솔
Google Cloud 콘솔에서 Security Command Center 설정 가이드로 이동합니다.
표시된 조직이 Security Command Center Enterprise 등급을 활성화한 조직인지 확인합니다.
보안 기능 요약 검토 패널을 펼칩니다.
코드 보안 > 설정을 클릭합니다.
코드 보안 설정 패널에서 AOSS 설정을 클릭합니다.
새 서비스 계정을 선택하거나 Assured 오픈소스 소프트웨어 권한을 추가하려는 기존 서비스 계정을 선택합니다.
Assured OSS 리소스를 찾으려는 Google Cloud 프로젝트를 선택합니다.
Assured OSS 설정을 클릭합니다.
설정 프로세스는 자동으로 다음을 완료합니다.
- 선택하면 새 서비스 계정
assuredoss@PROJECT_ID.gservicesaccount.com이 생성됩니다. - Assured OSS와 함께 사용하도록 지정된 서비스 계정에 Assured OSS 사용자 역할을 할당합니다.
- 계정이 서비스를 구성할 수 있도록 로그인한 사용자 계정에 Assured OSS 관리자 역할을 할당합니다.
- Assured 오픈소스 소프트웨어 API를 사용 설정하고 Artifact Registry API가 아직 사용 설정되지 않았으면 사용 설정합니다.
- 선택한 프로젝트의 Artifact Registry 인스턴스에서 Assured OSS 프록시 서비스를 설정합니다. 저장소는 각 언어 (Java, Python, Go, JavaScript)에 프로비저닝됩니다. 이러한 저장소는 선별된 포트폴리오에서 패키지를 자동으로 가져올 수 있습니다. 패키지가 선별된 포트폴리오의 일부로 제공되지 않은 경우 저장소가 요청을 표준 저장소로 리디렉션합니다. 프록시 서비스는 미국 리전만 지원합니다. 자세한 내용은 Assured OSS 저장소 옵션을 참고하세요.
- Google 소유 프로젝트의 패키지 메타데이터 및 알림에 액세스할 수 있는 권한을 사용자 및 서비스 계정에 부여합니다.
- 선택하면 새 서비스 계정
지정된 각 Assured OSS 서비스 계정의 서비스 계정 키를 만들고 키를 JSON 형식으로 다운로드합니다.
로컬 머신의 명령줄에서 다운로드한 키 파일에 다음 명령어를 실행하여 base64로 인코딩된 문자열을 가져옵니다.
base64 KEY_FILENAME.json
KEY_FILENAME.json을 다운로드한 서비스 계정 키 이름으로 바꿉니다.Assured OSS에 대해 원격 저장소를 설정할 때 base64로 인코딩된 문자열이 필요합니다.
패키지를 다운로드하려면 Assured OSS가 각 언어에 대해 프로비저닝하는 엔드포인트를 사용합니다. 나중에 사용할 수 있도록 이러한 엔드포인트를 기록해 둡니다.
- 자바
https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
- Python
https://us-python.pkg.dev/
PROJECT_ID/assuredoss-python - JavaScript:
https://us-npm.pkg.dev/
PROJECT_ID/assuredoss-javascript - Go:
https://us-go.pkg.dev/
PROJECT_ID/assuredoss-go
PROJECT_ID를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.- 자바
다음을 클릭합니다. JFrog Artifactory 또는 Sonatype Nexus와 같은 조직의 아티팩트 저장소 관리자를 사용하여 Assured OSS를 구성합니다.
gcloud
Assured OSS를 사용 설정하는 데 사용하려는 사용자 계정을 이용해서 Google Cloud 에 인증합니다.
gcloud auth revoke gcloud auth application-default revoke gcloud auth login
Assured OSS 리소스를 찾으려는 프로젝트를 검색합니다.
gcloud alpha projects search --query="displayName=PROJECT_NAME"
PROJECT_NAME을 프로젝트 이름으로 바꿉니다.Assured OSS 리소스를 찾으려는 프로젝트를 설정합니다.
gcloud config set project PROJECT_ID
PROJECT_ID를 프로젝트 식별자로 바꿉니다.Assured OSS를 설정하도록 사용자 계정에 역할을 부여합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:email@domain.com \ --role=roles/assuredoss.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:email@domain.com \ --role=roles/serviceusage.serviceUsageAdmin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:email@domain.com \ --role=roles/iam.serviceAccountAdmin
여기서
email@domain.com은 사용자 계정의 이메일 주소입니다.프로젝트에서 Assured OSS를 사용 설정합니다. Assured OSS를 사용 설정하면 Artifact Registry API도 사용 설정됩니다.
gcloud services enable assuredoss.googleapis.com
기존 서비스 계정을 사용하는 대신 Assured OSS에 대해 새 서비스 계정을 만들려면 다음을 수행합니다.
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \ --description="Service account for using Assured OSS" --display-name="Assured OSS service account"
SERVICE_ACCOUNT_NAME을 서비스 계정의 이름(예:assuredoss)으로 바꿉니다.Assured OSS의 서비스 계정을 구성합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role roles/assuredoss.user
다음을 바꿉니다.
SERVICE_ACCOUNT_NAME: 서비스 계정의 이름(예:assuredoss)PROJECT_ID: 프로젝트 식별자
- gcloud를 사용하여 Assured OSS Premium을 설정한 후 보안 메타데이터 저장소에 액세스하려면 Assured OSS에 대해 사용 설정한 서비스 계정을 포함하여 customer-support-aoss@google.com으로 이메일을 보내세요.
Assured OSS 저장소를 만들어서 Artifact Registry 인스턴스에서 Assured OSS 프록시 서비스를 설정합니다. 모든 언어에 대해 저장소를 만들어야 합니다. 저장소를 프로비저닝하는 Assured OSS 프록시 서비스만 미국 리전을 지원합니다.
alias gcurlj='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -X' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-java -d '{"format": "MAVEN", "mode": "AOSS_REPOSITORY"}' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-javascript -d '{"format": "NPM", "mode": "AOSS_REPOSITORY"}' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-python -d '{"format": "PYTHON", "mode": "AOSS_REPOSITORY"}' gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-go -d '{"format": "GO", "mode": "AOSS_REPOSITORY"}'PROJECT_ID를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.이러한 저장소는 선별된 포트폴리오에서 패키지를 자동으로 가져올 수 있습니다. 패키지가 선별된 포트폴리오의 일부로 제공되지 않은 경우 저장소가 요청을 표준 저장소로 리디렉션합니다.
Assured OSS 서비스 계정마다 서비스 계정 키를 만들고 키를 JSON 형식으로 다운로드합니다.
명령줄에서 다운로드한 키 파일에 다음 명령어를 실행하여 base64 인코딩 문자열을 가져옵니다.
base64 KEY_FILENAME.json
KEY_FILENAME.json을 다운로드한 서비스 계정 키 이름으로 바꿉니다.Assured OSS에 대해 원격 저장소를 설정할 때 base64로 인코딩된 문자열이 필요합니다.
패키지를 다운로드하려면 각 언어에 대해 Assured OSS에서 프로비저닝된 엔드포인트를 사용합니다. 다음 엔드포인트를 기록해 둡니다.
- 자바
https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
- Python
https://us-python.pkg.dev/
PROJECT_ID/assuredoss-python - JavaScript:
https://us-npm.pkg.dev/
PROJECT_ID/assuredoss-javascript - Go:
https://us-go.pkg.dev/
PROJECT_ID/assuredoss-go
PROJECT_ID를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.- 자바
JFrog Artifactory 또는 Sonatype Nexus와 같은 조직의 아티팩트 저장소 관리자를 사용하여 패키지를 다운로드하도록 Assured OSS를 구성합니다.
원하는 경우 사용 가능한 Java, Python, Go, JavaScript 패키지를 확인합니다.
gcloud auth revoke gcloud auth application-default revoke gcloud auth login --cred-file=KEY_FILENAME.json
KEY_FILENAME.json을 다운로드한 서비스 계정 키 이름으로 바꿉니다.export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
KEY_FILENAME.json을 다운로드한 서비스 계정 키 이름으로 바꿉니다.gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages" gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages" gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-javascript/packages" gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-go/packages"
PROJECT_ID를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.
다음 단계
- VPC 서비스 제어 지원 구성
- 연결 검증
- Go 패키지 다운로드
- Java 패키지 다운로드
- Python 패키지 다운로드
- 원격 저장소 구성
- 보안 메타데이터 확인
- 패키지 업데이트 알림 구성