Kontrol asal grup Package - CodeArtifact

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kontrol asal grup Package

Package origin control digunakan untuk mengonfigurasi bagaimana versi paket dapat memasukkan domain. Anda dapat mengatur kontrol asal pada grup paket untuk mengonfigurasi bagaimana versi setiap paket yang terkait dengan grup paket dapat memasukkan repositori tertentu di domain.

Pengaturan kontrol asal grup paket terdiri dari yang berikut:

  • Pengaturan pembatasan: Pengaturan ini menentukan apakah paket dapat memasukkan repositori CodeArtifact dari penerbitan, internal upstream, atau eksternal, repositori publik.

  • Daftar repositori yang diizinkan: Setiap pengaturan pembatasan dapat diatur untuk memungkinkan repositori tertentu. Jika pengaturan pembatasan diatur untuk mengizinkan repositori tertentu, pembatasan itu akan memiliki daftar repositori yang diizinkan yang sesuai.

catatan

Pengaturan kontrol asal untuk grup paket sedikit berbeda dari pengaturan kontrol asal untuk paket individual. Untuk informasi selengkapnya tentang pengaturan kontrol asal untuk paket, lihatPengaturan kontrol asal paket.

Pengaturan pembatasan

Pengaturan pembatasan pengaturan kontrol asal grup paket menentukan bagaimana paket yang terkait dengan grup tersebut dapat memasukkan repositori di domain.

MENERBITKAN

PUBLISHPengaturan mengonfigurasi apakah versi paket dapat dipublikasikan langsung ke repositori apa pun di domain menggunakan pengelola paket atau alat serupa.

  • ALLOW: Versi Package dapat dipublikasikan langsung ke semua repositori.

  • BLOCK: Versi Package tidak dapat dipublikasikan langsung ke repositori manapun.

  • ALLOW_SPECIFIC_REPOSITORIES: Versi Package hanya dapat dipublikasikan langsung ke repositori yang ditentukan dalam daftar repositori yang diizinkan untuk diterbitkan.

  • INHERIT: PUBLISH Pengaturan diwarisi dari grup paket induk pertama dengan pengaturan yang tidak. INHERIT

EXTERNAL_UPSTREAM

EXTERNAL_UPSTREAMPengaturan mengonfigurasi apakah versi paket dapat dicerna dari repositori publik eksternal saat diminta oleh manajer paket. Untuk daftar repositori eksternal yang didukung, lihat. Repositori koneksi eksternal yang didukung

  • ALLOW: Versi paket apa pun dapat dicerna ke semua repositori dari sumber publik dengan koneksi eksternal.

  • BLOCK: Versi Package tidak dapat dicerna ke dalam repositori apa pun dari sumber publik dengan koneksi eksternal.

  • ALLOW_SPECIFIC_REPOSITORIES: Versi paket hanya dapat dicerna dari sumber publik ke dalam repositori yang ditentukan dalam daftar repositori yang diizinkan untuk upstream eksternal.

  • INHERIT: EXTERNAL_UPSTREAM Pengaturan diwarisi dari grup paket induk pertama dengan pengaturan yang tidak. INHERIT

INTERNAL_UPSTREAM

INTERNAL_UPSTREAMPengaturan mengonfigurasi apakah versi paket dapat dipertahankan dari repositori upstream internal di CodeArtifact domain yang sama ketika diminta oleh manajer paket.

  • IZINKAN: Versi paket apa pun dapat dipertahankan dari repositori lain yang dikonfigurasi sebagai CodeArtifact repositori hulu.

  • BLOCK: Versi Package tidak dapat dipertahankan dari repositori lain yang dikonfigurasi sebagai CodeArtifact repositori upstream.

  • ALLOW_SPECIFIC_REPOSITORIES: Versi paket hanya dapat dipertahankan dari respositori CodeArtifact lain yang dikonfigurasi sebagai repositori upstream ke dalam repositori yang ditentukan dalam daftar repositori yang diizinkan untuk upstream internal.

  • INHERIT: INTERNAL_UPSTREAM Pengaturan diwarisi dari grup paket induk pertama dengan pengaturan yang tidak. INHERIT

Daftar repositori yang diizinkan

Ketika pengaturan pembatasan dikonfigurasi sebagaiALLOW_SPECIFIC_REPOSITORIES, grup paket berisi daftar repositori diizinkan yang menyertainya yang berisi daftar repositori yang diizinkan untuk pengaturan pembatasan itu. Oleh karena itu, grup paket berisi dari 0 hingga 3 daftar repositori yang diizinkan, satu untuk setiap pengaturan yang dikonfigurasi sebagai. ALLOW_SPECIFIC_REPOSITORIES

Saat Anda menambahkan repositori ke daftar repositori yang diizinkan grup paket, Anda harus menentukan daftar repositori mana yang diizinkan untuk menambahkannya.

Daftar repositori yang mungkin diizinkan adalah sebagai berikut:

  • EXTERNAL_UPSTREAM: Izinkan atau blokir konsumsi versi paket dari repositori eksternal di repositori yang ditambahkan.

  • INTERNAL_UPSTREAM: Izinkan atau blokir penarikan versi paket dari repositori lain di CodeArtifact repositori yang ditambahkan.

  • PUBLISH: Izinkan atau blokir penerbitan langsung versi paket dari manajer paket ke repositori yang ditambahkan.

Mengedit pengaturan kontrol asal grup paket

Untuk menambah atau mengedit kontrol asal untuk grup paket, lakukan langkah-langkah dalam prosedur berikut. Untuk informasi tentang pengaturan kontrol asal grup paket, lihat Pengaturan pembatasan danDaftar repositori yang diizinkan.

