「Amazon Bedrockへのプライベートアクセスを設定するために、AWS PrivateLinkを使用してください」

「AWS PrivateLinkを使用して、Amazon Bedrockへのプライベートアクセスを設定しましょう」

Amazon Bedrock(アマゾンベッドロック)は、AWSが提供するフルマネージドサービスであり、開発者にfoundationモデル(FM)へのアクセスと、それらを特定のアプリケーションにカスタマイズするためのツールを提供しています。インフラストラクチャの管理はせずに、APIを通じてFMを使用してジェネラティブAIアプリケーションを構築およびスケーリングすることができます。AmazonやAI21 Labs、Anthropic、Cohere、Stability AIなど、Amazonや主要なAIスタートアップからさまざまなFMを選択して、ユースケースに最適なモデルを見つけることができます。Amazon Bedrockのサーバーレス体験を活用すれば、すばやく開始し、簡単にFMを試すことができます。また、独自のデータでカスタマイズし、AWSのツールと機能を使用してシームレスにアプリケーションに統合し、展開することもできます。

お客様は独自のプロプライエタリデータを使用してAmazon Bedrock APIを使用した革新的なジェネラティブAIアプリケーションを構築しています。Amazon Bedrock APIにアクセスする際、お客様はデータをインターネットに公開せずにデータパーメータを設定するメカニズムを求めており、インターネットの脅威ベクトルを軽減することができます。AWS PrivateLinkを利用したAmazon Bedrock VPCエンドポイントを使用すると、お客様のアカウント内のVPCとAmazon Bedrockサービスアカウントとの間にプライベート接続を確立することができます。これにより、VPCインスタンスは公開IPアドレスを必要とせずにサービスリソースと通信することができます。

この投稿では、AWSアカウントへのプライベートアクセスを設定して、独自のデータを使用して安全にAmazon Bedrock APIにアクセスする方法を示します。

ソリューションの概要

ジェネラティブAIを使用して、テキスト要約、コンテンツモデレーションなど、さまざまなアプリケーションを開発することができます。FMやベースモデルを使用してこのようなジェネラティブAIアプリケーションを構築する際、お客様はパブリックインターネットを経由せずにレスポンスを生成したり、企業のデータベースに存在する独自のデータに基づいてレスポンスを生成したりしたいと考えています。

以下の図には、ジェネラティブAIアプリケーションからの製品関連のクエリに回答する際に、Amazon Relational Database Service(Amazon RDS)に存在する独自のデータを読み取るためのインフラストラクチャを設定するアーキテクチャが示されています。この図では説明の目的でAmazon RDSを使用していますが、この投稿に記載されている手順を使用して、Amazon Bedrock APIのプライベートアクセスをテストすることができます。

ワークフローは次のようになります:

  1. AWS Lambda(AWS ラムダ)は、プライベートVPCサブネットで実行されるため、ジェネラティブAIアプリケーションからのプロンプトリクエストを受け取ります。
  2. Lambdaは、プロプライエタリRDSデータベースに問い合わせを行い、プロンプトクエリコンテキストを補完し(たとえば、製品情報の追加など)、補完クエリリクエストでAmazon Bedrock APIを呼び出します。
  3. API呼び出しがAmazon Bedrock VPCエンドポイントにルーティングされます。このVPCエンドポイントは、Amazon Bedrock APIへのアクセスを許可するVPCエンドポイントポリシーに関連付けられています。
  4. Amazon BedrockサービスAPIエンドポイントは、PublicLinkを通じてAPIリクエストを受信します。
  5. Amazon Bedrock VPCエンドポイントポリシーをDeny権限に変更して、Amazon Bedrock APIの呼び出しが拒否されることを検証することができます。
  6. また、AWS Direct Connect(AWSダイレクトコネクト)ゲートウェイを介して、法人ネットワークからAmazon Bedrock APIに対するVPCエンドポイントをプライベートにアクセスすることもできます。

前提条件

開始する前に、次の前提条件を満たしていることを確認してください:

  • AWSアカウント
  • AWS Identity and Access Management(IAM)フェデレーションロール。以下の操作にアクセスできる
    • VPCネットワークリソースの作成、編集、表示、削除
    • Lambda関数の作成、編集、表示、削除
    • IAMロールおよびポリシーの作成、編集、表示、削除
    • 基盤モデルのリストとAmazon Bedrock基盤モデルの呼び出し
  • この記事では、us-east-1リージョンを使用しています
  • Amazon Bedrockコンソールを介して基盤モデルへのアクセスをリクエストしてください

プライベートアクセスインフラのセットアップ

このセクションでは、VPC、プライベートサブネット、セキュリティグループ、Lambda関数をAWS CloudFormationテンプレートを使用してセットアップします。

