커넥터 저장소는 업스트림 소스의 프록시 역할을 하며 모든 요청이 업스트림 소스에서 처리되도록 합니다. 원격 저장소와 달리 커넥터 저장소는 아티팩트를 캐시하지 않습니다. 따라서 커넥터 저장소는 업스트림 소스의 완전한 감사 가능성이 필요하거나 아티팩트 캐싱을 방지하는 서드 파티 정책을 준수해야 하는 경우에 유용합니다.
이 페이지에서는 Artifact Registry 커넥터 저장소를 만드는 방법을 설명합니다.
지원되는 커넥터 형식
Artifact Registry는 Docker 형식 커넥터 저장소만 지원합니다.
시작하기 전에
- Artifact Registry API를 사용 설정하고 Google Cloud CLI를 설치합니다.
- 선택사항: gcloud CLI 명령어의 기본값을 구성합니다.
- 저장소 콘텐츠를 암호화하는 데 고객 관리 암호화 키 (CMEK)가 필요한 경우 저장소의 Cloud KMS에 키를 만들고 사용 설정합니다.
Secret Manager API를 사용 설정합니다.
gcloud services enable secretmanager.googleapis.com \ --project=PROJECT_IDArtifact Registry가 VPC 서비스 제어 서비스 경계에 있는 경우 Access Context Manager API가 아직 사용 설정되지 않은 경우 사용 설정합니다.
gcloud services enable accesscontextmanager.googleapis.com \ --project=PROJECT_ID
필요한 역할
저장소를 관리하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
커넥터 저장소를 만들고 개별 저장소에 대한 액세스 권한 부여:
Artifact Registry 관리자 (
roles/artifactregistry.admin) 프로젝트의 -
보안 비밀 버전에 업스트림 저장소 사용자 인증 정보 저장:
Secret Manager 관리자 (
roles/secretmanager.admin) 프로젝트의 -
VPC 서비스 제어 서비스 경계 외부의 업스트림 소스에 대한 액세스 권한 부여:
Access Context Manager 편집자 (
roles/accesscontextmanager.policyEditor) 액세스 정책이 적용되는 리소스의 조직에 대한
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
커넥터 저장소 만들기
커넥터 저장소를 만들 때는 다음 설정을 구성해야 하며 이 설정은 저장소가 생성된 후에는 변경할 수 없습니다.
- 아티팩트 형식(Docker만 가능)
- 커넥터로 설정된 저장소 모드
- 커넥터 저장소 업스트림 소스
- 저장소 위치
- 또는 고객 관리 암호화 키를 사용한 암호화 Google Cloud-powered encryption keys Artifact Registry는 Google Cloud-powered encryption keys 기본적으로를 사용합니다.
Artifact Registry는 조직 정책 제약조건 CMEK가 리소스를 암호화하도록 요구하거나 CMEK 보호에 사용할 수 있는 Cloud KMS 키를 제한하는 을 적용합니다.
콘솔
콘솔에서 저장소 페이지를 엽니다. Cloud de Confiance
저장소 만들기 를 클릭합니다.
저장소 이름을 지정합니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.
형식 섹션에서 Docker 를 선택합니다.
저장소 모드 섹션에서 커넥터 를 선택합니다.
커넥터 저장소 소스 섹션에서 다음 옵션 중 하나를 선택합니다.
- Docker Hub: 커넥터는 Docker Hub (
https://docker.io)를 업스트림 저장소로 사용합니다. - 커스텀: 커넥터는 업스트림 저장소에 다른 Docker 업스트림 URL을 사용합니다.
- Docker Hub: 커넥터는 Docker Hub (
커스텀을 선택한 경우 커스텀 저장소 필드에 전체 저장소 URL을 입력합니다. 저장소를 만든 후에는 URL을 변경할 수 없습니다.
일반적인 업스트림 URL의 예시는 커스텀 업스트림을 참조하세요.
커넥터 저장소 인증 모드 섹션에서 다음을 입력합니다.
- 업스트림 저장소의 사용자 이름
- Secret Manager에 사용자 인증 정보를 저장할 보안 비밀
저장소를 만든 후에는 이 값을 수정할 수 있습니다.
위치 유형 섹션에서 저장소의 위치를 선택합니다.
위치 유형(리전 또는 멀티 리전)을 선택합니다. 선택 사항이 반영되도록 위치 목록이 변경됩니다.
리전 또는 멀티 리전 목록에서 위치를 선택합니다.
위치 유형 및 지원되는 위치에 대한 자세한 내용은 저장소 위치를 참조하세요.
저장소에 대한 설명을 추가합니다. 설명은 저장소의 용도와 저장소에 포함된 아티팩트의 종류를 식별하는 데 도움이 됩니다.
저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.
라벨을 사용하여 저장소를 구성하려면 라벨 추가를 클릭하고 라벨의 키-값 쌍을 입력합니다. 저장소를 만든 후 라벨을 추가, 수정 또는 삭제할 수 있습니다.
암호화 섹션에서 저장소의 암호화 메커니즘을 선택합니다.
- Google Cloud-powered encryption key - 저장소 콘텐츠를 a Google Cloud-powered encryption key로 암호화합니다.
- 고객 관리 키 - Cloud Key Management Service를 통해 제어하는 키로 저장소 콘텐츠를 암호화합니다. 키 설정 안내는 저장소의 CMEK 설정을 참조하세요.
Artifact Analysis 섹션에서 취약점 스캔 설정을 선택합니다.
사용 설정됨 - 이 저장소에서 스캔을 허용합니다. 프로젝트에서 Container Scanning API를 사용 설정해야 합니다.
Container Scanning API를 사용 설정하는 즉시 요금이 부과되기 시작합니다. 프로젝트에서 Container Scanning API를 사용 설정하면 모든 신규 및 기존 저장소에 취약점 스캔이 사용 설정됩니다. Artifact Registry에 이미지를 푸시하면 Artifact Analysis에서 자동으로 스캔합니다.
사용 중지됨 - 이 저장소에서 스캔을 방지합니다. 프로젝트에서 Container Scanning API를 사용 설정하면 다른 저장소에서 스캔이 계속됩니다. 이 저장소는 제외됩니다.
취약점 스캔 옵션에 대한 자세한 내용은 자동 스캔 사용 설정 및 중지를 참조하세요.
만들기 를 클릭합니다.
Artifact Registry는 저장소를 만들고 이를 저장소 목록에 추가합니다.
gcloud CLI
커넥터 저장소를 만들려면 Docker 커넥터 저장소 또는 커스텀 커넥터 저장소를 만드는 명령어를 실행합니다.
gcloud artifacts repositories create CONNECTOR-REPOSITORY-NAME \
--project=PROJECT_ID \
--location=LOCATION \
--description="DESCRIPTION" \
--repository-format=docker \
--mode=connector-repository \
--remote-docker-repo="UPSTREAM-NAME" \
--remote-username="USERNAME" \
--remote-password-secret-version="PASSWORD" \
저장소를 커넥터 저장소로 정의하려면 --mode=connector-repository 플래그가 필요합니다. --repository-format은 docker여야 합니다.
다음을 바꿉니다.
CONNECTOR-REPOSITORY-NAME: 저장소의 이름입니다. 프로젝트의 저장소 위치마다 저장소 이름이 고유해야 합니다.PROJECT_ID: 프로젝트 ID입니다. 이 플래그를 생략하면 현재 프로젝트 또는 기본 프로젝트가 사용됩니다.LOCATION: 저장소의 리전 또는 멀티 리전 위치입니다. 기본값을 설정하는 경우 이 플래그를 생략할 수 있습니다. 지원되는 저장소 위치 목록을 보려면gcloud artifacts locations list명령어를 실행합니다.DESCRIPTION: 선택사항입니다. 커넥터 저장소에 대한 설명입니다. 저장소 설명은 암호화되지 않으므로 민감한 정보는 포함하지 마세요.UPSTREAM-NAME: 업스트림 저장소의 사전 설정 업스트림 이름 또는 사용자 정의 URL입니다.USERNAME: 선택사항입니다. 업스트림 저장소에 인증하기 위한 사용자 이름입니다.PASSWORD: 선택사항입니다. 업스트림 저장소 비밀번호가 포함된 보안 비밀 버전입니다.
예를 들어 다음 명령어는 업스트림 Jfrog 저장소를
프로젝트 my-project에 연결하는
my-connector-repo라는 커넥터 저장소를 만듭니다. Cloud de Confiance 업스트림 저장소의 전체 URL은 https://my-account.jfrog.io/scoped-repo입니다.
gcloud artifacts repositories create my-connector-repo \
--project=my-project \
--location=us-east1 \
--repository-format=docker \
--mode=connector-repository \
--remote-docker-repo=https://my-account.jfrog.io/scoped-repo \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1
업스트림 저장소 인증에 대한 자세한 내용은 다음 업스트림 소스에 커넥터 저장소 인증을 참조하세요.
Terraform
google_artifact_registry_repository 리소스
를 사용하여 저장소를 만듭니다.
terraform-provider-google 버전 5.0.0 이상이 필요합니다.
에서 Terraform을 처음 사용하는 경우 Cloud de Confiance by S3NS 시작하기 - Cloud de Confiance by S3NS 페이지를 HashiCorp 웹사이트에서 참조하세요.
다음 예시에서는 Terra 리소스 이름 my-repo인 프로바이더와 커넥터 저장소를 정의합니다.
```hcl
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "NAME" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "docker"
mode = "REMOTE_REPOSITORY"
# Setting mode="REMOTE_REPOSITORY" and no_cache() together configures the repository as a connector-type repository.
remote_repository_config {
description = "CONFIG_DESCRIPTION"
docker_repository {
public_repository = "DOCKER_HUB"
}
no_cache {}
}
}
```
Replace the following:
* `PROJECT-ID`: the Cloud de Confiance project ID.
* `NAME`: the name of your repository.
* `LOCATION`: the repository location.
* `REPOSITORY_ID`: the repository ID.
* `DESCRIPTION`: optional. A description for the repository.
Do not include sensitive data. Repository descriptions are
not encrypted.
* `KEY`: the name of the Cloud Key Management Service key, if you are using
[customer-managed encryption keys][cmek] (CMEK) for encryption. Omit
this argument to use the default setting, Google-managed encryption
keys.
* `CONFIG_DESCRIPTION`: optional. A description of the remote
source.
저장소를 만든 후 다음을 수행합니다.
- 저장소에 대한 액세스 권한을 부여합니다.
- 저장소 인증을 위해 Docker, 패키지 관리자, 기타 서드 파티 클라이언트를 구성합니다.
- 해당 업스트림 소스에 대해 인증하도록 Artifact Registry 커넥터 저장소를 구성합니다. authenticate to their upstream sources.
저장소 설명 수정
콘솔 또는 gcloud CLI에서 저장소 설명을 변경할 수 있습니다. Cloud de Confiance
콘솔
콘솔에서 저장소 페이지를 엽니다. Cloud de Confiance
저장소 목록에서 저장소를 선택하고 저장소 수정 을 클릭합니다.
저장소 설명을 수정한 후 저장을 클릭합니다.
gcloud
저장소 설명을 업데이트하려면 다음 명령어를 실행합니다.
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT \
--location=LOCATION \
--description="DESCRIPTION"
다음을 바꿉니다.
REPOSITORY: 저장소의 이름입니다. 기본 저장소를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.PROJECT: 프로젝트 ID입니다. Cloud de Confiance by S3NS이 플래그를 생략하면 현재 프로젝트 또는 기본 프로젝트가 사용됩니다.-
LOCATION은 저장소의 리전 위치입니다. 특정 위치의 저장소를 보려면 이 플래그를 사용합니다. 기본 위치를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다. DESCRIPTION: 저장소에 대한 설명입니다.
서비스 경계의 업스트림 소스에 액세스
VPC 서비스 제어 서비스 경계의 서비스는 경계 외부의 리소스에 대한 액세스가 제한됩니다.
지정된 Cloud de Confiance 프로젝트 및 위치 내에서 업스트림 소스에 대한 액세스를 허용하거나 거부할 수 있습니다.
기본적으로 Artifact Registry는 명시적으로 액세스 권한을 부여하지 않으면 업스트림 소스에 대한 액세스를 거부합니다.
Artifact Registry의 경우 필수 역할은 Artifact Registry 관리자(roles/artifactregistry.admin)입니다.
업스트림 소스 설정 보기
특정 프로젝트 및 위치 조합에 대한 구성을 보려면 다음 명령어를 실행합니다.
gcloud artifacts vpcsc-config describe \
--project=PROJECT_ID \
--location=LOCATION
예를 들어 프로젝트 my-project의 us-east1에 있는 커넥터 저장소에 대한 설정을 보려면 다음 명령어를 사용합니다.
gcloud artifacts vpcsc-config describe \
--project=my-project \
--location=us-east1
업스트림 소스에 대한 액세스 허용
지정된 위치에 있는 업스트림 소스에 대한 액세스를 허용하려면 다음 명령어를 실행합니다.
gcloud artifacts vpcsc-config allow \
--project=PROJECT_ID \
--location=LOCATION
예를 들어 다음 명령어를 사용하여 프로젝트 my-project의 us-east1에 있는 모든 커넥터 저장소가 경계 외부의 업스트림 소스에 액세스하도록 허용합니다.
gcloud artifacts vpcsc-config allow \
--project=my-project \
--location=us-east1
업스트림 소스에 대한 액세스 거부
지정된 위치에 있는 업스트림 소스에 대한 액세스를 거부하려면 다음 명령어를 실행합니다.
gcloud artifacts vpcsc-config deny \
--project=PROJECT_ID \
--location=LOCATION
예를 들어 다음 명령어를 사용하여 프로젝트 my-project의 us-west1에서 모든 커넥터 저장소의 경계 외부에 있는 업스트림 소스에 대한 액세스를 차단합니다.
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
다음 단계
- Artifact Registry 커넥터 저장소에 대해 자세히 알아보세요.
- 업스트림 소스에 커넥터 저장소 인증.