翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ある の AWS CodeCommit リポジトリ AWS アカウント を別の アカウントの Amazon SageMaker AI Studio Classic に関連付ける
ローレンス・ヴァン・デル・マース(AWS)とオーブリー・ウーストハイゼン(AWS)によって作成されました
概要
注意: AWS CodeCommit は新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS CodeCommit 引き続き使用できます。詳細はこちら
このパターンでは、ある AWS アカウント (アカウント A) の AWS CodeCommit リポジトリを別の ( 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 にのみ適用され、RStudio on Amazon SageMaker AI には適用されません。
アーキテクチャ
テクノロジースタック
Amazon SageMaker AI
Amazon SageMaker AI Studio Classic
AWS CodeCommit
AWS Identity and Access Management (IAM)
Git
ターゲット アーキテクチャ
次の図は、アカウント A の CodeCommit リポジトリをアカウント B の SageMaker AI Studio Classic に関連付けるアーキテクチャを示しています。

この図表は、次のワークフローを示しています:
ユーザーは、アカウント B
MyCrossAccountRepositoryContributorRole
の 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>