次のテンプレートを使用して、AWSアカウント内の「Bedrock-GenAI-Stack」というインフラストラクチャスタックを作成してください。

CloudFormationテンプレートは、以下のリソースを代わりに作成します:

  • 2つの異なる利用可能ゾーンにあるプライベートサブネットを持つVPC
  • セキュリティグループとルーティングテーブル
  • Lambda、Amazon Bedrock、およびAmazon Elastic Compute Cloud(Amazon EC2)によって使用されるIAMロールとポリシー

Amazon BedrockのVPCエンドポイントのセットアップ

このセクションでは、Amazon Virtual Private Cloud(Amazon VPC)を使用して、Amazon BedrockへのVPCエンドポイントをセットアップし、VPCとAmazon Bedrock間でのプライベートな接続を容易にします。

  1. Amazon VPCコンソールで、ナビゲーションペインのVirtual private cloudの下で、Endpointsを選択してください。
  2. Create endpointを選択してください。
  3. Name tagbedrock-vpceを入力してください。
  4. Servicesでbedrock-runtimeを検索し、com.amazonaws.<region>.bedrock-runtimeを選択してください。
  5. VPCで、前のセクションでCloudFormationスタックを作成したVPC Bedrock-GenAI-Project-vpcを指定してください。
  6. Subnetsセクションで、利用可能ゾーンを選択し、ドロップダウンメニューから該当するサブネットIDを選択してください。
  7. Security groupsで、グループ名がBedrock-GenAI-Stack-VPCEndpointSecurityGroup-で説明がAllow TLS for VPC Endpointとなるセキュリティグループを選択してください。

セキュリティグループは、インスタンスの仮想ファイアウォールとして機能し、インバウンドおよびアウトバウンドトラフィックを制御します。ただし、このVPCエンドポイントのセキュリティグループは、VPCプライベートサブネットに接続されたセキュリティグループからのトラフィックのみを許可し、保護の層を追加します。

  1. エンドポイントを作成を選択します。

  2. ポリシーセクションでカスタムを選択し、次の最小限の特権ポリシーを入力して、指定された基礎モデルリソース arn:aws:bedrock:*::foundation-model/anthropic.claude-instant-v1 上で特定のアクションのみが許可されるようにします(Lambda関数のIAMロールなどの主体に対して)。

    {   "Version": "2012-10-17",    "Statement": [      {           "Action": [             "bedrock:InvokeModel"               ],          "Resource": [               "arn:aws:bedrock:*::foundation-model/anthropic.claude-instant-v1"               ],          "Effect": "Allow",          "Principal": {                "AWS": "arn:aws:iam::<accountid>:role/GenAIStack-Bedrock"            }      }   ]}

インターフェースエンドポイントが作成され、ステータスが利用可能に変わるまで最大2分かかる場合があります。最新のステータスを確認するには、ページを更新できます。

プライベートVPCサブネット上でLambda関数を設定する

次の手順を完了してLambda関数を構成します。

  1. Lambdaコンソールで、ナビゲーションペインで関数を選択します。
  2. 関数 gen-ai-lambda-stack-BedrockTestLambdaFunction-XXXXXXXXXXXX を選択します。
  3. 左のペインで設定タブを選択し、アクセス許可を選択します。
  4. 実行ロールの下にあるリンクから、ロール gen-ai-lambda-stack-BedrockTestLambdaFunctionRole-XXXXXXXXXXXX を選択します。

IAMコンソールにリダイレクトされます。

  1. 許可ポリシーセクションで許可を追加を選択し、インラインポリシーを作成を選択します。

  2. JSONタブで、ポリシーを次のように変更します:

    {    "Version": "2012-10-17",    "Statement": [        {            "Sid": "eniperms",            "Effect": "Allow",            "Action": [                "ec2:CreateNetworkInterface",                "ec2:DescribeNetworkInterfaces",                "ec2:DeleteNetworkInterface",                "ec2:*VpcEndpoint*"            ],            "Resource": "*"        }    ]}
  3. 次へを選択します。

  4. ポリシー名enivpce-policy を入力します。

  5. ポリシーを作成を選択します。

  6. 以下のインラインポリシー(ソースVPCエンドポイントを指定してください)を追加して、LambdaがAmazon Bedrock APIへのアクセスをVPCエンドポイント経由に限定できるようにします:

    {    "Id": "lambda-bedrock-sourcevpce-access-only",    "Version": "2012-10-17",    "Statement": [        {            "Effect": "Allow",            "Action": [        "bedrock:ListFoundationModels",                "bedrock:InvokeModel"            ],            "Resource": "*",            "Condition": {                "ForAnyValue:StringEquals": {                    "aws:sourceVpce": [                        "vpce-<bedrock-runtime-vpce>"                    ]                }            }        }    ]} 
  7. Lambda関数ページで、設定タブを選択し、左のペインでVPCを選択し、編集を選択します。

  8. VPCには Bedrock-GenAI-Project-vpc を選択します。

  9. サブネットにはプライベートサブネットを選択します。

  10. セキュリティグループには gen-ai-lambda-stack-SecurityGroup-(Amazon Bedrockのワークロードのプライベートサブネット用のセキュリティグループ)を選択します。

  11. 保存を選択します。

