VerifyIAM ポリシー

このページの内容は Apigee に適用されます。Apigee ハイブリッドには適用されません。

Apigee Edge のドキュメントはこちらをご覧ください。

概要

VerifyIAM は、OAuthv2 ポリシーと同様に、API アクセスの認証と認可を管理する Google Cloud IAM ベースの方法の一部です。IAM ベースのアクセス制御ソリューションに VerifyIAM を含める方法については、IAM ベースの API 認証の概要をご覧ください。

このポリシーは、標準ポリシーであり、任意の環境タイプにデプロイできます。ポリシータイプと各環境タイプで使用可能かどうかは、ポリシータイプをご覧ください。

要素リファレンス

このリファレンスでは、VerifyIAM ポリシーの要素と属性について説明します。

<VerifyIAM async="false" continueOnError="false" enabled="true" name="MyVerifyIAMPolicy">
    <DisplayName>Custom label used in UI</DisplayName>
    <CredentialSource>flow_variable_name_containing_credential_value</CredentialSource>
</VerifyIAM>

<VerifyIAM> 属性

<VerifyIAM async="false" continueOnError="false" enabled="true" name="MyVerifyIAMPolicy">

次の表に、すべてのポリシーの親要素に共通する属性を示します。

属性 説明 デフォルト 要否
name

ポリシーの内部名。name 属性の値には、英字、数字、スペース、ハイフン、アンダースコア、ピリオドを使用できます。この値は 255 文字を超えることはできません。

管理 UI プロキシ エディタで <DisplayName> 要素を追加して、ポリシーのラベルに使用する別の自然言語名を指定することもできます。

なし 必須
continueOnError

ポリシーが失敗したときにエラーを返す場合は、false に設定します。これは、ほとんどのポリシーで想定される動作です。

ポリシーが失敗した後もフローの実行を続行する場合は、true に設定します。関連項目:

false 省略可
enabled

ポリシーを適用するには、true に設定します。

ポリシーを無効にするには、false に設定します。ポリシーがフローに接続されている場合でも適用されません。

true 省略可
async

この属性は非推奨となりました。

false 非推奨

<DisplayName> 要素

管理 UI プロキシ エディタで name 属性と一緒に使用して、ポリシーのラベルに使用する自然言語名を指定します。

<DisplayName>Policy Display Name</DisplayName>
デフォルト

なし

この要素を省略した場合、ポリシーの name 属性の値が使用されます。

要否 省略可
タイプ 文字列

<CredentialSource> 要素

<CredentialSource>flow_variable_name_containing_credential_value</CredentialSource>

この要素は、認証情報の値を含むフロー変数を指定します。この要素には次の特性があります。

  • 通常、クライアントはクエリ パラメータ、HTTP ヘッダー、またはフォーム パラメータで値を送信します。文字列には、対応するフロー変数を request.queryparam.token の形式で指定する必要があります。
  • 参照から読み取る場合は、直接値が想定されます。たとえば、接頭辞として「Bearer」は使用できません。
  • 省略した場合、ポリシーの実行では、値が認可ヘッダーにあり、標準形式「Bearer xyz」であると想定されます。
デフォルト 該当なし
要否 省略可
フロー変数

例:

<VerifyIAM async="false" continueOnError="false" enabled="true" name="Verify-IAM-Permissions-1">
    <DisplayName>VerifyIAM policy for flow 1</DisplayName>
    <CredentialSource>request.queryparam.token</CredentialSource>
</VerifyIAM>

エラー リファレンス

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因
steps.verifyiam.CredentialSourceRefUnresolved 400 認証情報ソース内で指定されたフロー変数を解決できませんでした。
steps.verifyiam.CredentialValueNotProvided 400 認証情報が見つかりません。認証情報のソース参照が指定されていない場合は、認可ヘッダーなどのデフォルトの場所が参照されます。
steps.verifyiam.Forbidden 403 十分な権限がない、アクセス スコープがない、またはその他の関連する問題があるため、リクエストを転送できませんでした。
steps.verifyiam.MiscellaneousAuthorizationConfigurationError 500 IAM への認証リクエストに関する問題。API プロデューサーは、エラー レスポンスの詳細に基づいてこのエラーを修正する必要があります。
steps.verifyiam.Unauthorized 401 認証情報に関する問題(値が無効である、有効期限が切れているなど)。
steps.verifyiam.UnexpectedAuthorizationInfrastructureError 500 内部エラー。

デプロイエラー

このポリシーは、ポリシー固有のデプロイ エラーを返しません。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。

変数 説明
fault.name="fault_name" fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 fault.name="Unauthorized"
verifyiam.policy_name.failed policy_name は、障害をスローしたポリシーのユーザー指定の名前です。 verifyiam.Verify-IAMToken.failed = true