生成的データ インテリジェンス

Amazon S3 アクセス ポイントを使用して、VPC 専用モードで Amazon SageMaker ノートブックのクロスアカウント Amazon S3 アクセスをセットアップする |アマゾン ウェブ サービス

日付:

人工知能 (AI) と機械学習 (ML) の進歩により、不正行為の検出、信用力評価、取引戦略の最適化などのユースケースにおいて金融業界に革命が起きています。このようなユースケースのモデルを開発するには、データ サイエンティストは信用決定エンジン、顧客トランザクション、リスク選好度、ストレス テストなどのさまざまなデータセットにアクセスする必要があります。厳しいコンプライアンスと規制要件を満たすには、データセットに取り組むデータ サイエンティストの間で、これらのデータセットに対する適切なアクセス制御を管理することが重要です。通常、これらのデータセットは集中管理されたシステムに集約されます。 Amazon シンプル ストレージ サービス (Amazon S3) のさまざまなビジネス アプリケーションやエンタープライズ システムからの場所。ビジネスユニット全体のデータサイエンティストが、以下を使用してモデル開発に取り組んでいます アマゾンセージメーカー 関連データへのアクセスが許可されているため、管理が必要になる可能性があります。 接頭辞-レベルのアクセス制御。を使用するユースケースとデータセットの増加に伴い、 バケットポリシー ステートメントを使用すると、アプリケーションごとにクロスアカウント アクセスを管理するのは複雑すぎて、バケット ポリシーで対応するには時間がかかりすぎます。

Amazon S3 アクセス ポイント Amazon S3 上の共有データセットを使用して、アプリケーションの大規模なデータ アクセスの管理と保護を簡素化します。アクセス ポイントを使用して一意のホスト名を作成し、アクセス ポイントを介して行われるリクエストに対して個別の安全なアクセス許可とネットワーク制御を適用できます。

S3 アクセス ポイントは、共有データセットにアクセスする各アプリケーションに固有のアクセス許可の管理を簡素化します。 AWS 内部ネットワークを使用して、同じリージョンのアクセス ポイント間で安全かつ高速なデータ コピーを可能にします。 および VPC。 S3 アクセス ポイントは VPC へのアクセスを制限できるため、プライベート ネットワーク内のデータをファイアウォールしたり、既存のアクセス ポイントに影響を与えずに新しいアクセス コントロール ポリシーをテストしたり、特定のアカウント ID が所有する S3 バケットへのアクセスを制限するように VPC エンドポイント ポリシーを設定したりできます。

この投稿では、SageMaker ノートブック インスタンスからのクロスアカウント アクセスを有効にするために S3 アクセス ポイントを構成する手順について説明します。

ソリューションの概要

このユースケースでは、組織内に 111111111111 つのアカウントがあります。アカウント A (222222222222) は、データ サイエンティストが SageMaker ノートブック インスタンスを使用してモデルを開発するために使用し、アカウント B (3) は、SXNUMX バケットに必要なデータセットを持っています。 test-bucket-1。次の図は、ソリューション アーキテクチャを示しています。

ソリューションを実装するには、次の大まかな手順を完了します。

  1. VPC、サブネット セキュリティ グループ、VPC ゲートウェイ エンドポイント、および SageMaker ノートブックを含むアカウント A を構成します。
  2. S3 バケット、アクセス ポイント、バケット ポリシーを含むアカウント B を構成します。
  3. 構成 AWS IDおよびアクセス管理 アカウント A の (IAM) 権限とポリシー。

アカウント B から共有データセットにアクセスする必要がある SageMaker アカウントごとに、これらの手順を繰り返す必要があります。

この投稿で言及されている各リソースの名前は例です。ユースケースに応じて、他の名前に置き換えることができます。

アカウントAの構成

アカウント A を構成するには、次の手順を実行します。

  1. VPC を作成する 呼ばれます DemoVPC.
  2. サブネットを作成する 呼ばれます DemoSubnet VPC内で DemoVPC.
  3. セキュリティグループを作成する 呼ばれます DemoSG.
  4. 作る VPC S3 ゲートウェイ エンドポイント 呼ばれます DemoS3GatewayEndpoint.
  5. 作ります SageMaker 実行ロール.
  6. ノートブックインスタンスを作成する 呼ばれます DemoNotebookInstance および、で概説されているセキュリティ ガイドライン Amazon SageMaker でセキュリティを設定する方法.
    1. 作成した Sagemaker 実行ロールを指定します。
    2. ノートブックのネットワーク設定には、作成した VPC、サブネット、セキュリティ グループを指定します。
    3. ていることを確認してください インターネットへの直接アクセス 無効になっています。

必要な依存関係を作成した後、後続の手順でロールにアクセス許可を割り当てます。

アカウント B の構成

アカウント B を構成するには、次の手順を実行します。

  1. アカウント B では、 S3バケットを作成する 呼ばれます test-bucket-1 フォロー中 Amazon S3 セキュリティ ガイダンス.
  2. ファイルをアップロードする S3 バケットに。
  3. アクセスポイントを作成する 呼ばれます test-ap-1 アカウントBで。
    1. 何も変更または編集しないでください パブリックアクセスのブロック設定 このアクセス ポイントの場合 (すべてのパブリック アクセスをブロックする必要があります)。
  4. 次のポリシーをアクセス ポイントにアタッチします。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": “arn:aws:iam:: 111111111111:role/demo ”
            },
            "Action": ["s3:GetObject", "s3:GetObjectVersion", "s3:PutObject", "s3:PutObjectAcl"]
            "Resource": [
                “arn:aws:s3:us-east-1: 222222222222:accesspoint/test-ap-1”,
                " arn:aws:s3:us-east-1: 222222222222:accesspoint/test-ap-1/object/*"
            ]
        }
    ]
}