Untuk menambah atau mengedit kontrol asal grup paket (CLI)
  1. Jika belum, konfigurasikan AWS CLI dengan mengikuti langkah-langkah diMenyiapkan dengan AWS CodeArtifact.

  2. Gunakan update-package-group-origin-configuration perintah untuk menambah atau mengedit kontrol asal paket.

    • Untuk--domain, masukkan CodeArtifact domain yang berisi grup paket yang ingin Anda perbarui.

    • Untuk--domain-owner, masukkan nomor akun pemilik domain.

    • Untuk--package-group, masukkan grup paket yang ingin Anda perbarui.

    • Untuk--restrictions, masukkan pasangan nilai kunci yang mewakili batasan kontrol asal.

    • Untuk--add-allowed-repositories, masukkan objek JSON yang berisi tipe pembatasan dan nama repositori untuk ditambahkan ke daftar repositori yang diizinkan yang sesuai untuk pembatasan tersebut.

    • Untuk--remove-allowed-repositories, masukkan objek JSON yang berisi tipe pembatasan dan nama repositori untuk dihapus dari daftar repositori yang diizinkan sesuai untuk pembatasan tersebut.

    aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group '/nuget/*' \ --restrictions INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo \ --remove-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2

    Contoh berikut menambahkan beberapa pembatasan, dan beberapa repositori dalam satu perintah.

    aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group '/nuget/*' \ --restrictions PUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2 \ --remove-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2

Contoh konfigurasi kontrol asal grup Package

Contoh berikut menunjukkan konfigurasi kontrol asal paket untuk skenario manajemen paket umum.

Mengizinkan paket dengan nama pribadi dipublikasikan, tetapi tidak dicerna

Skenario ini kemungkinan merupakan skenario umum dalam manajemen paket:

  • Izinkan paket dengan nama pribadi dipublikasikan ke repositori di domain Anda dari pengelola paket, dan blokir agar tidak tertelan ke repositori di domain Anda dari repositori publik eksternal.

  • Izinkan semua paket lain dicerna ke repositori di domain Anda dari eksternal, repositori publik, dan blokir agar tidak dipublikasikan ke repositori di domain Anda dari pengelola paket.

Untuk mencapai ini, Anda harus mengonfigurasi grup paket dengan pola yang menyertakan nama pribadi, dan pengaturan asal PUBLISH: ALLOW, EXTERNAL_UPSTREAM: BLOCK, dan INTERNAL_UPSTREAM: ALLOW. Ini akan memastikan paket dengan nama pribadi dapat dipublikasikan secara langsung, tetapi tidak dapat dicerna dari repositori eksternal.

AWS CLI Perintah berikut membuat dan mengkonfigurasi grup paket dengan pengaturan pembatasan asal yang cocok dengan perilaku yang diinginkan:

Untuk membuat grup paket:

aws codeartifact create-package-group \ --domain my_domain \ --package-group /npm/space/anycompany~ \ --domain-owner 111122223333 \ --contact-info contact@email.com | URL \ --description "my package group"

Untuk memperbarui konfigurasi asal grup paket:

aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group '/npm/space/anycompany~' \ --restrictions PUBLISH=ALLOW,EXTERNAL_UPSTREAM=BLOCK,INTERNAL_UPSTREAM=ALLOW

Mengizinkan konsumsi dari repositori eksternal melalui satu repositori

Dalam skenario ini, domain Anda memiliki beberapa repositori. Dari repositori tersebut, repoA memiliki koneksi hulu kerepoB, yang memiliki koneksi eksternal ke repositori publik,, seperti yang ditunjukkan: npmjs.com

repoA --> repoB --> npmjs.com

Anda ingin mengizinkan konsumsi paket dari grup paket tertentu, /npm/space/anycompany~ dari npmjs.com kerepoA, tetapi hanya melalui. repoB Anda juga ingin memblokir konsumsi paket yang terkait dengan grup paket ke dalam repositori lain di domain Anda, dan memblokir penerbitan langsung paket dengan manajer paket. Untuk mencapai ini, Anda membuat dan mengkonfigurasi grup paket sebagai berikut:

Pengaturan pembatasan asal PUBLISH: BLOCK, dan EXTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES, dan INTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES.

repoAdan repoB ditambahkan ke daftar repositori yang diizinkan yang sesuai:

  • repoAharus ditambahkan ke INTERNAL_UPSTREAM daftar, karena akan mendapatkan paket dari hulu internalnya,repoB.

  • repoBharus ditambahkan ke EXTERNAL_UPSTREAM daftar, karena akan mendapatkan paket dari repositori eksternal,. npmjs.com

AWS CLI Perintah berikut membuat dan mengkonfigurasi grup paket dengan pengaturan pembatasan asal yang cocok dengan perilaku yang diinginkan:

Untuk membuat grup paket:

aws codeartifact create-package-group \ --domain my_domain \ --package-group /npm/space/anycompany~ \ --domain-owner 111122223333 \ --contact-info contact@email.com | URL \ --description "my package group"

Untuk memperbarui konfigurasi asal grup paket:

aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group /npm/space/anycompany~ \ --restrictions PUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=repoA originRestrictionType=EXTERNAL_UPSTREAM,repositoryName=repoB

Bagaimana pengaturan kontrol asal grup paket berinteraksi dengan pengaturan kontrol asal paket

Karena paket memiliki pengaturan kontrol asal, dan grup paket terkait memiliki pengaturan kontrol asal, penting untuk memahami bagaimana kedua pengaturan yang berbeda berinteraksi satu sama lain. Untuk informasi tentang interaksi antara pengaturan, lihatBagaimana kontrol asal paket berinteraksi dengan kontrol asal grup paket.