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

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.6.14 以前では、デフォルトのインストールに PERMISSIVE モードの MeshPolicy が含まれています。Anthos Service Mesh 1.6.14 では、MeshPolicy. が生成されなくなりました。

  1. 名前空間ベースの PeerAuthentication を使用することをおすすめします。Anthos Service Mesh は [auto mTLS](https://istio.io/v1.6/docs/tasks/security/authentication/authn-policy/#auto-mutual-tls{: class="external"}をサポートしていますが、メッシュレベルまたは名前空間レベルの PeerAuthentication としか機能しません。ワークロード レベルの PeerAuthentication を使用する場合は、対応する DestinationRule を構成する必要があります。
  2. アルファ版では、オリジン認証でリクエストを拒否できるように認証ポリシーを構成できました。新しい RequestAuthentication では、トークンが無効な場合のみリクエストを拒否します。アクセス制御を細かく定義する場合は、AuthorizationPolicy を使用することをおすすめします。
  3. アルファ版の認証ポリシーは Anthos Service Mesh 1.6.14-asm.2 で引き続き機能しますが、アルファ版の認証ポリシーは次のリリースで完全に非推奨となります。できるだけ早く移行を完了することをおすすめします。
  4. 移行中でアルファ版とベータ版の両方のポリシーが混在する場合は、ベータ版ポリシーのみが適用され、アルファ版のポリシーは無視されます。
  5. 詳細については、Istio ドキュメントの認証ポリシーをご覧ください。

次のステップ