ベータ版セキュリティ ポリシーへのアップグレード

2 つのベータ版 Security API(PeerAuthenticationRequestAuthentication)が Anthos Service Mesh 1.5 で導入されました。アルファ版の認証ポリシーは非推奨になりました。このページでは、アルファ版の認証ポリシーをベータ版のセキュリティ ポリシーに更新する方法について説明します。

サービス選択ポリシーをワークロード セレクタに変更する

ベータ版のセキュリティ ポリシーでは、サービスベースはなく、ワークロード セレクタまたは名前空間ベースの構成モデルを使用する必要があります。

RequestAuthentication への更新

次の例は、アルファ版の Policy から RequestAuthentication に更新する方法を示します。

# Alpha policy for authentication to enable Origin Authentication for service foo.
apiVersion: "authentication.istio.io/v1alpha1"
kind: "Policy"
metadata:
  name: "jwt-example"
spec:
  targets:
  - name: httpbin
  origins:
  - jwt:
      issuer: "testing@secure.istio.io"
      jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.5/security/tools/jwt/samples/jwks.json"

対応するベータ版 RequestAuthentication リソースに更新します。

apiVersion: "security.istio.io/v1beta1"
kind: "RequestAuthentication"
metadata:
  name: "jwt-example"
spec:
  selector:
    matchLabels:
      app: httpbin
  jwtRules:
  - issuer: "testing@secure.istio.io"
    jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.5/security/tools/jwt/samples/jwks.json"

PeerAuthentication への更新

相互 TLS(mTLS)の認証ポリシーも更新する必要があります。アルファ版の MeshPolicy は、メッシュ全体で PERMISSIVE または STRICT mTLS を有効にしました。ベータ版の PeerAuthentication リソースは、アルファ版の MeshPolicy に代わるものです。たとえば、次のような MeshPolicy があるとします。

apiVersion: "authentication.istio.io/v1alpha1"
kind: "MeshPolicy"
metadata:
  name: "default"
  labels:
    release: istio
spec:
  peers:
  - mtls:
      mode: PERMISSIVE

これをルート名前空間の PeerAuthentication リソースで更新します。

apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
  name: "default"
  namespace: "istio-system"
spec:
  mtls:
    mode: PERMISSIVE

Anthos Service Mesh 1.5 以前では、デフォルトのインストールに PERMISSIVE モードの MeshPolicy が含まれています。Anthos Service Mesh 1.5 以降では、MeshPolicy. は生成されません。

  1. 名前空間ベースの PeerAuthentication を使用することをおすすめします。Anthos Service Mesh は自動 mTLS をサポートしていますが、メッシュレベルまたは名前空間レベルの PeerAuthentication でしか機能しません。ワークロード レベルの PeerAuthentication を使用する場合は、対応する DestinationRule を構成する必要があります。
  2. アルファ版では、オリジン認証でリクエストを拒否できるように認証ポリシーを構成できました。新しい RequestAuthentication では、トークンが無効な場合のみリクエストを拒否します。アクセス制御を細かく定義する場合は、AuthorizationPolicy を使用することをおすすめします。
  3. アルファ版の認証ポリシーは Anthos Service Mesh 1.5.x で引き続き機能しますが、アルファ版の認証ポリシーは次のリリースで完全に非推奨となります。できるだけ早く移行を完了することをおすすめします。
  4. 移行中でアルファ版とベータ版の両方のポリシーが混在する場合は、ベータ版ポリシーのみが適用され、アルファ版のポリシーは無視されます。
  5. 詳細については、Istio ドキュメントの認証ポリシーをご覧ください。

次のステップ