Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Berikan instans SageMaker notebook akses sementara ke CodeCommit repositori di akun AWS lain
Healge Aufderheide, Amazon Web Services
Ringkasan
Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Pola ini menunjukkan cara memberikan instans SageMaker notebook Amazon dan pengguna akses sementara ke CodeCommit repositori AWS yang ada di akun AWS lain. Pola ini juga menunjukkan bagaimana Anda dapat memberikan izin granular untuk tindakan tertentu yang dapat dilakukan setiap entitas pada setiap repositori.
Organizations sering menyimpan CodeCommit repositori di akun AWS yang berbeda dari akun yang menampung lingkungan pengembangannya. Pengaturan multi-akun ini membantu mengontrol akses ke repositori dan mengurangi risiko penghapusan yang tidak disengaja. Untuk memberikan izin lintas akun ini, merupakan praktik terbaik untuk menggunakan peran AWS Identity and Access Management (IAM). Kemudian, identitas IAM yang telah ditentukan sebelumnya di setiap akun AWS dapat mengambil peran sementara untuk membuat rantai kepercayaan yang terkontrol di seluruh akun.
catatan
Anda dapat menerapkan prosedur serupa untuk memberikan identitas IAM lainnya akses lintas akun ke repositori. CodeCommit Untuk informasi selengkapnya, lihat Mengonfigurasi akses lintas akun ke CodeCommit repositori AWS menggunakan peran dalam Panduan Pengguna CodeCommit AWS.
Prasyarat dan batasan
Prasyarat
Akun AWS aktif dengan CodeCommit repositori (akun A)
Akun AWS aktif kedua dengan instance SageMaker notebook (akun B)
Pengguna AWS dengan izin yang memadai untuk membuat dan memodifikasi peran IAM di akun A
Pengguna AWS kedua dengan izin yang cukup untuk membuat dan memodifikasi peran IAM di akun B
Arsitektur
Diagram berikut menunjukkan contoh alur kerja untuk memberikan instance SageMaker notebook dan pengguna dalam satu akun AWS akses lintas akun ke repositori: CodeCommit

