Assured 오픈소스 소프트웨어(Assured OSS) 프리미엄 등급을 사용하면 Google에서 자체 개발자 워크플로에 사용하는 OSS 패키지를 사용하여 코드 보안을 강화할 수 있습니다. Assured OSS를 사용할 경우 개발자는 Google이 자체 오픈소스 종속 항목의 보호를 위해 적용하는 보안 전문 기술과 경험을 활용할 수 있습니다.
Assured OSS를 Security Command Center와 통합하면 다음을 수행할 수 있습니다.
- TensorFlow, Pandas, Scikit-learn과 같은 일반적인 머신러닝 및 인공지능 프로젝트를 포함하여 수천 개의 선별되고 가장 많이 사용되는 Java 및 Python 패키지 중에서 선택합니다.
- Assured OSS 증명이 포함된 모든 Java, Python, JavaScript 패키지를 다운로드하도록 보안 프록시를 구성하여 Google을 신뢰할 수 있는 알려진 공급업체로 만듭니다.
- SPDX 및 CycloneDX와 같은 업계 표준 형식으로 제공되는 Assured OSS의 SBOM과 VEX를 사용하여 재료에 대해 자세히 알아봅니다.
- Google에서 제공하는 서명된 조작 방지 출처를 통해 사용 중인 패키지의 무결성에 대한 신뢰도를 향상시킵니다.
- Google에서 선별된 패키지에서 새로운 취약점을 적극적으로 스캔, 발견, 수정하여 보안 위험을 줄입니다.
시작하기 전에
이 페이지의 남은 태스크를 수행하기 전에 먼저 다음 태스크를 수행하세요.
Security Command Center Enterprise 등급 활성화
Security Command Center Enterprise 등급이 조직 수준에서 활성화되었고 설정 가이드의 처음 6개 단계를 완료했는지 확인합니다.
조직 수준에서 권한 설정
조직 수준 및 프로젝트 수준에서 권한을 설정해야 합니다.
-
조직에 다음 역할이 있는지 확인합니다. Security Center Admin, Organization Admin
역할 확인
-
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
IAM으로 이동 - 조직을 선택합니다.
-
주 구성원 열에서 이메일 주소가 있는 행을 찾습니다.
이메일 주소가 열에 없으면 역할이 없는 것입니다.
- 이메일 주소가 있는 행에 대해 역할 열에서 역할 목록에 필요한 역할이 있는지 확인합니다.
역할 부여
-
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
IAM으로 이동 - 조직을 선택합니다.
- 액세스 권한 부여를 클릭합니다.
- 새 주 구성원 필드에 이메일 주소를 입력합니다.
- 역할 선택 목록에서 역할을 선택합니다.
- 역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.
- 저장을 클릭합니다.
-
프로젝트 수준에서 권한 설정
-
프로젝트에 다음 역할이 있는지 확인합니다. Service Usage Admin, Service Account Admin, Project IAM Admin
역할 확인
-
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
IAM으로 이동 - 프로젝트를 선택합니다.
-
주 구성원 열에서 이메일 주소가 있는 행을 찾습니다.
이메일 주소가 열에 없으면 역할이 없는 것입니다.
- 이메일 주소가 있는 행에 대해 역할 열에서 역할 목록에 필요한 역할이 있는지 확인합니다.
역할 부여
-
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
IAM으로 이동 - 프로젝트를 선택합니다.
- 액세스 권한 부여를 클릭합니다.
- 새 주 구성원 필드에 이메일 주소를 입력합니다.
- 역할 선택 목록에서 역할을 선택합니다.
- 역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.
- 저장을 클릭합니다.
-
Google Cloud CLI 설정
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Assured OSS 설정
콘솔
Google Cloud 콘솔에서 Security Command Center 위험 개요 페이지로 이동합니다.
표시된 조직이 Security Command Center Enterprise 등급을 활성화한 조직인지 확인합니다.
설정 가이드 보기를 클릭합니다.
코드 보안 설정을 클릭합니다.
새 서비스 계정을 선택하거나 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, JavaScript)에 프로비저닝됩니다. 이러한 저장소는 선별된 포트폴리오에서 패키지를 자동으로 가져올 수 있습니다. 패키지가 선별된 포트폴리오의 일부로 제공되지 않은 경우 저장소가 요청을 표준 저장소로 리디렉션합니다. 프록시 서비스는 미국 리전만 지원합니다.
- Google 소유 프로젝트의 패키지 메타데이터 및 알림에 액세스할 수 있는 권한을 사용자 및 서비스 계정에 부여합니다.
- 선택하면 새 서비스 계정
지정된 각 Assured OSS 서비스 계정의 서비스 계정 키를 만들고 키를 JSON 형식으로 다운로드합니다.
로컬 머신의 명령줄에서 다운로드한 키 파일에 다음 명령어를 실행하여 base64로 인코딩된 문자열을 가져옵니다.
base64 KEY_FILENAME.json
KEY_FILENAME.json
을 다운로드한 서비스 계정 키 이름으로 바꿉니다.Assured OSS에 대해 원격 저장소를 설정할 때 base64로 인코딩된 문자열이 필요합니다.
패키지를 다운로드하려면 Assured OSS가 각 언어에 대해 프로비저닝하는 엔드포인트를 사용합니다. 나중에 사용할 수 있도록 이러한 엔드포인트를 기록해 둡니다.
- Java:
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
PROJECT_ID
를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.- Java:
다음을 클릭합니다. 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
: 프로젝트 식별자
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"}'
PROJECT_ID
를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.이러한 저장소는 선별된 포트폴리오에서 패키지를 자동으로 가져올 수 있습니다. 패키지가 선별된 포트폴리오의 일부로 제공되지 않은 경우 저장소가 요청을 표준 저장소로 리디렉션합니다.
각 Assured OSS 서비스 계정의 서비스 계정 키를 만들고 키를 JSON 형식으로 다운로드합니다.
명령줄에서 다운로드한 키 파일에 다음 명령어를 실행하여 base64 인코딩 문자열을 가져옵니다.
base64 KEY_FILENAME.json
KEY_FILENAME.json
을 다운로드한 서비스 계정 키 이름으로 바꿉니다.Assured OSS에 대해 원격 저장소를 설정할 때 base64로 인코딩된 문자열이 필요합니다.
패키지를 다운로드하려면 각 언어에 대해 Assured OSS에서 프로비저닝된 엔드포인트를 사용합니다. 다음 엔드포인트를 기록해 둡니다.
- Java:
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
PROJECT_ID
를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.- Java:
JFrog Artifactory 또는 Sonatype Nexus와 같은 조직의 아티팩트 저장소 관리자를 사용하여 패키지를 다운로드하도록 Assured OSS를 구성합니다.
원하는 경우 사용 가능한 Java, Python, 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"
PROJECT_ID
를 Assured OSS 설정 시 선택한 프로젝트 ID로 바꿉니다.