Dapr
v1.17.19Orchestration & Managementアクセス制御、認証、分離、サービス拒否、データ整合性に関するセキュリティ修正を含むメンテナンスリリースです。公開ポートでのメタデータ書き込みとgRPCメタデータサイズの扱いに変更があります。
要対応 (2)
securityジョブターゲットのキー接頭辞を修正
Schedulerはジョブターゲットのキー接頭辞を常に区切り文字で終わらせます。
id_prefix_matchは、APIの仕様どおりアクターリマインダーIDにだけ適用されます。securitySentryのホスト値解析を修正
Sentryはホスト値を1回だけ解析します。対象は
X-Forwarded-Host、またはHostヘッダーです。
影響確認 (9)
securitymediumエスケープ済みヘルスチェックパスのAPIトークン検証
パーセントエンコードされたヘルスチェックパスを使う場合に適用されます。
DAPR_API_TOKENのミドルウェアは、ルーターが照合するものと同じエスケープ済みパスを比較します。パーセントエンコードされたヘルスチェックパスにもAPIトークンが必要になります。securityHTTPサービス呼び出しのアクセス制御判定を修正
HTTPアプリを実行している場合に適用されます。
HTTPアプリのアクセス制御で、アプリへのルートが使うメソッドに合わせてポリシーを照合します。パーセントエンコードされた文字は1回だけデコードしてから小文字化します。
security
WatchJobsの内部アクター型を検証呼び出し元のアプリと名前空間に属さない内部アクター型(
dapr.)でinternal. * WatchJobsを使う場合に適用されます。Schedulerは、呼び出し元のアプリと名前空間に属さない内部アクター型(
dapr.)を指定したinternal. * WatchJobsストリームをPermissionDeniedで拒否します。security内部ポートのgRPCプロキシが対象アプリを制限
内部ポートを使う場合に適用されます。
内部ポートのgRPCプロキシはローカルアプリ宛ての呼び出しだけを受け付け、それ以外のターゲットには
PermissionDeniedを返します。security公開ポートのエンドポイントを読み取り専用に変更
--dapr-public-portを設定する場合に適用されます。--dapr-public-portでは読み取り専用のGETエンドポイントだけを提供します。対象はGET /v1.、0/metadata GET /v1.、0/healthz GET /v1.です。0/healthz/outbound PUT /v1.はメインAPIポートで引き続き利用できます。0/metadata/{key} security
primaryEncryptionKeyの書き込み接尾辞を修正primaryEncryptionKeyを設定する場合に適用されます。primaryEncryptionKeyで書き込む値に、Daprが書き込み時に付加する||<key name>の接尾辞が含まれるようになりました。security短い暗号文の状態取得処理を修正
GetStateまたはGetBulkStateを使う場合に適用されます。ノンスより短い暗号文を処理してもパニックしないようになりました。gRPC APIの
GetStateとGetBulkStateではサイドカーがクラッシュせず、HTTP APIではリクエストが失敗します。securityアウトボックスIDの検証を修正
トランザクショナルアウトボックスを使う場合に適用されます。
トランザクショナルアウトボックスでは、任意の
idではなく、Daprが作成するアウトボックスマーカーキー(outbox-<uuid>)だけを受け付けます。securitygRPCメタデータの最大サイズを制限
gRPC APIを使う場合に適用されます。
gRPC APIへの呼び出しは、メタデータが64 KiB、またはそれより大きい
--read-buffer-sizeを超える場合に、gRPCのInternalエラー("header list size ... violates the maximum size")で失敗します。gRPCプロキシ経由の呼び出しも対象です。
対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチも、その一例です。