24
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Bedrock のモデルアクセス廃止に関しておさえておくとよいこと

Last updated at Posted at 2025-10-19

はじめに

2025/10/15 のアップデートで Amazon Bedrock のモデルアクセスが廃止され、Bedrock で提供される基盤モデルへの初期アクセスが簡素化されました。

単に機能として消えただけではなく、周辺の動作がそれなりに変わっているようです。変更内容を理解することで、組織利用や開発への影響判断に役立つこともあるかと思い、現時点で把握している内容をまとめます。

モデルアクセスとは何だったのか

モデルアクセスは Bedrock で利用可能な基盤モデルを制御するための機能です (でした)。使用を開始したいモデルごとに明示的にアクセスをリクエストし、有効化する必要がありましたが、今後その必要がなくなりました。

モデルアクセスが有効化されてない場合の AccessDeniedExeption (You don't have access to the model with the specified model ID) メッセージは Bedrock ユーザーなら誰しも一度は目にしているのではないでしょうか。

今後は新規モデルも追加のステップなしで即時利用可能になります。コンソール上のモデルアクセスページも既に廃止されており、現在は以下のような表示になっています。

image.png

Anthropic モデルの初回申請は引き続き必要

Anthropic 社が提供するモデルを使用するには、アクセスをリクエストする前にユースケースの詳細を送信する必要がありました。この要件はモデルアクセス廃止後も変更ありません。

Anthropic モデルを一度も利用したことがないアカウントや新規のアカウントで Bedrock コンソールの Chat / Text playground を開き、Ahthropic モデルを選択すると初回申請フォームが表示されます。直感的な手順ではないので、知らないと辿りつけないかもしれません。

image.png

AWS Organizations ではプロセスを簡略化できる

AWS Organizations を利用している場合、管理アカウントでユースケース送信を行うことで各メンバーアカウントでの初回フォーム入力が不要になると冒頭のリリースやブログで案内されています (挙動は未確認)。

API によるユースケースの送信

初回ユースケースの送信は PutUseCaseForModelAccess API を使用することで自動化することもできます。後述もしますが、この API 自体は以前から利用可能だったものです。

Request Syntax はシンプルです。formData は Base64 エンコードが必要です。

POST /use-case-for-model-access HTTP/1.1
Content-type: application/json

{
   "formData": blob
}

formData の中身は、コンソールで送信するものと同等の内容を json 形式 で送信します。intendedUsers0 が Internal users です。

{
  "companyName":"Example Corp",
  "companyWebsite":"https://example.com",
  "intendedUsers":"0",
  "industryOption":"Software as a Service",
  "otherIndustryOption":"",
  "useCases":"YOUR_USECASE_HERE"
}

以下はコード例です。

サンプルのため省略していますが、実際に送信する場合はユースケース情報を正しく入力してください。

put_use_case_for_model_access.py
import boto3
import base64
import json

def main():
    client = boto3.client('bedrock', region_name='us-east-1')

    form_data = {
        "companyName":"",
        "companyWebsite":"",
        "intendedUsers":"",
        "industryOption":"",
        "otherIndustryOption":"",
        "useCases":""
    }

    # ユースケース情報の送信
    # blob 型の場合、boto3 では個別に Base64 エンコードしなくて OK
    client.put_use_case_for_model_access(
        formData=form_data
    )

if __name__ == "__main__":
    main()

GetUseCaseForModelAccess API で既に送信済みのユースケースを取得できるので新規アカウントで送信するときの参考にできます。

get_use_case_for_model_access.py
import boto3
import base64

def main():
    client = boto3.client('bedrock', region_name='us-east-1')
    response = client.get_use_case_for_model_access()
    print(base64.b64decode(response['formData']).decode('utf-8'))

if __name__ == "__main__":
    main()

AWS Marketplace のサブスクライブプロセス

これまで: モデルアクセスでモデル有効化時にサブスクライブ
これから: モデルの初回呼び出し時にサブスクライブ

Amazon、DeepSeek、Mistral AI、Meta、Qwen、OpenAI が提供するモデルを除き、3rd party のモデルプロバイダーが提供するモデルは AWS Marketpalace を通じて提供されます。これまではモデルアクセスでのモデル有効化時に、対応するマーケットプレイス製品のサブスクライブがおこなわれていました。モデルアクセス廃止後はモデルの初回呼び出し時にサブスクライブがおこなわれます。

サブスクライブを行う IAM にはマケプレの権限が必要

これ自体は以前からの仕様です。注意しなければならないのはモデルアクセスの廃止により、初回アクセス時に製品のサブスクライブが行われるという点です。つまり初回呼び出しを行う IAM プリンシパルで aws-marketplace:Subscribe アクションが許可されている必要があります。

そのため人間が介在せずに AI エージェントや Bedrock Knowledge Bases などのアプリケーションが基盤モデルの初回呼び出しをおこなう場合は、これらが使用する IAM ロールでも aws-marketplace:Subscribe アクションを許可しておく必要があります。

EULA の確認方法

多くの 3rd party モデルでは標準の AWS サービス条件に加え、モデルプロバイダー毎に End User License Agreement (EULA) が定義されており、これに同意して利用する必要があります。モデルを呼び出した時点で該当する EULA に同意したものとみなされます。

モデルアクセスのダッシュボードでは各社の EULA へのリンクがあり、有効化前に確認するための導線として一定の役割を果たしていたと思うのですが、ダッシュボードは廃止されてしまいました。これまで以上にユーザーが能動的に EULA を確認する必要があります。

EULA はモデルカタログから確認できるほか、

image.png

以下のリンクにもまとめて掲載されています。

モデルへのアクセス制御をどうおこなっていくか

企業利用の場合、モデルの使用を開始する前に EULA を確認を必須化したいケースも多いと思います。このような場合、SCP または IAM ポリシーを使用してアクセスを制御する方法がこれまでどおり利用できます。モデルへのアクセスをデフォルトでブロックし、必要な社内プロセスを経て EULA に同意する場合のみ、ポリシーを変更してアクセスを許可します。

例えば Claude Haiku 4.5 以外の Subscribe を拒否する場合は以下のようなポリシーです。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "aws-marketplace:Subscribe"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringNotEquals": {
          "aws-marketplace:ProductId": [
            "prod-xdkflymybwmvi"
          ]
        }
      }
    }
  ]
}