前述のコードで定義されているアクションは、デモ用のサンプル アクションです。あなたはできる アクションを定義する 要件やユースケースに応じて。

  1. アクセス ポイントにアクセスするために、次のバケット ポリシー権限を追加します。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": " arn:aws:iam:: 111111111111:role/demo "
            },
            "Action" : ["s3:GetObject","s3:ListBucket"],
            "Resource" : ["arn:aws:s3:::test-bucket-1 ”, " arn:aws:s3:::test-bucket-1/*"]
            "Condition": {
                "StringEquals": {
                    "s3:DataAccessPointAccount": "222222222222"
                }
            }
        }
    ]
}

前述のアクションは例です。要件に応じてアクションを定義できます。

IAM 権限とポリシーを構成する

アカウント A で次の手順を実行します。

  1. SageMaker 実行ロールに AmazonSagemakerフルアクセス カスタム IAM インライン ポリシーこれは次のコードのようになります。
{
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            " Action": ["s3:GetObject", "s3:GetObjectVersion", "s3:PutObject", "s3:PutObjectAcl"]
            "Resource": [
                “arn:aws:s3:us-east-1: 222222222222:accesspoint/test-ap-1 ”,
                "arn:aws:s3:us-east-1: 222222222222:accesspoint/test-ap-1 /object/*”,                             "arn:aws:s3:::test-bucket-1”,
                " arn:aws:s3:::test-bucket-1/*"
            ]
}

ポリシー コード内のアクションは、デモ用のサンプル アクションです。

  1. に行きます DemoS3GatewayEndpoint 作成したエンドポイントにアクセスし、次の権限を追加します。
{

	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "AllowCrossAccountAccessThroughAccessPoint",
			"Effect": "Allow",
			"Principal": "*",
			"Action": [
				"s3:Get*",
				"s3:List*",
				"s3:Put*"
			],
			"Resource": ": [
                “arn:aws:s3:us-east-1: 222222222222:accesspoint/test-ap-1 ”,
                "arn:aws:s3:us-east-1: 222222222222:accesspoint/test-ap-1 /object/*”,                             "arn:aws:s3:::test-bucket-1 ”,
                " arn:aws:s3:::test-bucket-1/*"
            ]
 
		}
	]
}

  1. プレフィックス リストを取得するには、次のコマンドを実行します。 AWSコマンドラインインターフェイス (AWS CLI) 説明プレフィックスリスト コマンド:
aws ec2 describe-prefix-lists

  1. アカウント A で、セキュリティ グループに移動します。 DemoSG ターゲットの SageMaker ノートブック インスタンスの場合
  2. アウトバウンドルール、送信ルールを作成します。 すべてのトラフィック or すべての TCPをクリックし、取得したプレフィックス リスト ID として宛先を指定します。

これで両方のアカウントのセットアップが完了しました。

ソリューションをテストする

ソリューションを検証するには、SageMaker ノートブック インスタンスのターミナルに移動し、次のコマンドを入力して、アクセス ポイント経由でオブジェクトを一覧表示します。

  • S3 アクセス ポイントを介してオブジェクトを正常にリストするには test-ap-1:
aws s3 ls arn:aws:s3:us-east-1:222222222222:accesspoint/Test-Ap-1

  • S3 アクセスポイント経由でオブジェクトを正常に取得するには test-ap-1:
aws s3api get-object --bucket arn:aws:s3:us-east-1:222222222222:accesspoint/test-ap-1 --key sample2.csv test2.csv

クリーンアップ

テストが完了したら、すべて削除します S3アクセスポイント および S3バケット。また、いずれかを削除してください Sagemaker ノートブック インスタンス 料金の発生をやめるには。

まとめ

この投稿では、S3 アクセス ポイントを使用して、SageMaker ノートブック インスタンスから大規模な共有データセットへのクロスアカウント アクセスを可能にし、共有データセットで大規模なアクセス管理を構成しながら、バケット ポリシーによって課せられるサイズ制約をバイパスする方法を説明しました。

詳細については、を参照してください。 Amazon S3 アクセス ポイントを使用して共有データ セットを簡単に管理.


著者について

キラン・カンベテ は、アマゾン ウェブ サービス (AWS) でシニア テクニカル アカウント マネージャーとして働いています。 TAM として、Kiran は技術専門家としての役割と、企業顧客がビジネス目標を達成できるよう支援する戦略的ガイドとしての役割を果たしています。

アンキット・ソニ 合計 14 年の経験を持つ彼は、NatWest Group でプリンシパル エンジニアの職を務めており、過去 XNUMX 年間はクラウド インフラストラクチャ アーキテクトを務めています。

ケサラジュ サイ サンディープ AWS のビッグ データ サービスを専門とするクラウド エンジニアです。

スポット画像

最新のインテリジェンス

スポット画像