Diagram menunjukkan alur kerja berikut:
Peran pengguna AWS dan peran instans SageMaker notebook di akun B mengasumsikan profil bernama.
Kebijakan izin profil bernama menentukan peran CodeCommit akses di akun A yang kemudian diasumsikan oleh profil.
Kebijakan kepercayaan peran CodeCommit akses di akun A memungkinkan profil bernama di akun B untuk mengambil peran CodeCommit akses.
Kebijakan izin IAM CodeCommit repositori di akun A memungkinkan peran CodeCommit akses untuk mengakses repositori. CodeCommit
Tumpukan teknologi
CodeCommit
Git
IAM
pip
SageMaker
Alat
AWS CodeCommit adalah layanan kontrol versi yang membantu Anda menyimpan dan mengelola repositori Git secara pribadi, tanpa perlu mengelola sistem kontrol sumber Anda sendiri.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
Git
adalah sistem kontrol versi terdistribusi untuk melacak perubahan kode sumber selama pengembangan perangkat lunak. git-remote-codecommitadalah utilitas yang membantu Anda mendorong dan menarik kode dari CodeCommit repositori dengan memperluas Git.
pip
adalah penginstal paket untuk Python. Anda dapat menggunakan pip untuk menginstal paket dari Indeks Paket Python dan indeks lainnya.
Praktik terbaik
Saat Anda menetapkan izin dengan kebijakan IAM, pastikan Anda hanya memberikan izin yang diperlukan untuk melakukan tugas. Untuk informasi selengkapnya, lihat Menerapkan izin hak istimewa paling sedikit dalam dokumentasi IAM.
Saat menerapkan pola ini, pastikan Anda melakukan hal berikut:
Konfirmasikan bahwa prinsip IAM hanya memiliki izin yang diperlukan untuk melakukan tindakan spesifik yang diperlukan dalam setiap repositori. Misalnya, disarankan untuk mengizinkan prinsip IAM yang disetujui untuk mendorong dan menggabungkan perubahan ke cabang repositori tertentu, tetapi hanya meminta penggabungan ke cabang yang dilindungi.
Konfirmasikan bahwa prinsip-prinsip IAM diberi peran IAM yang berbeda berdasarkan peran dan tanggung jawab masing-masing untuk setiap proyek. Misalnya, pengembang akan memiliki izin akses yang berbeda dari manajer rilis atau AWS Administrator.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Konfigurasikan kebijakan peran CodeCommit akses dan izin. | catatanUntuk mengotomatiskan proses penyiapan manual yang didokumentasikan dalam epik ini, Anda dapat menggunakan CloudFormation template AWS. Di akun yang berisi CodeCommit repositori (akun A), lakukan hal berikut:
pentingSebelum memindahkan penyiapan ini ke lingkungan produksi Anda, sebaiknya tulis kebijakan IAM Anda sendiri yang menerapkan izin hak istimewa paling sedikit. Untuk informasi selengkapnya, lihat bagian Informasi tambahan dari pola ini. | AWS Umum, AWS DevOps |
Berikan peran instans SageMaker notebook dalam izin akun B untuk mengambil peran CodeCommit akses di akun A. | Di akun yang berisi peran IAM instance SageMaker notebook (akun B), lakukan hal berikut:
catatanUntuk melihat Nama Sumber Daya Amazon (ARN) repositori Anda, lihat Melihat detail CodeCommit repositori di Panduan Pengguna AWS. CodeCommit | AWS Umum, AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Siapkan profil pengguna pada instans SageMaker notebook AWS untuk mengambil peran dalam akun A. | Di akun yang berisi instance SageMaker notebook (akun B), lakukan hal berikut:
| AWS Umum, AWS DevOps |
Instal git-remote-codecommit utilitas. | Ikuti petunjuk di Langkah 2: Instal git-remote-codecommit di Panduan CodeCommit Pengguna AWS. | Ilmuwan data |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Akses CodeCommit repositori dengan menggunakan perintah Git atau. SageMaker | Untuk menggunakan Git Prinsipal IAM yang mengasumsikan peran instance SageMaker notebook di akun B sekarang dapat menjalankan perintah Git untuk mengakses CodeCommit repositori di akun A. Misalnya, pengguna dapat menjalankan perintah seperti,, dan. Untuk petunjuk, lihat Connect ke CodeCommit repositori AWS di CodeCommit Panduan Pengguna AWS. Untuk informasi tentang cara menggunakan Git CodeCommit, lihat Memulai AWS CodeCommit di Panduan CodeCommit Pengguna AWS. Untuk menggunakan SageMaker Untuk menggunakan Git dari SageMaker konsol, Anda harus mengizinkan Git untuk mengambil kredensi dari repositori Anda. CodeCommit Untuk petunjuknya, lihat Mengaitkan CodeCommit repositori di akun AWS yang berbeda dengan instans notebook dalam dokumentasi. SageMaker | Git, konsol bash |
Sumber daya terkait
Informasi tambahan
Membatasi CodeCommit izin untuk tindakan tertentu
Untuk membatasi tindakan yang dapat dilakukan oleh kepala sekolah IAM di CodeCommit repositori, ubah tindakan yang diizinkan dalam kebijakan akses. CodeCommit
Untuk informasi selengkapnya tentang operasi CodeCommit API, lihat referensi CodeCommit izin di Panduan CodeCommit Pengguna AWS.
catatan
Anda juga dapat mengedit kebijakan terkelola AWSCodeCommitPowerUserAWS agar sesuai dengan kasus penggunaan Anda.
Membatasi CodeCommit izin ke repositori tertentu
Untuk membuat lingkungan multitenant di mana lebih dari satu repositori kode hanya dapat diakses oleh pengguna tertentu, lakukan hal berikut:
Buat beberapa peran CodeCommit akses di akun A. Kemudian, konfigurasikan kebijakan kepercayaan setiap peran akses agar pengguna tertentu di akun B dapat mengambil peran tersebut.
Batasi repositori kode apa yang dapat diasumsikan oleh setiap peran dengan menambahkan kondisi “Sumber Daya” ke kebijakan setiap peran CodeCommit akses.
Contoh kondisi “Sumber Daya” yang membatasi akses prinsipal IAM ke repositori tertentu CodeCommit
"Resource" : [<REPOSITORY_ARN>,<REPOSITORY_ARN> ]
catatan
Untuk membantu mengidentifikasi dan membedakan beberapa repositori kode di akun AWS yang sama, Anda dapat menetapkan awalan yang berbeda ke nama repositori. Misalnya, Anda dapat memberi nama repositori kode dengan awalan yang sejajar dengan grup pengembang yang berbeda, seperti myproject-subproject1-repo1 dan myproject-subproject2-repo1. Kemudian, Anda dapat membuat peran IAM untuk setiap grup pengembang berdasarkan awalan yang ditetapkan. Misalnya, Anda dapat membuat peran bernama myproject-subproject1-repoaccess dan memberikannya akses ke semua repositori kode yang menyertakan awalan myproject-subproject1.
Contoh kondisi “Resource” yang mengacu pada ARN repositori kode yang menyertakan awalan tertentu
"Resource" : arn:aws:codecommit:<region>:<account-id>:myproject-subproject1-*