Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

ある の AWS CodeCommit リポジトリ AWS アカウント を別の アカウントの Amazon SageMaker AI Studio Classic に関連付ける - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ある の 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 の基本的な理解

  • GitCodeCommit の基本的な理解

機能制限

このパターンは 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 に関連付けるアーキテクチャを示しています。

クロスアカウント関連付けのアーキテクチャ図

この図表は、次のワークフローを示しています:

  1. ユーザーは、アカウント B MyCrossAccountRepositoryContributorRoleの SageMaker AI Studio Classic で SageMaker AI 実行ロールを使用しながら、sts:AssumeRoleロールを通じてアカウント A のロールを引き受けます。引き受けたロールには、指定されたリポジトリをクローンして操作するための CodeCommit アクセス許可が含まれます。

  2. ユーザーは 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 ポリシーを作成します。

  1. にサインイン AWS Management Console し、IAM コンソールを開きます。

  2. ナビゲーションペインで、[Policies] を選択し、次に [Create policy] を選択します。

  3. [JSON] タブを選択します。

  4. このパターンの「追加情報」セクションにある Example IAM policy からポリシーステートメントをコピーし、そのステートメントを JSON エディターに貼り付けます。ポリシー内のすべてのプレースホルダー値を必ず置き換えてください。

  5. 次へ:タグを選択し、次へ:レビューを選択します。

  6. [名前] にポリシーの名前を入力します。注:このパターンでは IAM ポリシーは「CrossAccountAccessForMySharedDemoRepo」と呼ばれますが、任意のポリシー名を選択できます。

  7. [Create policy] を選択します。

ヒント

ベストプラクティスとして、IAM ポリシーの範囲をユースケースに必要な最小限のアクセス許可に制限することをお勧めします。

AWS DevOps

Account A でリポジトリアクセスの IAM ロールを作成します。

  1. IAM コンソールのナビゲーションペインで、ロール、ロールを作成の順に選択します。

  2. 信頼できるエンティティタイプには、AWS アカウントを選択します。

  3. AWS アカウントセクションで、別の AWS アカウントを選択します。

  4. アカウント ID に対して、アカウント B のアカウント ID を入力します。

  5. アクセス許可を追加ページで、以前に作成された CrossAccountAccessForMySharedDemoRepo ポリシーを検索し、選択します。

  6. [Next (次へ)] を選択します。

  7. [Role name] (ロール名) に名前を入力します。注:このパターンでは IAM ロール名はMyCrossAccountRepositoryContributorRoleと呼ばれますが、好きなロール名を選択できます。

  8. ロールの作成を選択し、新しいロールの Amazon リソースネーム (ARN) をコピーします。

AWS DevOps

アカウント A で IAM ポリシーと IAM ロールを作成

タスク説明必要なスキル

Account A でリポジトリアクセスの IAM ポリシーを作成します。

  1. にサインイン AWS Management Console し、IAM コンソールを開きます。

  2. ナビゲーションペインで、[Policies] を選択し、次に [Create policy] を選択します。

  3. [JSON] タブを選択します。

  4. このパターンの「追加情報」セクションにある Example IAM policy からポリシーステートメントをコピーし、そのステートメントを JSON エディターに貼り付けます。ポリシー内のすべてのプレースホルダー値を必ず置き換えてください。

  5. 次へ:タグを選択し、次へ:レビューを選択します。

  6. [名前] にポリシーの名前を入力します。注:このパターンでは IAM ポリシーは「CrossAccountAccessForMySharedDemoRepo」と呼ばれますが、任意のポリシー名を選択できます。

  7. [Create policy] を選択します。

ヒント

ベストプラクティスとして、IAM ポリシーの範囲をユースケースに必要な最小限のアクセス許可に制限することをお勧めします。

AWS DevOps

Account A でリポジトリアクセスの IAM ロールを作成します。

  1. IAM コンソールのナビゲーションペインで、ロール、ロールを作成の順に選択します。

  2. 信頼できるエンティティタイプには、AWS アカウントを選択します。

  3. AWS アカウントセクションで、別の AWS アカウントを選択します。

  4. アカウント ID に対して、アカウント B のアカウント ID を入力します。

  5. アクセス許可を追加ページで、以前に作成された CrossAccountAccessForMySharedDemoRepo ポリシーを検索し、選択します。

  6. [Next (次へ)] を選択します。

  7. [Role name] (ロール名) に名前を入力します。注:このパターンでは IAM ロール名はMyCrossAccountRepositoryContributorRoleと呼ばれますが、好きなロール名を選択できます。

  8. ロールの作成を選択し、新しいロールの Amazon リソースネーム (ARN) をコピーします。

