Repositori konektor bertindak sebagai proxy ke sumber upstream dan membantu memastikan bahwa semua permintaan ditangani oleh sumber upstream. Tidak seperti repositori jarak jauh, repositori konektor tidak menyimpan artefak dalam cache. Oleh karena itu, repositori konektor berguna jika Anda memerlukan auditabilitas penuh sumber upstream atau jika Anda harus mematuhi kebijakan pihak ketiga yang mencegah penyimpanan artefak dalam cache.
Halaman ini menjelaskan cara membuat repositori konektor Artifact Registry.
Format konektor yang didukung
Artifact Registry hanya mendukung repositori konektor berformat Docker.
Sebelum memulai
- Aktifkan Artifact Registry API, dan instal Google Cloud CLI.
- Opsional: konfigurasikan default untuk perintah gcloud CLI.
- Jika Anda memerlukan kunci enkripsi yang dikelola pelanggan (CMEK) untuk mengenkripsi konten repositori, lalu buat dan aktifkan kunci di Cloud KMS untuk repositori.
Aktifkan Secret Manager API.
gcloud services enable secretmanager.googleapis.com \ --project=PROJECT_IDJika Artifact Registry berada dalam perimeter layanan Kontrol Layanan VPC, aktifkan Access Context Manager API jika belum diaktifkan.
gcloud services enable accesscontextmanager.googleapis.com \ --project=PROJECT_ID
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengelola repositori, minta administrator untuk memberi Anda peran IAM berikut:
-
Membuat repositori konektor dan memberikan akses ke repositori individual:
Admin Artifact Registry (
roles/artifactregistry.admin) di project -
Menyimpan kredensial repositori upstream Anda dalam versi rahasia:
Admin Secret Manager (
roles/secretmanager.admin) di project -
Memberikan akses ke sumber upstream di luar perimeter layanan Kontrol Layanan VPC:
Editor Access Context Manager (
roles/accesscontextmanager.policyEditor) di organisasi resource tempat kebijakan akses diterapkan
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat repositori konektor
Saat membuat repositori konektor, Anda harus mengonfigurasi setelan berikut, yang tidak dapat diubah setelah repositori dibuat:
- Format artefak, yang hanya dapat berupa Docker.
- Mode repositori ditetapkan ke konektor.
- Sumber upstream repositori konektor.
- Lokasi repositori .
- Enkripsi dengan Google Cloud-powered encryption keys atau kunci enkripsi yang dikelola pelanggan. Artifact Registry menggunakan Google Cloud-powered encryption keys secara default.
Artifact Registry menerapkan batasan kebijakan organisasi yang mewajibkan CMEK untuk mengenkripsi resource atau membatasi kunci Cloud KMS yang dapat digunakan untuk perlindungan CMEK.
console
Buka halaman Repositories di Cloud de Confiance konsol.
Klik Create Repository.
Tentukan nama repositori. Untuk setiap lokasi repositori dalam project, nama repositori harus unik.
Di bagian Format, pilih Docker.
Di bagian Repository mode, pilih Connector.
Di bagian Connector repository source, pilih salah satu opsi berikut:
- Docker Hub: Konektor menggunakan Docker Hub (
https://docker.io) sebagai repositori upstream. - Kustom: Konektor menggunakan URL upstream Docker yang berbeda untuk repositori upstream.
- Docker Hub: Konektor menggunakan Docker Hub (
Jika Anda memilih Custom, masukkan URL repositori lengkap di kolom Custom repository. URL tidak dapat diubah setelah repositori dibuat.
Untuk contoh beberapa URL upstream umum, lihat Upstream kustom.
Di bagian Connector repository authentication mode, masukkan hal berikut:
- Nama pengguna untuk repositori upstream Anda.
- Secret untuk menyimpan kredensial Anda di Secret Manager.
Anda dapat mengedit nilai ini setelah membuat repositori.
Di bagian Location Type, pilih lokasi untuk repositori:
Pilih jenis lokasi: Region atau Multi-Region. Daftar lokasi akan berubah untuk mencerminkan pilihan Anda.
Di daftar Region atau Multi-region, pilih lokasi.
Untuk mengetahui informasi tentang jenis lokasi dan lokasi yang didukung, lihat Lokasi repositori
Tambahkan deskripsi untuk repositori. Deskripsi membantu Anda mengidentifikasi tujuan repositori dan jenis artefak yang ada di dalamnya.
Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
Jika Anda ingin menggunakan label untuk mengatur repositori, klik Add Label dan masukkan pasangan nilai kunci untuk label. Anda dapat menambahkan, mengedit, atau menghapus label setelah membuat repositori.
Di bagian Encryption, pilih mekanisme enkripsi untuk repositori.
- Google Cloud-powered encryption key - Enkripsi konten repositori dengan a Google Cloud-powered encryption key.
- Kunci yang dikelola pelanggan - Enkripsi konten repositori dengan kunci yang Anda kontrol melalui Cloud Key Management Service. Untuk mengetahui petunjuk penyiapan kunci, lihat Menyiapkan CMEK untuk repositori.
Di bagian Artifact Analysis, pilih setelan pemindaian kerentanan:
Diaktifkan - Izinkan pemindaian di repositori ini. Container Scanning API harus diaktifkan di project Anda.
Saat Anda mengaktifkan Container Scanning API, penagihan segera dimulai. Setelah Anda mengaktifkan Container Scanning API di project, pemindaian kerentanan akan diaktifkan untuk semua repositori baru dan yang sudah ada. Saat Anda mengirim image ke Artifact Registry, image tersebut akan otomatis dipindai oleh Artifact Analysis.
Disabled - Cegah pemindaian di repositori ini. Jika Container Scanning API diaktifkan di project Anda, pemindaian akan terus dilakukan di repositori lain; repositori ini akan dikecualikan.
Untuk mengetahui informasi selengkapnya tentang opsi pemindaian kerentanan, lihat Mengaktifkan dan menonaktifkan pemindaian otomatis.
Klik Create.
Artifact Registry membuat repositori dan menambahkannya ke daftar repositori.
gcloud CLI
Untuk membuat repositori konektor, jalankan perintah untuk membuat repositori konektor Docker atau repositori konektor kustom.
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" \
Flag --mode=connector-repository diperlukan untuk menentukan repositori sebagai repositori konektor. --repository-format harus berupa docker.
Ganti kode berikut:
CONNECTOR-REPOSITORY-NAME: nama repositori. Untuk setiap lokasi repositori dalam project, nama repositori harus unik.PROJECT_ID: project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.LOCATION: lokasi regional atau multi-regional untuk repositori. Anda dapat menghilangkan flag ini jika menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintahgcloud artifacts locations list.DESCRIPTION: opsional. Deskripsi repositori konektor. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.UPSTREAM-NAME: nama upstream preset atau URL yang ditentukan pengguna dari repositori upstream.USERNAME: opsional. Nama pengguna Anda untuk mengautentikasi ke repositori upstream.PASSWORD: opsional. Versi rahasia yang berisi sandi repositori upstream Anda.
Misalnya, perintah berikut membuat repositori konektor bernama
my-connector-repo, yang menghubungkan repositori Jfrog upstream ke
the Cloud de Confiance project my-project. URL lengkap repositori upstream adalah 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
Untuk mengetahui informasi selengkapnya tentang cara mengautentikasi ke repositori upstream, lihat Mengautentikasi repositori konektor ke sumber upstream.
Terraform
Gunakan resource google_artifact_registry_repository
untuk membuat repositori.
terraform-provider-google versi
5.0.0 atau yang lebih baru diperlukan.
Jika Anda baru menggunakan Terraform untuk Cloud de Confiance by S3NS, lihat halaman Memulai - Cloud de Confiance by S3NS di situs HashiCorp.
Contoh berikut menentukan penyedia dan repositori konektor dengan
Terra nama resource 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.
Setelah membuat repositori, lakukan hal berikut:
- Memberikan akses ke repositori.
- Mengonfigurasi Docker, pengelola paket, dan klien pihak ketiga lainnya untuk mengautentikasi ke repositori.
- Mengonfigurasi repositori konektor Artifact Registry untuk mengautentikasi ke sumber upstream-nya.
Mengedit deskripsi repositori
Anda dapat mengubah deskripsi repositori dari Cloud de Confiance konsol atau gcloud CLI.
Konsol
Buka halaman Repositories di Cloud de Confiance konsol.
Di daftar repositori, pilih repositori dan klik Edit Repository.
Edit deskripsi repositori, lalu klik Save.
gcloud
Untuk memperbarui deskripsi repositori, jalankan perintah:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT \
--location=LOCATION \
--description="DESCRIPTION"
Ganti kode berikut:
REPOSITORY: nama repositori. Jika Anda mengonfigurasi repositori default, Anda dapat menghilangkan flag ini untuk menggunakan default.PROJECT: the Cloud de Confiance by S3NS project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.-
LOCATIONadalah lokasi regional dari repositori. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika Anda mengonfigurasi lokasi default, Anda dapat menghilangkan flag ini untuk menggunakan default. DESCRIPTION: deskripsi untuk repositori.
Akses ke sumber upstream dalam perimeter layanan
Layanan dalam perimeter layanan Kontrol Layanan VPC memiliki akses terbatas ke resource di luar perimeter.
Anda dapat mengizinkan atau menolak akses ke sumber upstream dalam project dan lokasi yang ditentukan Cloud de Confiance .
Secara default, Artifact Registry menolak akses ke sumber upstream jika Anda belum memberikan akses secara eksplisit.
Untuk Artifact Registry, peran yang diperlukan adalah Administrator Artifact Registry (roles/artifactregistry.admin).
Melihat setelan untuk sumber upstream
Untuk melihat konfigurasi untuk kombinasi project dan lokasi tertentu, jalankan perintah berikut:
gcloud artifacts vpcsc-config describe \
--project=PROJECT_ID \
--location=LOCATION
Misalnya, gunakan perintah berikut untuk melihat setelan repositori konektor di us-east1 dalam project my-project:
gcloud artifacts vpcsc-config describe \
--project=my-project \
--location=us-east1
Mengizinkan akses ke sumber upstream
Untuk mengizinkan akses ke sumber upstream di lokasi yang ditentukan, jalankan perintah:
gcloud artifacts vpcsc-config allow \
--project=PROJECT_ID \
--location=LOCATION
Misalnya, gunakan perintah berikut untuk mengizinkan semua repositori konektor di us-east1 dalam project my-project mengakses sumber upstream-nya di luar perimeter:
gcloud artifacts vpcsc-config allow \
--project=my-project \
--location=us-east1
Menolak akses ke sumber upstream
Untuk menolak akses ke sumber upstream di lokasi yang ditentukan, jalankan perintah:
gcloud artifacts vpcsc-config deny \
--project=PROJECT_ID \
--location=LOCATION
Misalnya, gunakan perintah berikut untuk memblokir akses ke sumber upstream di luar perimeter untuk semua repositori konektor di us-west1 dalam project my-project:
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
Langkah berikutnya
- Pelajari lebih lanjut repositori konektor Artifact Registry .
- Mengautentikasi repositori konektor ke sumber upstream.