認可ポリシーの条件
このページでは、認可ポリシールールのwhen
フィールドで条件として使用できる、サポートされているキーと値の形式について説明します。
詳細については、認可の概念に関するページを参照してください。
サポートされている条件
名前 | 説明 | サポートされているプロトコル | 例 |
---|---|---|---|
request.headers | HTTPリクエストヘッダー。ヘッダー名は、引用符なしで[] で囲まれています。 | HTTPのみ | key: request.headers[User-Agent] values: ["Mozilla/*"] |
source.ip | ソースワークロードインスタンスのIPアドレス。単一のIPまたはCIDRをサポートします。 | HTTPおよびTCP | key: source.ip values: ["10.1.2.3", "10.2.0.0/16"] |
remote.ip | X-Forwarded-ForヘッダーまたはProxy Protocolによって決定された元のクライアントIPアドレス。単一のIPまたはCIDRをサポートします。 | HTTPおよびTCP | key: remote.ip values: ["10.1.2.3", "10.2.0.0/16"] |
source.namespace | ソースワークロードインスタンスの名前空間。相互 TLS が有効になっている必要があります。 | HTTPおよびTCP | キー: source.namespace 値: ["default"] |
source.principal | ソースワークロードのID。相互 TLS が有効になっている必要があります。 | HTTPおよびTCP | キー: source.principal 値: ["cluster.local/ns/default/sa/productpage"] |
request.auth.principal | 認証済み JWT トークンのプリンシパル。JWT クレームから <iss>/<sub> の形式で構築されます。リクエスト認証ポリシーが適用されている必要があります。 | HTTPのみ | キー: request.auth.principal 値: ["issuer.example.com/subject-admin"] |
request.auth.audiences | 認証済み JWT トークンの対象オーディエンス。JWT クレーム <aud> から構築されます。リクエスト認証ポリシーが適用されている必要があります。 | HTTPのみ | キー: request.auth.audiences 値: ["example.com"] |
request.auth.presenter | 認証済み JWT トークンの認可されたプレゼンター。JWT クレーム <azp> から構築されます。リクエスト認証ポリシーが適用されている必要があります。 | HTTPのみ | キー: request.auth.presenter 値: ["123456789012.example.com"] |
request.auth.claims | 認証済み JWT トークンの生のクレーム。クレーム名は引用符なしで [] で囲まれ、ネストされたクレームも使用できます。リクエスト認証ポリシーが適用されている必要があります。文字列または文字列のリスト型のクレームのみをサポートします。 | HTTPのみ | キー: request.auth.claims[iss] 値: ["*@foo.com"] — キー: request.auth.claims[nested1][nested2] 値: ["some-value"] |
destination.ip | 宛先ワークロードインスタンスのIPアドレス。単一のIPまたはCIDRをサポートします。 | HTTPおよびTCP | キー: destination.ip values: ["10.1.2.3", "10.2.0.0/16"] |
destination.port | 宛先ワークロードインスタンスのポート。範囲は [0, 65535] でなければなりません。これはサービスポートではないことに注意してください。 | HTTPおよびTCP | キー: destination.port 値: ["80", "443"] |
connection.sni | サーバー名表示。TLS が有効になっている必要があります。 | HTTPおよびTCP | キー: connection.sni 値: ["www.example.com"] |
experimental.envoy.filters.* | フィルターの実験的なメタデータマッチング。[] で囲まれた値はリストとしてマッチングされます。 | HTTPおよびTCP | キー: experimental.envoy.filters.network.mysql_proxy[db.table] 値: ["[update]"] |