リファレンス: セルフホステッド ゲートウェイ コンテナーの構成設定

適用対象: Developer | Premium

この記事では、API Management セルフホステッド ゲートウェイ コンテナーを構成するために使われる必要な設定と省略可能な設定のリファレンスを提供します。

詳細については、 本番環境でKubernetes上でセルフホストゲートウェイを運用するためのガイダンスをご覧ください。

重要

このリファレンスは、セルフホステッド ゲートウェイ v2 にのみ適用されます。 この参考文献は、各設定をサポートする最小バージョンを示しています。

構成 API の統合

セルフホスト型ゲートウェイはConfiguration APIを使ってAzure API Managementに接続し、最新の設定を取得し、有効時にメトリクスを送信します。

以下の表は、Configuration API統合のための設定オプションを示しています。

名前 説明 必要 既定値 可用性
gateway.name セルフホステッド ゲートウェイ リソースの ID。 はい (Microsoft Entra 認証を使用する場合) 該当なし v2.3 以降
config.service.endpoint セルフホステッド ゲートウェイの Azure API Management の構成エンドポイント。 この値は、Azure portal の [ゲートウェイ]>[デプロイ] の下にあります。 はい 該当なし v2.0 以降
config.service.auth セルフホストゲートウェイがConfiguration APIにどのように認証するかを定義します。 現在、ゲートウェイはゲートウェイトークンおよびMicrosoft Entra認証をサポートしています。 はい 該当なし v2.0 以降
config.service.auth.azureAd.tenantId Microsoft Entra テナントの ID。 はい (Microsoft Entra 認証を使用する場合) 該当なし v2.3 以降
config.service.auth.azureAd.clientId 認証に使用する Microsoft Entra アプリのクライアント ID (アプリケーション ID とも呼ばれます)。 はい (Microsoft Entra 認証を使用する場合) 該当なし v2.3 以降
config.service.auth.azureAd.clientSecret 認証に使用する Microsoft Entra アプリのシークレット。 はい、Microsoft Entra認証を使う場合(証明書を指定しない限り) 該当なし v2.3 以降
config.service.auth.azureAd.certificatePath Microsoft Entra アプリでの認証に使用する証明書へのパス。 はい、Microsoft Entra認証を使う場合(秘密指定をしていない限り) 該当なし v2.3 以降
config.service.auth.azureAd.authority Microsoft Entra ID の機関 URL。 いいえ https://login.microsoftonline.com v2.3 以降
config.service.auth.tokenAudience Microsoft Entra認証のためのトークンのオーディエンス。 いいえ https://azure-api.net/configuration v2.3 以降
config.service.endpoint.disableCertificateValidation セルフホストゲートウェイが設定APIのサーバー側証明書を検証するかどうかを定義します。 本番環境で証明書検証を活用しましょう。 テスト時のみ無効にし、セキュリティリスクを生む可能性があるため注意してください。 いいえ false v2.0 以降
config.service.integration.timeout 構成 API と対話するためのタイムアウトを定義します。 いいえ 00:01:40 v2.3.5 以降

セルフホスト型ゲートウェイは、Configuration APIと統合するための複数の認証オプションをサポートしています。 これらの選択肢は config.service.authを使って定義してください。

認証方法を定義するには、以下の情報を提供します。

  • ゲートウェイ トークンベースの認証の場合は、セルフホステッド ゲートウェイのアクセス トークン (認証キー) を Azure portal の [ゲートウェイ]>[デプロイ] で指定します。
  • Microsoft Entra ID ベースの認証の場合は、azureAdApp を指定して、追加の config.service.auth.azureAd 認証設定を指定します。

クロスインスタンスの発見と同期

名前 説明 必要 既定値 可用性
neighborhood.host インスタンス間同期のために、セルフホステッド ゲートウェイデプロイのすべてのインスタンスを解決するために使用される DNS 名。 Kubernetesでは、インスタンスを解決するためにヘッドレスサービスを使用します。 いいえ 該当なし v2.0 以降
neighborhood.heartbeat.port 他のインスタンスにハートビートを送信するために、セルフホステッド ゲートウェイデプロイのインスタンスに使用される UDP ポート。 いいえ 4291 v2.0 以降
policy.rate-limit.sync.port 複数のインスタンス間でレート制限を同期するために、セルフホステッド ゲートウェイ インスタンスに使用される UDP ポート。 いいえ 4290 v2.0 以降