Amazon、DeepSeek、Mistral AI、Meta、Qwen、OpenAI が提供するモデルは AWS Marketplace を使用しません。そのため上記のポリシーでは利用を制限できないことにご注意ください。

アクセスが許可された特定のモデル ID の利用をブロックするなど、その他の例は以下のドキュメントを参照ください。

モデルアクセス関連 API

これまで: モデルアクセスに関連する各種 API を提供
これから: PutFoundationModelEntitlement (内部 API ) は廃止、その他は現時点で変更なし

モデルアクセスの操作は基本的にコンソール上で行う必要がありました。一部のオペレーションに関しては 2025 年 6 月下旬頃に API が公開されており、AWS CLI や SDK でも使用可能です。

CreateFoundationModelAgreement API は Antrhopic 等の一部 3rd party モデルの利用の前提となるモデルアクセス契約 (EULA への同意) を作成するための API であり、最終的なモデルアクセスをリクエストする API ではありません。

またモデルアクセスをリクエストするための PutFoundationModelEntitlement API は API Reference では公開されていません。そのため AWS CLI や SDK では使用できず、コンソール操作でモデルを有効化する際に内部的に使用されていました。

API 概要 公開状況 今後のステータス
CreateFoundationModelAgreement モデル ID とオファーを指定し、モデルアクセス契約を作成 公開 アナウンスなし
DeleteFoundationModelAgreement 指定したモデルのアクセス契約を削除 公開 アナウンスなし
GetFoundationModelAvailability 指定したモデルの可用性情報を取得 公開 アナウンスなし
ListFoundationModelAgreementOffers 指定したモデルのオファーを取得する 公開 アナウンスなし
PutUseCaseForModelAccess Anthropic モデル利用時のユースケースを送信 公開 アナウンスなし
GetUseCaseForModelAccess 送信済みのユースケース取得 公開 アナウンスなし
PutFoundationModelEntitlement 指定したモデルのアクセスをリクエストする 非公開 廃止

廃止される API

冒頭に紹介した AWS Blog で PutFoundationModelEntitlement API および、付随する IAM ポリシーアクションである bedrock:PutFoundationModelEntitlement が無効化された旨がアナウンスされています。

GetFoundationModelAvailability のレスポンス

モデルのアクセス申請状態を示す値として entitlementAvailability があり、これまではその値 (AVAILABLE | NOT_AVAILABLE) で有効かどうかを確認できていました。これを活用することでモデルアクセスが有効になっている基盤モデルのみをアプリケーション側で表示する、というような制御が可能でした。

モデルアクセスが廃止されたことにより、entitlementAvailability の値として常に AVAILABLE が返されるように変更されています。

GetFoundationModelAvailability のレスポンス例
$ aws bedrock get-foundation-model-availability \
    --model-id 'anthropic.claude-haiku-4-5-20251001-v1:0' --region us-east-1
{                                      
    "modelId": "anthropic.claude-haiku-4-5-20251001-v1",                               
    "agreementAvailability": {
        "status": "AVAILABLE"
    },
    "authorizationStatus": "AUTHORIZED",
    "entitlementAvailability": "AVAILABLE",
    "regionAvailability": "AVAILABLE"
}

その他の API はどうなる?

本記事の投稿時点でその他の公開 API に関しての情報 (削除や変更) などは見当たりませんでした。モデルアクセスの廃止により将来的に仕様が変更される可能性も 0 ではありません。

アプリケーションにこれらの API を使用する実装がある場合は、適切なエラーハンドリングをおこないつつ、最新情報をフォローしていきましょう。

以上です。
参考になれば幸いです。

24
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?