Flex Gateway新着情報
Governance新着情報
Monitoring API Managerポリシー名 |
Transport Layer Security (TLS) - インバウンド |
概要 |
クライアントと API プロキシ間の認証を有効にする |
カテゴリ |
セキュリティ |
使用可能な最小 Flex Gateway バージョン |
v1.0.0 (インバウンド mTLS: v1.3.0) |
返される状況コード |
このポリシーの戻りコードは存在しません。 |
次のドキュメントは、ローカルモードで実行されている Flex Gateway にのみ適用されます。接続モードで TLS を設定するには、「接続モードでの Flex Gateway の TLS コンテキストの設定」を参照してください。 |
Flex Gateway では、ローカルモードでインバウンド TLS (Transport Layer Security) とインバウンド相互認証 TLS (mTLS) がサポートされます。
ローカルモードでインバウンド TLS を適用するには、「ローカルモードでの Flex Gateway の TLS コンテキストの設定」チュートリアルを使用して、このドキュメントの次の設定ファイルを参照してください。
インバウンド TLS コンテキストを設定してクライアントと API インスタンス間の認証 (HTTPS) を有効にするには、TLS ポリシーを対象の API インスタンスまたは Flex Gateway 内のすべてのインスタンスにバインドすることができます。
Flex Gateway はポートレベルのインバウンド TLS を実装します。つまり、他のインスタンスとポートを共有する API インスタンスにインバウンド TLS を適用すると、ポートを共有するすべてのインスタンスに同じインバウンド TLS コンテキストが適用されます。Flex Gateway は、1 つのゲートウェイで複数の TLS 証明書をサポートしますが、証明書は一意のポートに適用する必要があります。インバウンド TLS を 1 つの API インスタンスに適用する場合、そのポートを共有するインスタンスに同じインバウンド TLS コンテキストを適用する必要はありません。したがって、同じポートを共有する API インスタンスに異なるインバウンド TLS コンテキストを適用することはできません。
ポート共有はアウトバウンド TLS では懸念になりません。アップストリームサービスごとにアウトバウンド TLS コンテキストを適用できます。
TLS ポリシーでは、ポリシー順序はサポートされません。 |
Flex Gateway をランタイムとして使用して API インスタンスを作成するときに HTTPS をスキーマとして使用するには、YAML 設定ファイルで TLS コンテキストを手動で設定する必要があります。
以下のポリシー定義とパラメーターの表を参照してください。
- policyRef: name: tls config: requireClientCertificate: <boolean> // OPTIONAL trustedCA: <string> // OPTIONAL certificate: // REQUIRED key: <string> // REQUIRED crt: <string> // REQUIRED alpn: <array> // OPTIONAL minversion: <string> // OPTIONAL maxversion: <string> // OPTIONAL ciphers: <array> // OPTIONAL
省略可能なパラメーターを設定ファイルに含めない場合、パラメーターのデフォルト値が TLS コンテキストに適用されます。
ciphers
パラメーターを設定する場合、サポートされる暗号化については、「TLS Cipher Support on Flex Gateway (Flex Gateway での TLS 暗号化のサポート)」を参照してください。
パラメーター | 必須または省略可能 | デフォルト値 | 説明 |
---|---|---|---|
|
省略可能 |
false |
インバウンド mTLS の有効化/無効化 |
|
省略可能 ( |
なし |
mTLS で使用するクライアント証明書 |
|
必須 |
なし |
TLS 証明書とキーのペア。セキュリティ標準に準拠するには、すべての証明書が 2048 ビット以上である必要があります。 |
|
必須 |
なし |
証明書の非公開キー部分 |
|
必須 |
なし |
証明書の公開キー部分 |
|
省略可能 |
|
サポートされているアプリケーションレベルプロトコルの優先リスト (h2、http/1.1 など)。 |
|
省略可能 |
|
許容される最小 TLS バージョン |
|
省略可能 |
|
許容される最大 TLS バージョン |
|
省略可能 |
デフォルトおよび他のサポートされる暗号化については、「TLS Cipher Support on Flex Gateway (Flex Gateway での TLS 暗号化のサポート)」を参照してください。 |
サポートされる TLS 暗号化のリスト (IANA 形式)。サポートされる暗号化については、「TLS Cipher Support on Flex Gateway (Flex Gateway での TLS 暗号化のサポート)」を参照してください。 |
YAML ファイルを書式設定して、Flex Gateway で実行されている特定の API インスタンスまたはすべての API インスタンスに対して TLS または mTLS を設定できます。
この Flex Gateway で実行されているすべての API インスタンスのインバウンド TLS コンテキストを追加するためのサンプル設定:
apiVersion: gateway.mulesoft.com/v1alpha1
kind: PolicyBinding
metadata:
name: ingress-https-tls
spec:
targetRef:
kind: Selector
selector:
kind: ApiInstance
policyRef:
name: tls
config:
certificate:
key: |
# -----BEGIN PRIVATE KEY-----
# insert certificate key
# -----END PRIVATE KEY-----
crt: |
# -----BEGIN CERTIFICATE-----
# insert certificate
# -----END CERTIFICATE-----
alpn:
- http/1.1
- h2
minversion: "1.1"
maxversion: "1.3"
ciphers:
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_256_CBC_SHA
特定の API インスタンスのインバウンド TLS コンテキストを追加するためのサンプル設定:
apiVersion: gateway.mulesoft.com/v1alpha1
kind: PolicyBinding
metadata:
name: ingress-https-tls
spec:
targetRef:
kind: ApiInstance
name: ingress-https
policyRef:
name: tls
config:
certificate:
key: |
# -----BEGIN PRIVATE KEY-----
# insert certificate key
# -----END PRIVATE KEY-----
crt: |
# -----BEGIN CERTIFICATE-----
# insert certificate
# -----END CERTIFICATE-----
alpn:
- http/1.1
- h2
minversion: "1.1"
maxversion: "1.3"
ciphers:
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_256_CBC_SHA
特定の API インスタンスのインバウンド mTLS コンテキストを追加するためのサンプル設定:
apiVersion: gateway.mulesoft.com/v1alpha1
kind: PolicyBinding
metadata:
name: mtls
spec:
targetRef:
name: ingress-https
policyRef:
name: tls
config:
requireClientCertificate: true
trustedCA: |
# -----BEGIN CERTIFICATE-----
# insert certificate
# -----END CERTIFICATE-----
certificate:
key: |
# -----BEGIN RSA PRIVATE KEY-----
# insert private key
# -----END RSA PRIVATE KEY-----
crt: |
# -----BEGIN CERTIFICATE-----
# insert certificate
# -----END CERTIFICATE-----
この例では、alpn
、minversion
、maxversion
、ciphers
のデフォルト値を使用します。
Flex は、TLS 1.1 ~ TLS 1.3 の範囲の TLS バージョンをサポートでき、サポートする暗号化の一部をカスタマイズすることもできます。
TLS 1.3 暗号化のリストをカスタマイズすることはできません。TLS 1.3 をサポートする場合、設定ファイルにリストされている暗号化に関係なく、TLS 1.3 のデフォルトの暗号化がすべてサポートされます。TLS 1.3 をサポートしない場合、これらの暗号化は含まれません。
TLS 1.2 の場合、暗号化をリストすると、TLS 1.2 のデフォルトの暗号化が上書きされます。デフォルトの TLS 1.2 暗号化以外の暗号化をリストする場合は、サポートするデフォルトの暗号化を含め、サポートするすべての暗号化をリストする必要があります。サポートされる暗号化のリストからデフォルトの暗号化を除外すると、それらの暗号化はサポートされなくなります。デフォルトの暗号化のみをサポートする場合は、暗号化リストを空白のままにします。暗号化をリストしても、デフォルトの TLS 1.3 暗号化には影響しません。
TLS 1.1 にはデフォルトの暗号化がありません。TLS 1.1 をサポートするには、サポートする暗号化をリストする必要があります。TLS 1.1 および TLS 1.2 をサポートする場合、TLS 1.1 暗号をリストすると、TLS 1.2 のデフォルトが上書きされます。これらのバージョンの両方をサポートするには、サポートするすべての暗号化をリストします。
Flex Gateway では、接続モードとローカルモードで次の TLS 暗号化がサポートされます。
暗号化 | TLS バージョン | デフォルト | アドバイス |
---|---|---|---|
TLS_AES_128_GCM_SHA256 |
1.3 |
はい |
セキュア |
TLS_AES_256_GCM_SHA384 |
1.3 |
はい |
セキュア |
TLS_CHACHA20_POLY1305_SHA256 |
1.3 |
はい |
セキュア |
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 |
1.2 |
はい |
推奨 |
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 |
1.2 |
はい |
推奨 |
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 |
1.2 |
はい |
推奨 |
TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 |
1.2 |
いいえ |
推奨 |
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
1.2 |
はい |
セキュア |
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
1.2 |
はい |
セキュア |
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 |
1.2 |
はい |
セキュア |
TLS_RSA_WITH_AES_128_GCM_SHA256 |
1.2 |
いいえ |
脆弱 |
TLS_RSA_WITH_AES_256_GCM_SHA384 |
1.2 |
いいえ |
脆弱 |
TLS_RSA_WITH_NULL_SHA |
1.1、1.2 |
いいえ |
非セキュア |
TLS_RSA_WITH_AES_128_CBC_SHA |
1.1、1.2 |
いいえ |
脆弱 |
TLS_RSA_WITH_AES_256_CBC_SHA |
1.1、1.2 |
いいえ |
脆弱 |
TLS_PSK_WITH_AES_128_CBC_SHA |
1.1、1.2 |
いいえ |
脆弱 |
TLS_PSK_WITH_AES_256_CBC_SHA |
1.1、1.2 |
いいえ |
脆弱 |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA |
1.1、1.2 |
いいえ |
脆弱 |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA |
1.1、1.2 |
いいえ |
脆弱 |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA |
1.1、1.2 |
いいえ |
脆弱 |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA |
1.1、1.2 |
いいえ |
脆弱 |
TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA |
1.1、1.2 |
いいえ |
脆弱 |
TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA |
1.1、1.2 |
いいえ |
脆弱 |
TLS_RSA_WITH_3DES_EDE_CBC_SHA |
1.1 |
いいえ |
脆弱 |