Kaitkan AWS CodeCommit repositori di satu dengan Akun AWS Amazon SageMaker AI Studio Classic di akun lain - AWS Prescriptive Guidance

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

Laurens van der Maas dan Aubrey Oosthuizen, 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 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

Prasyarat

Keterbatasan

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

Arsitektur

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

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.

  2. 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), AWS CloudFormation, atau Terraform.

Alat

Alat AWS

  • Amazon SageMaker AI 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 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 CodeCommitadalah 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

  • AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

Alat-alat lainnya

  • Git adalah sistem kontrol versi terdistribusi untuk melacak perubahan kode sumber selama pengembangan perangkat lunak.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat kebijakan IAM untuk akses repositori di Akun A.

  1. Masuk ke AWS Management Console dan buka konsol IAM.

  2. Pada panel navigasi, pilih Kebijakan, lalu pilih Buat kebijakan.

  3. Pilih tab JSON.

  4. Salin pernyataan kebijakan dari Contoh kebijakan IAM di bagian Informasi tambahan dari pola ini, lalu tempelkan pernyataan tersebut ke editor JSON. Pastikan untuk mengganti semua nilai placeholder dalam kebijakan.

  5. Pilih Berikutnya:Tag, lalu pilih Berikutnya:Ulasan.

  6. Untuk Nama, masukkan nama untuk kebijakan. Catatan: Dalam pola ini, kebijakan IAM disebut sebagaiCrossAccountAccessForMySharedDemoRepo, tetapi Anda dapat memilih nama kebijakan apa pun yang Anda inginkan.

  7. Pilih Buat kebijakan.

Tip

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.

  1. Di panel navigasi konsol IAM, pilih Peran, lalu pilih Buat peran.

  2. Untuk jenis entitas Tepercaya, pilih akun AWS.

  3. Di bagian akun AWS, pilih Akun AWS lain.

  4. Untuk ID Akun, masukkan ID akun untuk Akun B.

  5. Pada halaman Tambah izin, cari dan pilih CrossAccountAccessForMySharedDemoRepo kebijakan yang Anda buat sebelumnya.

  6. Pilih Berikutnya.

  7. Untuk nama Peran, masukkan nama. Catatan: Dalam pola ini, nama peran IAM disebut sebagaiMyCrossAccountRepositoryContributorRole, tetapi Anda dapat memilih nama peran apa pun yang Anda inginkan.

  8. Pilih Buat peran, lalu salin Nama Sumber Daya Amazon (ARN) dari peran baru.

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Lampirkan kebijakan inline ke peran eksekusi yang dilampirkan ke pengguna SageMaker Domain Anda di Akun B.

  1. Di panel navigasi konsol IAM, pilih Peran.

  2. Cari dan pilih peran eksekusi yang dilampirkan ke pengguna Domain SageMaker AI Anda di Akun B.

  3. Pilih Tambahkan izin, lalu pilih Buat kebijakan sebaris.

  4. Pilih tab JSON.

  5. Salin pernyataan kebijakan berikut, lalu tempelkan ke editor JSON.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::<Account_A_ID>:role/<Account_A_Role_Name>" } ] }
  6. Ganti <Account_A_ID> dengan ID akun untuk Akun A. Ganti <Account_A_Role_Name> dengan nama peran IAM yang Anda buat sebelumnya.

  7. Pilih Tinjau kebijakan.

  8. Untuk Nama, masukkan nama untuk kebijakan inline Anda.

  9. Pilih Buat kebijakan.

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Buat skrip shell di SageMaker AI Studio Classic di Akun B.

  1. Di panel navigasi SageMaker konsol, pilih Studio.

  2. Pilih profil pengguna Anda dan kemudian pilih Open Studio.

  3. Di bagian Beranda, pilih Buka Peluncur.

  4. Di bagian Utilitas dan file, pilih File teks.

  5. Salin skrip dari Contoh skrip SageMaker shell di bagian Informasi tambahan dari pola ini, lalu tempelkan pernyataan ke file baru. Pastikan untuk mengganti semua nilai placeholder dalam skrip.

  6. Klik kanan tab untitled.txt pada file baru Anda, lalu pilih Ganti Nama Teks. Untuk Nama Baru, masukkan cross_account_git_clone.sh, lalu pilih Ganti nama.

AWS DevOps

Memanggil skrip shell dari terminal sistem.

  1. Di bagian Beranda SageMaker konsol, pilih Buka Peluncur.

  2. Di bagian Utilitas dan file, pilih Terminal sistem.

  3. Di terminal, jalankan perintah berikut:

    chmod u+x ./cross_account_git_clone.sh && ./cross_account_git_clone.sh

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

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>