HTTP

名前 説明 必要 既定値 可用性
net.server.http.forwarded.proto.enabled X-Forwarded-Protoヘッダーを尊重し、呼び出したAPIルートを解決する方法を識別します(http/httpsのみ)。 いいえ false v2.5 以降

Kubernetes の統合

Kubernetes Ingress (preview)

重要

Kubernetes Ingressのサポートはまだ実験段階で、Azureサポートはカバーしていません。 詳細はKubernetes IngressのGitHubリポジトリをご覧ください。

名前 説明 必要 既定値 可用性
k8s.ingress.enabled Kubernetes イングレス統合を有効にします。 いいえ false v2.0 以降
k8s.ingress.namespace Kubernetes イングレス リソースを監視する Kubernetes 名前空間。 いいえ default v2.0 以降
k8s.ingress.dns.suffix 要求の送信先であるサービスの DNS ホスト名を構築する DNS サフィックス。 いいえ svc.cluster.local v2.4 以降
.path の k8s.ingress.config Kubernetes 構成 (Kubeconfig) のパス。 いいえ 該当なし v2.4 以降

メトリック

名前 説明 必要 既定値 可用性
telemetry.metrics.local StatsD を使ってローカル メトリックの収集を有効にします。 値は、以下のオプションの いずれかです。nonestatsd いいえ none v2.0 以降
telemetry.metrics.local.statsd.endpoint StatsD エンドポイント。 telemetry.metrics.localstatsd に設定した場合は "はい"。それ以外の場合は "いいえ"。 該当なし v2.0 以降
telemetry.metrics.local.statsd.sampling StatsD メトリックのサンプリング レート。 値は 0 から 1 にする必要があります (たとえば 0.5)。 いいえ 該当なし v2.0 以降
telemetry.metrics.local.statsd.tag-format StatsD エクスポーターのタグ付け形式。 値は、以下のオプションの いずれかです。libratodogStatsDinfluxDB いいえ 該当なし v2.0 以降
telemetry.metrics.cloud Azure Monitorにメトリクスを発するかどうかを示す。 いいえ true v2.0 以降
observability.opentelemetry.enabled Kubernetes上の OpenTelemetryコレクタへのメトリムのエミット を有効化するかどうかの指示。 いいえ false v2.0 以降
observability.opentelemetry.collector.uri メトリックの送信先 OpenTelemetry コレクターの URI。 observability.opentelemetry.enabledtrue に設定した場合は "はい"。それ以外の場合は "いいえ"。 該当なし v2.0 以降
observability.opentelemetry.system-metrics.enabled CPU、メモリ、ガベージコレクションなどのシステムメトリクスを送信してOpenTelemetryコレクタに送信できるようにします。 いいえ false v2.3 以降
observability.opentelemetry.histogram.buckets OpenTelemetryの指標を報告するためのヒストグラムバケット。 形式: "x,y,z,..."。 いいえ "5,10,25,50,100,250,500,1000,2500,5000,10000" v2.0 以降

ログ

名前 説明 必要 既定値 可用性
telemetry.logs.std 標準ストリームへのログ記録を有効にします。 値は、以下のオプションの いずれかです。nonetextjson いいえ text v2.0 以降
telemetry.logs.std.level 標準ストリームに送信されるログのログレベルを定義します。 価値は以下の選択肢のいずれかです: alldebuginfowarnerror、または fatal いいえ info v2.0 以降
telemetry.logs.std.color 標準ストリームで色付きログを使用するかどうかの指示。 いいえ true v2.0 以降
telemetry.logs.local ローカルのログ記録を有効にします。 値は、以下のオプションの いずれかです。noneautolocalsyslogrfc5424journaljson いいえ auto v2.0 以降
telemetry.logs.local.localsyslog.endpoint localsyslog エンドポイント。 telemetry.logs.locallocalsyslog に設定した場合は "はい"。それ以外の場合は "いいえ"。 構成の詳細については、 ローカル syslog のドキュメント を参照してください。 該当なし v2.0 以降
telemetry.logs.local.localsyslog.facility localsyslog ファシリティ コードを指定します (たとえば 7)。 いいえ 該当なし v2.0 以降
telemetry.logs.local.rfc5424.endpoint rfc5424 エンドポイント。 telemetry.logs.localrfc5424 に設定した場合は "はい"。それ以外の場合は "いいえ"。 該当なし v2.0 以降
telemetry.logs.local.rfc5424.facility rfc5424 によるファシリティ コード (たとえば 7) いいえ 該当なし v2.0 以降
telemetry.logs.local.journal.endpoint ジャーナル エンドポイント。 telemetry.logs.localjournal に設定した場合は "はい"。それ以外の場合は "いいえ"。 該当なし v2.0 以降
.endpoint の telemetry.logs.local.json JSON データを受け付ける UDP エンドポイント。ファイル パス、:<ポート>、<ホスト名>:<ポート> のいずれかの形式で指定します。 telemetry.logs.localjson に設定した場合は "はい"。それ以外の場合は "いいえ"。 127.0.0.1:8888 v2.0 以降

