View a markdown version of this page

IAM プリンシパル属性 - Amazon Bedrock

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

IAM プリンシパル属性

Amazon Bedrock は、すべての推論リクエストの IAM プリンシパル ID (IAM ユーザーIAM ロール) を自動的にキャプチャします。必要に応じて、プリンシパルにタグをアタッチして、チーム、部門、コストセンターなどの追加のコストディメンションを設定できます。これにより、コード変更や追加のリソースなしで、ユーザーごとおよびロールごとのコストを可視化できます。

IAM プリンシパル属性は現在、Amazon Bedrock bedrock-runtime APIsInvokeModel API / Converse API / Chat Completions API) で動作しますbedrock-mantle APIs のサポートは間もなく開始されます。

仕組み

IAM ユーザーまたはロールが推論リクエストを行うと、Amazon Bedrock は発信者の ID を記録します。この情報は AWS Cost Explorer と AWS Cost and Usage Reports (CUR 2.0) に流れ、ID でコストをフィルタリングしてグループ化できます。Amazon Bedrock API コールに変更を加える必要はありません。属性は、API パラメータではなく、呼び出しを行ったユーザーに基づいています。

必要に応じて、IAM プリンシパルにタグをアタッチして、請求データに組織のディメンション (チーム、部門、コストセンター) を追加できます。タグは、アイデンティティレベルの属性には必要ありません。発信者 ID は常にキャプチャされます。

プリンシパルタイプ

Amazon Bedrock は、任意の IAM プリンシパルタイプからアイデンティティをキャプチャします。最も一般的な 2 つは、IAM ユーザーと IAM ロールです。

IAM ユーザーは、存続期間の長いアクセスキーを使用して Amazon Bedrock を直接呼び出します。IAM ユーザー名とユーザーにアタッチされたタグは AWS Billing に記録されます。

IAM ロールは、 を介してユーザー、アプリケーション、またはフェデレーティッド ID によって引き受けられます AWS STS。プリンシパルが を呼び出すとsts:AssumeRole、結果として得られる一時的な認証情報にロールの ID が割り当てられます。タグは 2 つのソースから取得できます。

  • プリンシパルタグ – IAM ロールに直接アタッチされたタグ。これらは静的であり、すべてのセッションに適用されます。

  • セッションタグ – ロールの引き受け時に渡されるタグ AWS STS。これらは動的であり、セッションごとに異なる可能性があるため、E メール、チーム、コストセンターなどのユーザー固有の属性を共有ロールに渡すのに役立ちます。

重要

セッションタグとプリンシパルタグが同じキーを共有する場合、セッションタグ値はそのセッションのプリンシパルタグ値を上書きします。詳細については、「セッションタグを渡す AWS STS」を参照してください。

ほとんどの組織は、Amazon Bedrock アクセスに IAM ユーザーではなくロールを使用します。複数のユーザーが同じロールを共有する場合、セッションタグは請求でそれらを区別する方法です。

IAM プリンシパル属性の設定

ID レベルの属性 (呼び出し元の IAM ユーザーまたはロール ARN) は、Amazon Bedrock リクエストごとに自動的にキャプチャされます。チームやコストセンターなどの組織ディメンションを請求データに追加するには、次のステップに従ってプリンシパルにタグを付け、 AWS 請求でタグをアクティブ化します。

ステップ 1: IAM プリンシパルにタグを適用する (オプション)

タグは 2 つの方法で請求データに流れます。

プリンシパルタグは IAM ユーザーまたはロールに直接アタッチされます。それらを 1 回設定すると、そのプリンシパルからのすべてのリクエストに適用されます。これは、個々のデベロッパー (IAM ユーザー) またはアプリケーション (IAM ロール) のタグ付けに最適です。プリンシパルタグは、IAM コンソール、 AWS CLI (、aws iam tag-user)aws iam tag-role、または IAM API (TagRole、) を使用して適用できますTagUser

IAM タグ付けとベストプラクティスの詳細については、「IAM リソースのタグ」を参照してください。

セッションタグは、 を介して IAM ロールを引き受けるときに動的に渡されます AWS STS。複数のユーザーまたはテナントに代わってリクエストをプロキシするフェデレーティッドユーザー (Okta、Auth0、Entra などの ID プロバイダーを介した認証) および LLM ゲートウェイに最適です。セッションタグは 3 つの方法で渡すことができます。

  • AssumeRole – 呼び出し--tags時に を渡します sts:AssumeRole (ユーザーまたはテナントごとに Amazon Bedrock ロールを引き受ける LLM ゲートウェイなど)。

  • AssumeRoleWithWebIdentity (OIDC) – ID プロバイダーによって発行された ID トークンのhttps://aws.amazon.com/tagsクレームにタグを埋め込みます。

  • AssumeRoleWithSAML – IdP の SAML アサーションにPrincipalTag:*属性をマッピングします。

IAM ロールの信頼ポリシーsts:TagSessionでは、セッションタグのフロースルーを許可する必要があります。詳細については、「セッションタグを渡す AWS STS」を参照してください。

プリンシパルタグとセッションタグの両方が iamPrincipal/ プレフィックスで CUR 2.0 に表示されます。

ステップ 2: コスト配分タグを有効にする

IAM プリンシパルタグを AWS Cost Explorerーと CUR 2.0 に表示するには、コスト配分タグとしてアクティブ化する必要があります。

  1. Billing AWS and Cost Management コンソールを開きます。

  2. ナビゲーションペインで、[Cost Allocation Tags] (コスト配分タグ) を選択します。

  3. タイプ IAM プリンシパルでフィルタリングして、プリンシパルに適用したタグを見つけます。

  4. タグを選択し、アクティブ化を選択します。

