適用対象: 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 を使ってローカル メトリックの収集を有効にします。 値は、以下のオプションの いずれかです。none、statsd。 |
いいえ | none |
v2.0 以降 |
| telemetry.metrics.local.statsd.endpoint | StatsD エンドポイント。 |
telemetry.metrics.local を statsd に設定した場合は "はい"。それ以外の場合は "いいえ"。 |
該当なし | v2.0 以降 |
| telemetry.metrics.local.statsd.sampling | StatsD メトリックのサンプリング レート。 値は 0 から 1 にする必要があります (たとえば 0.5)。 | いいえ | 該当なし | v2.0 以降 |
| telemetry.metrics.local.statsd.tag-format | StatsD エクスポーターのタグ付け形式。 値は、以下のオプションの いずれかです。librato、dogStatsD、influxDB。 |
いいえ | 該当なし | 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.enabled を true に設定した場合は "はい"。それ以外の場合は "いいえ"。 |
該当なし | 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 | 標準ストリームへのログ記録を有効にします。 値は、以下のオプションの いずれかです。none、text、json。 |
いいえ | text |
v2.0 以降 |
| telemetry.logs.std.level | 標準ストリームに送信されるログのログレベルを定義します。 価値は以下の選択肢のいずれかです: all、 debug、 info、 warn、 error、または fatal。 |
いいえ | info |
v2.0 以降 |
| telemetry.logs.std.color | 標準ストリームで色付きログを使用するかどうかの指示。 | いいえ | true |
v2.0 以降 |
| telemetry.logs.local |
ローカルのログ記録を有効にします。 値は、以下のオプションの いずれかです。none、auto、localsyslog、 rfc5424、 journal、 json |
いいえ | auto |
v2.0 以降 |
| telemetry.logs.local.localsyslog.endpoint | localsyslog エンドポイント。 |
telemetry.logs.local を localsyslog に設定した場合は "はい"。それ以外の場合は "いいえ"。 構成の詳細については、 ローカル syslog のドキュメント を参照してください。 |
該当なし | v2.0 以降 |
| telemetry.logs.local.localsyslog.facility | localsyslog ファシリティ コードを指定します (たとえば 7)。 |
いいえ | 該当なし | v2.0 以降 |
| telemetry.logs.local.rfc5424.endpoint | rfc5424 エンドポイント。 |
telemetry.logs.local を rfc5424 に設定した場合は "はい"。それ以外の場合は "いいえ"。 |
該当なし | v2.0 以降 |
| telemetry.logs.local.rfc5424.facility |
rfc5424 によるファシリティ コード (たとえば 7) |
いいえ | 該当なし | v2.0 以降 |
| telemetry.logs.local.journal.endpoint | ジャーナル エンドポイント。 |
telemetry.logs.local を journal に設定した場合は "はい"。それ以外の場合は "いいえ"。 |
該当なし | v2.0 以降 |
| .endpoint の telemetry.logs.local.json | JSON データを受け付ける UDP エンドポイント。ファイル パス、 |
telemetry.logs.local を json に設定した場合は "はい"。それ以外の場合は "いいえ"。 |
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