翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ある の AWS CodeCommit リポジトリ AWS アカウント を別の アカウントの Amazon SageMaker AI Studio Classic に関連付ける
アマゾン ウェブ サービス、Laurens van der Maas と Aubrey Oosthuizen
概要
注意: AWS CodeCommit は新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS CodeCommit 引き続き使用できます。詳細はこちら
このパターンでは、ある (アカウント A) の AWS CodeCommit リポジトリを別の AWS アカウント ( AWS アカウント アカウント B) の Amazon SageMaker AI Studio Classic に関連付ける方法の手順とコードを示します。関連付けを設定するには、アカウント A に AWS Identity and Access Management (IAM) ポリシーとロールを作成し、アカウント B に IAM インラインポリシーを作成する必要があります。次に、シェルスクリプトを使用して、アカウント A からアカウント B の Amazon SageMaker AI Classic に CodeCommit リポジトリをクローンします。
前提条件と制限
前提条件
2 つの AWS アカウント
。1 つは CodeCommit リポジトリを含み、もう 1 つはユーザーを含む SageMaker AI ドメインを含みます。 プロビジョニングされた SageMaker AI ドメインとユーザー、インターネットアクセスまたは仮想プライベートネットワーク (VPC AWS STS) エンドポイントを介した CodeCommit および AWS Security Token Service () へのアクセス
「IAM」の基本的な理解
SageMaker AI Studio Classic の基本的な理解
Git
と CodeCommit の基本的な理解
機能制限
このパターンは SageMaker AI Studio Classic にのみ適用され、Amazon SageMaker AI の RStudio には適用されません。
アーキテクチャ
テクノロジースタック
Amazon SageMaker AI
Amazon SageMaker AI Studio Classic
AWS CodeCommit
AWS Identity and Access Management (IAM)
Git
ターゲット アーキテクチャ
次の図は、アカウント A からアカウント B の SageMaker AI Studio Classic に CodeCommit リポジトリを関連付けるアーキテクチャを示しています。

この図表は、次のワークフローを示しています:
ユーザーは
MyCrossAccountRepositoryContributorRole、アカウント B の SageMaker AI Studio Classic で SageMaker AI 実行ロールを使用しながら、sts:AssumeRoleロールを通じてアカウント A のロールを引き受けます。引き受けたロールには、指定されたリポジトリをクローンして操作するための CodeCommit アクセス許可が含まれます。ユーザーは SageMaker AI Studio Classic のシステムターミナルから Git コマンドを実行します。
自動化とスケール
このパターンは、AWS Cloud Development Kit (AWS CDK)、、AWS CloudFormationまたは Terraform
ツール
AWS ツール
Amazon SageMaker AI は、ML モデルを構築およびトレーニングし、本番環境対応のホスト環境にデプロイするのに役立つマネージド機械学習 (ML) サービスです。
Amazon SageMaker AI Studio Classic は、機械学習モデルの構築、トレーニング、デバッグ、デプロイ、モニタリングを可能にする、機械学習用のウェブベースの統合開発環境 (IDE) です。
AWS CodeCommit は、独自のソース管理システムを管理することなく、Git リポジトリをプライベートに保存および管理するためのバージョン管理サービスです。
注意: AWS CodeCommit は新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS CodeCommit 引き続き使用できます。詳細はこちら
AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用する権限を付与するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。
その他のツール
「Git
」は、ソフトウェア開発中のソースコードの変更を追跡するための分散型バージョン管理システムです。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
Account A でリポジトリアクセスの IAM ポリシーを作成します。 |
ヒントベストプラクティスは、IAM ポリシーの範囲をユースケースに必要な最小限のアクセス許可に制限することです。 | AWS DevOps |
Account A でリポジトリアクセスの IAM ロールを作成します。 |
| AWS DevOps |
| タスク | 説明 | 必要なスキル |
|---|---|---|
アカウント B の SageMaker ドメインユーザーにアタッチされている実行ロールにインラインポリシーをアタッチします。 |
| AWS DevOps |
| タスク | 説明 | 必要なスキル |
|---|---|---|
アカウント B の SageMaker AI Studio Classic でシェルスクリプトを作成します。 |
| AWS DevOps |
システムターミナルからシェルスクリプトを呼び出します。 |
SageMaker AI Studio クロスアカウントで CodeCommit リポジトリをクローンしました。システムターミナルからすべての Git コマンドを実行できるようになりました。 | AWS DevOps |
追加情報
IAM ポリシーの例
この例のポリシーを使用するには、次を行います。
をリポジトリ AWS リージョン の
<CodeCommit_Repository_Region>に置き換えます。アカウント A のアカウント ID で
<Account_A_ID>を置き換えます。アカウント A の CodeCommit リポジトリの名前に
<CodeCommit_Repository_Name>置き換えてください。
{ "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>" ] } ] }
SageMaker AI シェルスクリプトの例
この例のスクリプトを使用するには、次を行います。
アカウント A のアカウント ID で
<Account_A_ID>を置き換えます。前に作成した IAM ロールの名前で
<Account_A_Role_Name>を置き換えます。をリポジトリ AWS リージョン の
<CodeCommit_Repository_Region>に置き換えます。アカウント A の CodeCommit リポジトリの名前に
<CodeCommit_Repository_Name>を置き換えてください。
#!/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>