

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

# Kaitkan AWS CodeCommit repositori di satu dengan Akun AWS Amazon SageMaker AI Studio Classic di akun lain
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account"></a>

*Laurens van der Maas dan Aubrey Oosthuizen, Amazon Web Services*

## Ringkasan
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-summary"></a>

Pola ini memberikan instruksi dan kode tentang cara mengaitkan AWS CodeCommit repositori di satu Akun AWS (Akun A) dengan Amazon SageMaker AI Studio Classic di tempat lain Akun AWS (Akun B). Untuk menyiapkan asosiasi, Anda harus membuat kebijakan dan peran AWS Identity and Access Management (IAM) di Akun A dan kebijakan sebaris IAM di Akun B. Kemudian, Anda menggunakan skrip shell untuk mengkloning CodeCommit repositori dari Akun A ke Amazon AI Classic di Akun B. SageMaker 

## Prasyarat dan batasan
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-prereqs"></a>

**Prasyarat**
+ Dua [Akun AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/), satu berisi CodeCommit repositori dan yang lainnya berisi Domain SageMaker AI dengan pengguna
+ [Domain dan pengguna SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html) yang disediakan, dengan akses internet atau akses ke CodeCommit dan AWS Security Token Service (AWS STS) melalui titik akhir jaringan pribadi virtual (VPC)
+ Pemahaman dasar [IAM](https://docs.aws.amazon.com/iam/?id=docs_gateway)
+ Pemahaman dasar tentang [SageMaker AI Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html)
+ Pemahaman dasar tentang [Git](https://git-scm.com/) dan [CodeCommit ](https://docs.aws.amazon.com/codecommit/index.html)

**Keterbatasan**

Pola ini hanya berlaku untuk SageMaker AI Studio Classic, bukan RStudio di Amazon SageMaker AI.

## Arsitektur
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-architecture"></a>

**Tumpukan teknologi**
+ Amazon SageMaker AI
+ Amazon SageMaker AI Studio Klasik
+ AWS CodeCommit
+ AWS Identity and Access Management (IAM) 
+ Git

**Arsitektur target**

Diagram berikut menunjukkan arsitektur yang mengaitkan CodeCommit repositori dari Akun A ke SageMaker AI Studio Classic di Akun B.

![\[Diagram arsitektur untuk asosiasi lintas akun\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d40df9eb-6ee2-4cb8-8257-051fa624e52a/images/abb89a66-fc8f-4e72-8f45-f0f44c2ec6ce.png)


Diagram menunjukkan alur kerja berikut:

1. Pengguna mengasumsikan `MyCrossAccountRepositoryContributorRole` peran dalam Akun A melalui peran, saat menggunakan `sts:AssumeRole` peran eksekusi SageMaker AI di SageMaker AI Studio Classic di Akun B. Peran yang diasumsikan mencakup CodeCommit izin untuk mengkloning dan berinteraksi dengan repositori yang ditentukan.

1. Pengguna melakukan perintah Git dari terminal sistem di SageMaker AI Studio Classic.

**Otomatisasi dan skala**

Pola ini terdiri dari langkah-langkah manual yang dapat diotomatisasi dengan menggunakan [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/?id=docs_gateway), [AWS CloudFormation](https://docs.aws.amazon.com/cloudformation/?id=docs_gateway), atau [Terraform](https://www.terraform.io/).

## Alat
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-tools"></a>

**Alat AWS**
+ [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/?id=docs_gateway) adalah layanan pembelajaran mesin terkelola (ML) yang membantu Anda membangun dan melatih model ML, lalu menerapkannya ke lingkungan host yang siap produksi.
+ [Amazon SageMaker AI Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) adalah lingkungan pengembangan terintegrasi (IDE) berbasis web untuk pembelajaran mesin yang memungkinkan Anda membuat, melatih, men-debug, menerapkan, dan memantau model pembelajaran mesin Anda.
+ [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.

  **Pemberitahuan**: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. [Pelajari selengkapnya](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/)
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

**Alat lainnya**
+ [Git](https://git-scm.com/) adalah sistem kontrol versi terdistribusi untuk melacak perubahan kode sumber selama pengembangan perangkat lunak.

## Epik
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-epics"></a>

### Buat kebijakan IAM dan peran IAM di Akun A
<a name="create-an-iam-policy-and-iam-role-in-account-a"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kebijakan IAM untuk akses repositori di Akun A. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html)Ini adalah praktik terbaik untuk membatasi cakupan kebijakan IAM Anda ke izin minimum yang diperlukan untuk kasus penggunaan Anda. | AWS DevOps | 
| Buat peran IAM untuk akses repositori di Akun A. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 

### Buat kebijakan inline IAM di Akun B
<a name="create-an-iam-inline-policy-in-account-b"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lampirkan kebijakan inline ke peran eksekusi yang dilampirkan ke pengguna SageMaker Domain Anda di Akun B. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 

### Kloning repositori di SageMaker AI Studio Classic untuk Akun B
<a name="clone-the-repository-in-sm-studio-classic-for-account-b"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat skrip shell di SageMaker AI Studio Classic di Akun B. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html) | AWS DevOps | 
| Memanggil skrip shell dari terminal sistem. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account.html)Anda telah mengkloning CodeCommit repositori Anda di akun lintas SageMaker AI Studio. Anda sekarang dapat melakukan semua perintah Git dari terminal sistem. | AWS DevOps | 

## Informasi tambahan
<a name="associate-an-aws-codecommit-repository-in-one-aws-account-with-sagemaker-studio-in-another-account-additional"></a>

**Contoh kebijakan IAM**

Jika Anda menggunakan kebijakan contoh ini, lakukan hal berikut:
+ Ganti `<CodeCommit_Repository_Region>` dengan Wilayah AWS untuk repositori.
+ Ganti `<Account_A_ID>` dengan ID akun untuk Akun A.
+ Ganti `<CodeCommit_Repository_Name>` dengan nama CodeCommit repositori Anda di Akun A.

```
{
"Version": "2012-10-17",		 	 	 
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "codecommit:BatchGet*",
            "codecommit:Create*",
            "codecommit:DeleteBranch",
            "codecommit:Get*",
            "codecommit:List*",
            "codecommit:Describe*",
            "codecommit:Put*",
            "codecommit:Post*",
            "codecommit:Merge*",
            "codecommit:Test*",
            "codecommit:Update*",
            "codecommit:GitPull",
            "codecommit:GitPush"
        ],
        "Resource": [
            "arn:aws:codecommit:<CodeCommit_Repository_Region>:<Account_A_ID>:<CodeCommit_Repository_Name>"
        ]
    }
]
}
```

**Contoh skrip shell SageMaker AI**

Jika Anda menggunakan contoh skrip ini, lakukan hal berikut:
+ Ganti `<Account_A_ID>` dengan ID akun untuk Akun A.
+ Ganti `<Account_A_Role_Name>` dengan nama peran IAM yang Anda buat sebelumnya.
+ Ganti `<CodeCommit_Repository_Region>` dengan Wilayah AWS untuk repositori.
+ Ganti `<CodeCommit_Repository_Name>` dengan nama CodeCommit repositori Anda di Akun A.

```
#!/usr/bin/env bash
#Launch from system terminal
pip install --quiet git-remote-codecommit

mkdir -p ~/.aws
touch ~/.aws/config

echo "[profile CrossAccountAccessProfile]
region = <CodeCommit_Repository_Region>
credential_source=EcsContainer
role_arn = arn:aws:iam::<Account_A_ID>:role/<Account_A_Role_Name>
output = json" > ~/.aws/config

echo '[credential "https://git-codecommit.<CodeCommit_Repository_Region>.amazonaws.com"]
        helper = !aws codecommit credential-helper $@ --profile CrossAccountAccessProfile
        UseHttpPath = true' > ~/.gitconfig
        
git clone codecommit::<CodeCommit_Repository_Region>://CrossAccountAccessProfile@<CodeCommit_Repository_Name>
```