セキュリティ

証明書と暗号

名前 説明 必要 既定値 可用性
certificates.local.ca.enabled セルフホストゲートウェイがマウントされたローカルCA証明書を使用するべきかどうかを示します。 セルフホステッド ゲートウェイを、ルートとして、またはユーザー ID 1001 を使って実行する必要があります。 いいえ false v2.0 以降
net.server.tls.ciphers.allowed-suites APIクライアントとセルフホストゲートウェイ間のTLS接続に使用される暗号のカンマ区切りリスト。 いいえ TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA v2.0 以降
net.client.tls.ciphers.allowed-suites セルフホステッド ゲートウェイとバックエンド間の TLS 接続に使う暗号のコンマ区切りの一覧。 いいえ TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA v2.0 以降
security.certificate-revocation.validation.enabled 証明書取り消しリストの検証をオン・オフに切り替えます。 いいえ false v2.3.6 以降

TLS

名前 説明 必要 既定値 可用性
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 ゲートウェイがTLS 1.3をバックエンドに許可しているかどうかを示します。 マネージド ゲートウェイでのプロトコル暗号の管理 に似ています いいえ true v2.0 以降
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 ゲートウェイがTLS 1.2をバックエンドに許可しているかどうかを示します。 マネージド ゲートウェイでのプロトコル暗号の管理 に似ています いいえ true v2.0 以降
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 ゲートウェイがバックエンドにTLS 1.1を許可しているかどうかを示します。 マネージド ゲートウェイでのプロトコル暗号の管理 に似ています いいえ false v2.0 以降
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 ゲートウェイがバックエンドへのTLS 1.0を許可しているかどうかを示します。 マネージド ゲートウェイでのプロトコル暗号の管理 に似ています いいえ false v2.0 以降
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 ゲートウェイがバックエンドにSSL 3.0を許可しているかどうかを示します。 マネージド ゲートウェイでのプロトコル暗号の管理 に似ています いいえ false v2.0 以降

ソブリン クラウド

以下の表は、ソブリンクラウドで動作するために設定しなければならない設定を示しています。

名前 公開 Azure China 米国政府
config.service.auth.tokenAudience https://azure-api.net/configuration (既定値) https://azure-api.cn/configuration https://azure-api.us/configuration
logs.applicationinsights.endpoint https://dc.services.visualstudio.com/v2/track (既定値) https://dc.applicationinsights.azure.cn/v2/track https://dc.applicationinsights.us/v2/track

設定の構成方法

Kubernetes YAML ファイル

YAMLファイルを使って自己ホストゲートウェイをKubernetesに展開する際は、ゲートウェイのConfigMapのdata要素で設定を名前と値のペアとして設定してください。 次に例を示します。

apiVersion: v1
    kind: ConfigMap
    metadata:
        name: contoso-gateway-environment
    data:
        config.service.endpoint: "contoso.configuration.azure-api.net"
        telemetry.logs.std: "text"
        telemetry.logs.local.localsyslog.endpoint: "/dev/log"
        telemetry.logs.local.localsyslog.facility: "7"

[...]

Helm チャート

Helmを使ってセルフホストゲートウェイをKubernetesにデプロイする際は、チャートの設定設定をパラメータとしてhelm installコマンドに渡してください。 次に例を示します。

helm install azure-api-management-gateway \
    --set gateway.configuration.uri='contoso.configuration.azure-api.net' \
    --set gateway.auth.key='GatewayKey contosogw&xxxxxxxxxxxxxx...' \
    --set secret.createSecret=false \
    --set secret.existingSecretName='mysecret' \
    azure-apim-gateway/azure-api-management-gateway