プライベートアクセス制御のテスト

今、プライベートアクセス制御(VPCエンドポイントを介したAmazon Bedrock API)をテストできます。

  1. ランバダコンソールで、ナビゲーションペインで関数を選択します。
  2. 関数gen-ai-lambda-stack-BedrockTestLambdaFunction-XXXXXXXXXXXXを選択します。
  3. コードタブでテストを選択します。

Amazon Bedrock APIの呼び出しから次の応答が表示されるはずです(ステータス:成功)。

  1. VPCエンドポイントを介したAmazon Bedrock APIへのアクセスを拒否するには、Amazon VPCコンソールに移動します。
  2. ナビゲーションペインで仮想プライベートクラウドの下にあるエンドポイントを選択します。
  3. ポリシーを選択し、ポリシータブに移動します。

現在、VPCエンドポイントポリシーはAllowに設定されています。

  1. アクセスを拒否するには、ポリシーの編集を選択します。
  2. AllowDenyに変更し、保存を選択します。

VPCエンドポイントのポリシーの更新には最大2分かかる場合があります。

{    "Version": "2012-10-17",    "Statement": [      {           "Action": [             "bedrock:InvokeModel"               ],          "Resource": [               "arn:aws:bedrock:*::foundation-model/anthropic.claude-instant-v1"               ],          "Effect": "Deny",           "Principal": {                "AWS": "arn:aws:iam::<accountid>:role/GenAIStack-Bedrock"            }      }   ]}
  1. ランバダ関数ページに戻り、コードタブでテストを選択します。

次のスクリーンショットに示すように、VPCエンドポイントを介したAmazon Bedrockへのアクセス要求が拒否されました(ステータス:失敗)。

このテストプロセスを通じて、VPCからAmazon Bedrock APIエンドポイントへのトラフィックがインターネット接続ではなく、PrivateLink接続を介して移動していることを実証しました。

クリーンアップ

将来の料金発生を回避するために、次の手順に従ってクリーンアップを行ってください:

  1. VPCエンドポイントをクリーンアップします。
  2. VPCをクリーンアップします。
  3. CloudFormationスタックを削除します。

結論

この投稿では、インターフェースVPCエンドポイントを使用したPrivateLinkによって、お客様のVPCに展開された生成AIワークロードとAmazon Bedrockの間にプライベート接続を設定し、運用する方法を示しました。この投稿で説明されたアーキテクチャを使用すると、お客様のVPCとAmazon Bedrockの間のトラフィックはAmazonネットワーク内で外部に漏洩せず、データが公開インターネットに露出されることはありません。これにより、コンプライアンス要件が満たされます。

次のステップとして、アカウントでこのソリューションを試してフィードバックを共有してください。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

学習トランスフォーマーコード第2部 - GPTを間近で観察

私のプロジェクトの第2部へようこそここでは、TinyStoriesデータセットとnanoGPTを使用して、トランスフォーマーとGPTベース...

機械学習

「SDXL 1.0の登場」

機械学習の急速に進化する世界では、新しいモデルやテクノロジーがほぼ毎日私たちのフィードに押し寄せるため、最新情報を把...

機械学習

OpenAIがBaby Llamaを発表 - 低電力デバイス向けのLLM!

人工知能の世界からの最新ニュース! OpenAIの有名な深層学習の専門家、Andrej Karpathy氏が、リソース制約のあるデバイス上...

データサイエンス

「関係深層学習ベンチマーク(RelBench)に出会ってください:関係データベース上の機械学習のためのリアルな、大規模で多様なベンチマークデータセットのコレクション」

人工知能(AI)と機械学習(ML)の急速な進歩の分野において、効果的で自動化され、適応性のある手法を見つけることは非常に...

データサイエンス

Btech卒業後に何をすべきですか?

Btechの後に何をすべきですか?このよくある質問は、最終学年や最近卒業した学生にとって悩みの種です。多くの人々が従来のキ...

AIニュース

「インドが最新のAIを活用してペイメント詐欺に取り組む方法」

今日のデジタル時代において、オンライン取引に関連する詐欺は増加しており、金融機関と規制当局に重大な課題をもたらしてい...