

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
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account"></a>

*Healge Aufderheide, Amazon Web Services*

## Ringkasan
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-summary"></a>

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](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account.html) Pengguna * CodeCommit AWS*.

## Prasyarat dan batasan
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-prereqs"></a>

**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
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-architecture"></a>

Diagram berikut menunjukkan contoh alur kerja untuk memberikan instance SageMaker notebook dan pengguna dalam satu akun AWS akses lintas akun ke repositori: CodeCommit 

![\[Alur kerja untuk akses lintas akun CodeCommit\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/54d0fdb3-6d25-4433-9f67-c87846633d61/images/97a799af-ce88-4495-a61c-d0cd22493ce2.png)


Diagram menunjukkan alur kerja berikut:

1. Peran pengguna AWS dan peran instans SageMaker notebook di akun B mengasumsikan [profil bernama](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles).

1. Kebijakan izin profil bernama menentukan peran CodeCommit akses di akun A yang kemudian diasumsikan oleh profil.

1. Kebijakan kepercayaan peran CodeCommit akses di akun A memungkinkan profil bernama di akun B untuk mengambil peran CodeCommit akses.

1. Kebijakan izin IAM CodeCommit repositori di akun A memungkinkan peran CodeCommit akses untuk mengakses repositori. CodeCommit 

**Tumpukan teknologi**
+ CodeCommit
+ Git
+ IAM
+ pip
+ SageMaker

## Alat
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-tools"></a>
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 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)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [Git](https://git-scm.com/) adalah sistem kontrol versi terdistribusi untuk melacak perubahan kode sumber selama pengembangan perangkat lunak.
+ [git-remote-codecommit](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-git-remote-codecommit.html)adalah utilitas yang membantu Anda mendorong dan menarik kode dari CodeCommit repositori dengan memperluas Git.
+ [pip](https://pypi.org/project/pip/) adalah penginstal paket untuk Python. Anda dapat menggunakan pip untuk menginstal paket dari Python Package Index dan indeks lainnya.

## Praktik terbaik
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-best-practices"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).

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
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-epics"></a>

### Konfigurasikan peran IAM
<a name="configure-the-iam-roles"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan kebijakan peran CodeCommit akses dan izin. | Untuk mengotomatiskan proses penyiapan manual yang didokumentasikan dalam epik ini,**** Anda dapat menggunakan [ CloudFormation template AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).Di akun yang berisi CodeCommit repositori (*akun A*), lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account.html)Sebelum memindahkan penyiapan ini ke lingkungan produksi Anda, sebaiknya tulis kebijakan IAM Anda sendiri yang menerapkan izin [hak](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account.html)*Untuk melihat Nama Sumber Daya Amazon (ARN) repositori Anda, lihat [Melihat detail CodeCommit repositori](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-view-repository-details.html) di Panduan Pengguna AWS. CodeCommit * | AWS Umum, AWS DevOps | 

### Siapkan instance SageMaker buku catatan Anda di akun B
<a name="set-up-your-sagemaker-notebook-instance-in-account-b"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan profil pengguna pada instans SageMaker notebook AWS untuk mengambil peran dalam akun A.  | [Pastikan Anda telah menginstal AWS Command Line Interface (AWS CLI) versi terbaru](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).Di akun yang berisi instance SageMaker notebook (*akun B),* lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account.html)<pre>------.aws/config--------------<br />[profile remoterepouser]<br />role_arn = arn:aws:iam::<ID of Account A>:role/<rolename><br />role_session_name = remoteaccesssession<br />region = eu-west-1<br />credential_source  = Ec2InstanceMetadata<br />----------------------------------</pre> | AWS Umum, AWS DevOps | 
| Instal git-remote-codecommit utilitas. | Ikuti petunjuk di [Langkah 2: Instal git-remote-codecommit](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-git-remote-codecommit.html#setting-up-git-remote-codecommit-install) di *Panduan CodeCommit Pengguna AWS*. | Ilmuwan data | 

### Akses repositori
<a name="access-the-repository"></a>


| 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. `git clone` `git pull` `git push`Untuk petunjuk, lihat [Connect ke CodeCommit repositori AWS](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-connect.html) di * CodeCommit Panduan Pengguna AWS*.Untuk informasi tentang cara menggunakan Git CodeCommit, lihat [Memulai AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/getting-started-cc.html) 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](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-cross.html) dalam dokumentasi. SageMaker  | Git, konsol bash | 

## Sumber daya terkait
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-resources"></a>
+ [Konfigurasikan akses lintas akun ke CodeCommit repositori AWS menggunakan peran (dokumentasi AWS)](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account.html) CodeCommit 
+ [Tutorial IAM: Delegasikan akses di seluruh akun AWS menggunakan peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) (dokumentasi IAM)

## Informasi tambahan
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-additional"></a>

**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](https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-permissions-reference.html) di *Panduan CodeCommit Pengguna AWS*.

**catatan**  
Anda juga dapat mengedit kebijakan terkelola [AWSCodeCommitPowerUser](https://docs.aws.amazon.com/codecommit/latest/userguide/security-iam-awsmanpol.html#managed-policies-poweruser)AWS 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:

1. 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.

1. 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-*
```