AWS DevOps
タスク説明必要なスキル

アカウント B の SageMaker ドメインユーザーにアタッチされている実行ロールにインラインポリシーをアタッチします。

  1. IAM コンソールのナビゲーションペインでロールを選択します。

  2. アカウント B の SageMaker AI ドメインユーザーにアタッチされている実行ロールを検索して選択します。

  3. アクセス許可を追加、インラインポリシーを作成の順に選択します。

  4. [JSON] タブを選択します。

  5. 次のポリシーステートメントをコピーして、 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. アカウント A のアカウント ID <Account_A_Role_Name> に置き換え、前に作成した IAM ロールの名前 <Account_A_ID> に置き換えます。

  7. [ポリシーの確認] を選択します。

  8. 名前に対して、インラインポリシーの名前を入力します。

  9. [Create policy] を選択します。

AWS DevOps

アカウント B で IAM インラインポリシーを作成します。

タスク説明必要なスキル

アカウント B の SageMaker ドメインユーザーにアタッチされている実行ロールにインラインポリシーをアタッチします。

  1. IAM コンソールのナビゲーションペインでロールを選択します。

  2. アカウント B の SageMaker AI ドメインユーザーにアタッチされている実行ロールを検索して選択します。

  3. アクセス許可を追加、インラインポリシーを作成の順に選択します。

  4. [JSON] タブを選択します。

  5. 次のポリシーステートメントをコピーして、 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. アカウント A のアカウント ID <Account_A_Role_Name> に置き換え、前に作成した IAM ロールの名前 <Account_A_ID> に置き換えます。

  7. [ポリシーの確認] を選択します。

  8. 名前に対して、インラインポリシーの名前を入力します。

  9. [Create policy] を選択します。

AWS DevOps
タスク説明必要なスキル

アカウント B の SageMaker AI Studio Classic でシェルスクリプトを作成します。

  1. SageMaker コンソール」 のナビゲーションペインで、 Studio を選択します。

  2. ユーザープロファイルを選択し、Open Studio を選択します。

  3. ホームセクションでランチャーを開くを選択します。

  4. ユーティリティとファイルセクションで、テキストファイルを選択します。

  5. このパターンの「追加情報」セクションにある Example SageMaker シェルスクリプトからスクリプトをコピーし、そのステートメントを新しいファイルに貼り付けます。スクリプトのすべてのプレースホルダー値を置き換えます。

  6. 新しいファイルの untitled.txt タブを右クリックし、テキストの名前を変更を選択します。新しい名前に cross_account_git_clone.sh と入力し、名前の変更を選択します。

AWS DevOps

システムターミナルからシェルスクリプトを呼び出します。

  1. SageMaker コンソールのホームセクションで、「ランチャーを開く」を選択します。

  2. ユーティリティとファイルセクションで、システムターミナルを選択します。

  3. ターミナルで、以下のコマンドを実行します。

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

SageMaker AI Studio クロスアカウントで CodeCommit リポジトリのクローンを作成しました。システムターミナルからすべての Git コマンドを実行できるようになりました。

AWS DevOps

アカウント B の SageMaker AI Studio Classic でリポジトリのクローンを作成する

タスク説明必要なスキル

アカウント B の SageMaker AI Studio Classic でシェルスクリプトを作成します。

  1. SageMaker コンソール」 のナビゲーションペインで、 Studio を選択します。

  2. ユーザープロファイルを選択し、Open Studio を選択します。

  3. ホームセクションでランチャーを開くを選択します。

  4. ユーティリティとファイルセクションで、テキストファイルを選択します。

  5. このパターンの「追加情報」セクションにある Example SageMaker シェルスクリプトからスクリプトをコピーし、そのステートメントを新しいファイルに貼り付けます。スクリプトのすべてのプレースホルダー値を置き換えます。

  6. 新しいファイルの untitled.txt タブを右クリックし、テキストの名前を変更を選択します。新しい名前に cross_account_git_clone.sh と入力し、名前の変更を選択します。

AWS DevOps

システムターミナルからシェルスクリプトを呼び出します。

  1. SageMaker コンソールのホームセクションで、「ランチャーを開く」を選択します。

  2. ユーティリティとファイルセクションで、システムターミナルを選択します。

  3. ターミナルで、以下のコマンドを実行します。

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

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>
プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.