注記

タグは、IAM プリンシパルが少なくとも 1 つの Amazon Bedrock API コールを行った後にのみ AWS Billing に表示されます。コスト配分タグは遡及的ではありません。アクティベーション後に発生したコストのみがタグ付けされます。タグは、アクティベーション後に表示されるまでに最大 24 時間かかる場合があります。

ステップ 3: IAM レベルのデータを使用して CUR 2.0 データエクスポートを作成する

ID レベルのコスト内訳を表示するには、発信者 ID を含む CUR 2.0 データエクスポートを作成します。

  1. Billing AWS and Cost Management コンソールを開きます。

  2. ナビゲーションペインで [データエクスポート] を選択します。

  3. Create を選択して、新しい CUR 2.0 エクスポートを作成します。

  4. エクスポートを設定し、発信者 ID ARN を含めるオプションを選択していることを確認します。

重要

IAM プリンシパル属性を有効にする前に CUR 2.0 データエクスポートを作成した場合は、新しいエクスポートを作成し、発信者 ID オプションを選択する必要があります。既存のエクスポートには、遡及的に ID データは含まれません。また、エクスポートにタグを表示するには、コスト配分タグがアクティブ化されていることを確認する必要があります (ステップ 2)。

詳細については、「 AWS コストと使用状況レポートユーザーガイド」の「レポートの作成」を参照してください。

ディメンションのタグ付け

組織構造を表す任意のタグキーを使用できます。一般的なディメンションは次のとおりです。

タグキー 目的 値の例
User 個々の ID jane@example.com、bob@example.com
Team オーナーシップ PlatformEngineering、DataScience
Department 組織単位 エンジニアリング、研究、マーケティング
CostCenter 財務マッピング CC-1001、CC-2002
Environment ライフサイクルステージ 本番稼働、開発

IAM ユーザーまたはロールごとに最大 50 個のプリンシパルタグまたはセッションタグを適用できます。

フェデレーティッドアクセスタグとセッションタグ

フェデレーティッド ID プロバイダー (AWS IAM Identity Center、Okta、Entra、Ping) を使用している組織の場合、セッションタグを使用すると、IdP から にユーザー属性を渡すことができます AWS。フェデレーティッドユーザーがロールを引き受けると AWS STS、IdP はユーザーの E メール、チーム、コストセンターなどの属性をセッションタグとして渡すことができます。これらのタグは、Amazon Bedrock リクエストとともにキャプチャされ、CUR 2.0 AWS および AWS Cost Explorer に流れます。

これを設定するには:

  1. ユーザー属性 (E メール、チーム、コストセンター) を SAML 属性または OIDC クレームとして含めるように IdP を設定します。

  2. を使用して、これらの属性を IAM ロールの信頼ポリシーの AWS セッションタグにマッピングしますsts:TagSession

  3. その後、セッションタグは、アクティベーション後の AWS 請求でコスト配分タグとして使用できます。

詳細については、「AWS STSでのセッションタグの受け渡し」を参照してください。

呼び出しパターン

IAM プリンシパル属性は、アプリケーションが Amazon Bedrock を呼び出す方法に関係なく機能します。

パターン ID のフロー
直接 API コール 自動的にキャプチャされる IAM ユーザーまたはロール ID
API ゲートウェイ Amazon Bedrock を呼び出すロールの ID がキャプチャされます
LLM Gateway (LiteLLM、カスタム) ゲートウェイの実行ロールの ID がキャプチャされます。ユーザーレベルの属性を維持するために、ゲートウェイからセッションタグを渡します。
フェデレーティッドアイデンティティ (Okta、Entra) IdP からのセッションタグは、ロールの引き受け中にキャプチャされます

LLM ゲートウェイまたは API ゲートウェイを使用していて、 AWS 請求でユーザーレベルの ID が表示されない場合は、ゲートウェイがリクエストごとにセッションタグを渡していることを確認します。

コストの表示

コスト配分タグをアクティブ化した後、以下のツールでプリンシパルごとに Amazon Bedrock のコストを分析できます。

  • AWS Cost Explorer – プリンシパルタグでフィルタリングして、ユーザー、チーム、または部門別のコスト傾向を表示します。タグ別にグループ化して、ディメンション間でコストを比較します。

  • AWS コストと使用状況レポート (CUR 2.0) — プリンシパルタグ別に明細項目のコスト内訳の CUR データをクエリします。

コストデータは、リクエストが行われた後、 AWS Cost Explorer と CUR 2.0 に表示されるまでに最大 24 時間かかる場合があります。

IAM プリンシパル属性を他のメソッドで使用する

IAM プリンシパル属性は、プロジェクトとアプリケーション推論プロファイルと一緒に使用できます。これにより、多次元のコストを可視化できます。

同じアカウント内のアプリケーションレベルの属性にはプロジェクトを使用し、ユーザーレベルの属性には IAM プリンシパル属性を使用することをお勧めします。

方法 による属性 サポートされている API bedrock-runtime bedrock-mantle
IAM プリンシパル属性 ID (ユーザー、ロール、チーム) InvokeModel API / Converse API / Chat Completions API Green circular icon with a white checkmark symbol inside. Red circular icon with an X symbol, indicating cancellation or denial.
プロジェクト (推奨) アプリケーションまたはワークロード Responses API / Chat Completions API
アプリケーション推論プロファイル アプリケーションまたはワークロード InvokeModel API / Converse API / Chat Completions API