Amazon Web Services ブログ

AWS PrivateLink を使用してすべての Amazon SageMaker API コールを保護する

すべての Amazon SageMaker API 操作が AWS PrivateLink を介して完全にサポートされるようになりました。これにより、インターネットへのデータ暴露を減らすことで、クラウドベースのアプリケーションと共有されるデータセキュリティが向上します。ノートブックインスタンスへのアクセスは引き続き、TLSを介したインターネット経由となり、AWSマネージメントコンソールへのログインクレデンシャルで保護される形態となります。このブログでは、AWS PrivateLink を使用して Amazon SageMaker API コールを保護するための VPC エンドポイントの設定方法を説明します。

AWS PrivateLink トラフィックはインターネットを通過しないため、ブルートフォースや分散型サービス拒否攻撃などの脅威への露出を低減します。お使いのアプリケーションと Amazon SageMaker API 操作間のすべての通信は VPC の内部で行われるため、Amazon SageMaker と通信するためにインターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect は必要ありません。代わりに、AWS PrivateLink では、インターフェイス VPC エンドポイントを使用して、スケーラブルな方法でお使いの VPC からすべての Amazon SageMaker API 操作にプライベートアクセスすることが可能です。VPC エンドポイントはすべての Amazon SageMaker API コールのエントリポイントとして機能するプライベート IP アドレスを使用したサブネット内の Elastic Network Interface です。

AWS PrivateLink はすべての Amazon SageMaker API 操作をサポートしていますが、SageMaker ノートブックインスタンスは現在、インターネット経由でのみアクセス可能なため、CreatePresignedNotebookInstanceUrl によって返された AuthorizedUrlAWS PrivateLink 経由 ではアクセスできません。しかし、IAM ポリシーに IP アドレス条件演算子を付加することで、ノートブックインスタンスのアクセスを特定の IP アドレスリストに制限することができます。この条件は、呼び出しがノートブックインスタンスにアクセスする IAM ユーザー、グループ、またはロールに関連付けられたポリシーの IP アドレスからのものでない限り、 CreatePresignedNotebookInstanceUrl AuthorizedUrl へのアクセスを拒否します。この方法は、会社の IP アドレスが明確な定義範囲内にある場合に使用できます。詳細については、「ノートブックインスタンスへのアクセス」を参照してください。

VPC エンドポイントの作成

AWS PrivateLink を使用するには、インターフェイス VPC エンドポイントを作成し、Amazon SageMaker API サービスに接続する必要があります。このブログでは、AWS マネジメントコンソールを使用して VPC エンドポイントを作成していますが、AWS コマンドラインインターフェイス (AWS CLI) コマンドを使用しても同じ操作を行うことが可能です。

コンソールから VPC エンドポイントを作成するには、Amazon VPC コンソールを開き、[エンドポイント] ページを開き、次の図で示すように新しいエンドポイントを作成します。

これには、3 つの属性が必要です。

  • Amazon SageMaker API サービス名。[サービスカテゴリー] で [AWS サービス] を選択し、[サービス名] で [amazonaws.eu-west-1.sagemaker.api] を選択します。
  • 使用する VPC とアベイラビリティーゾーン。
  • インターフェイス VPC エンドポイントに関連付けられるセキュリティグループ。セキュリティグループを指定しない場合は、ユーザーの VPC のデフォルトであるセキュリティグループが関連付けられます。

ステータスが [利用可能] な場合には、VPC エンドポイントの使用を開始できます。次の図は、2 つの VPC エンドポイントを示しています。1 つ目は Amazon SageMaker でホストされているモデルへの予測コールを保護するための Amazon SageMaker ランタイムサービス用です。2 つ目は、すべての API コールを保護するための Amazon SageMaker API サービス用です。

API サービスへの VPC エンドポイントを作成後、次の AWS CLI コマンド例を使用して、構成済みの VPC エンドポイントを使用している VPC 内のノートブックインスタンスを一覧表示します。

aws sagemaker list-notebook-instances –-endpoint-url VPC_Endpoint_ID.api.sagemaker.Region.vpce.amazonaws.com

オプションとして、次の図に示すようにユーザーの VPC エンドポイントのプライベート DNS ホスト名を有効にすると、エンドポイント URL を指定する必要はありません。

プライベートホストゾーンにより、AWS が提供するプライベート IPv4 アドレスまたはプライベート DNS ホスト名を使用する代わりに、example.com などのカスタム DNS ドメイン名を使用して、VPC 内のリソースにアクセスできるようになります。AWS CLI と Amazon SageMaker SDK がデフォルトで使用する Amazon SageMaker DNS ホスト名 (https://api.sagemaker.Region.amazonaws.com) がユーザーの VPC エンドポイントを解決します。

プライベートホストゾーンを有効にする、または 2018 年 8 月 13 日以前にリリースされた SDK を使用している場合は、SDK または AWS CLI を使用する際にエンドポイントを指定する必要があります。 例:

aws --endpoint https://VPC_Endpoint_ID.api.sagemaker.Region.vpce.amazonaws.com sagemaker list-notebook-instances

前述の例では、VPC エンドポイントはこのようになります。

aws --endpoint https://vpce-0ade0a2e24d1ae8a5.api.sagemaker.eu-west-1.vpce.amazonaws.com sagemaker list-notebook-instances

プライベートホストゾーンを有効にしていて、2018 年 8 月 13 日にリリースされた SDK を使用している場合は、次のようになります。

aws sagemaker list-notebook-instances

まとめ

すべての Amazon SageMaker API コールと予測コールは、AWS PrivateLink 経由でサポートされるようになりました。この機能は、すべての Amazon SageMaker リージョンで使用できます。Amazon SageMaker の暗号化、IAM ロール、KMS キー、AWS CloudTrail 統合などのセキュリティ機能の使用についての詳細は、『Amazon SageMaker 開発者ガイド』を参照してください。


今回のブログ投稿者について

Urvashi Chowdhary は Amazon SageMaker のシニアプロダクトマネージャーです。お客様との協業で機械学習をよりわかりやすいものにしようと意欲的です。余暇は大好きなヨット、カヌー、カヤックで過ごします。