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