2026年5月4日に公開または更新された情報として確認したいポイントは、「Azure REST API全体の一括変更」ではなく、Azure REST APIのうち Microsoft.Cache / Redis Enterprise の Access Policy Assignments に 2026-05-01-preview API version が追加される仕様更新です。
結論から言うと、Redis Enterprise のアクセス制御を REST API、ARM テンプレート、Bicep、Terraform AzAPI、または生成SDKで管理しているチームは、accessPolicyName 中心の従来設定から、accessString による Redis ACL 権限指定へ移行できる可能性があります。一方で、2026年5月6日時点では該当PRはまだ Open で、レビュー上の変更依頼も出ているため、本番環境へ急いで反映するのではなく、正式な Microsoft Learn 反映・API仕様・SDK対応状況を確認してから進めるべきです。(GitHub)
Azure REST APIの今回の更新は何が対象なのか
今回の「Add 2026-05-01-preview API version – custom access strings for Access Policy Assignments」は、Azure Resource Manager、つまり ARM のコントロールプレーン API 仕様に関する更新です。PRのチェックリストでも、データプレーンではなく ARM 関連仕様の変更であることが示されています。(GitHub)
対象になるリソースは、主に次の Redis Enterprise の子リソースです。
Microsoft.Cache/redisEnterprise/databases/accessPolicyAssignments
ここで注意したいのは、「Access Policy Assignments」という名前だけを見て Azure Policy のポリシー割り当てと混同しないことです。今回の対象は、Azure Policy ではなく、Redis Enterprise データベースに対するアクセス ポリシー割り当てです。現行の Microsoft Learn でも、Redis Enterprise の Access Policy Assignment は accessPolicyName と user.objectId を持つリソースとして説明されています。(Microsoft Learn)
変更点の要約
このPRの目的は、既存のリソースプロバイダーである Microsoft.Cache に対して、新しいプレビュー API バージョン 2026-05-01-preview を追加することです。変更の中心は、Access Policy Assignments で Redis ACL の権限文字列を直接指定できる accessString の追加です。PRでは、accessString は任意項目で、未指定時は +@all ~* が既定値になると説明されています。(GitHub)
| 確認項目 | 従来の考え方 | 2026-05-01-preview での方向性 | 実務上の確認ポイント |
|---|---|---|---|
| API version | 2026-02-01-preview などを使用 | 2026-05-01-preview が追加される | すぐ本番採用せず、正式反映とリージョン対応を確認する |
accessPolicyName | default のみを前提にする形 | 必須ではなくなり、非推奨方向 | 古いSDKやIaCでは必須扱いの可能性がある |
accessString | 既存の公式テンプレート定義にはない | Redis ACL 権限文字列を指定可能 | +@all ~* を安易に使わず、最小権限で設計する |
provisioningError | 失敗理由を構造化して持たない | code、message、target を持つ失敗情報が追加される想定 | provisioningState: Failed の監視と通知に使う |
| 互換性 | accessPolicyName: default が前提 | 互換性のため default は引き続き受け付ける想定 | 既存テンプレートを一括削除・一括置換しない |
PRの例では、accessString を指定しない作成更新時に +@all ~* が応答へ含まれるケースと、+@read ~cache:* のようなカスタム access string を指定するケースが追加されています。(GitHub)
accessStringとは何か
accessString は、Redis ACL の権限文字列を Access Policy Assignment に持たせるためのプロパティです。たとえば、+@all ~* はすべてのキーに対する全コマンド許可を意味する広い権限で、+@read ~* は読み取り系コマンドに限定する権限として説明されています。Redis側のACLドキュメントでも、+@all ~* は全コマンド・全キー、+@read ~* は read カテゴリのみの例として扱われています。(Redis)
実務では、次のように権限を分けて考えると安全です。
| 利用シーン | accessStringの例 | 判断基準 |
|---|---|---|
| 検証環境で動作確認したい | +@all ~* | 検証用に限定し、本番では原則避ける |
| キャッシュ参照だけを行うアプリ | +@read ~cache:* | 読み取り専用かつキー接頭辞を限定する |
| 特定プレフィックスのみ操作するアプリ | +@read +set ~app:* など | 実行コマンドと対象キーを両方絞る |
| 管理用ジョブ | 必要なコマンドだけを明示 | +@all より、ジョブに必要なコマンド単位で検討する |
特に注意したいのは、accessString を省略した場合に広い権限になる可能性がある点です。PR上では既定値が +@all ~* とされているため、「新しいAPIバージョンにしただけで最小権限になる」とは考えないほうが安全です。(GitHub)
影響を受けるチーム
今回の Azure REST API 更新で確認すべきなのは、Redis Enterprise の Access Policy Assignments を自動化しているチームです。具体的には、次のようなケースが該当します。
| 対象者 | 影響 | 対応優先度 |
|---|---|---|
| REST APIを直接呼び出している開発者 | api-version とリクエスト/レスポンスのプロパティ変更を確認する必要がある | 高 |
| ARMテンプレート、Bicep利用者 | 現行のテンプレート定義が accessPolicyName 前提のため、正式反映後に差分確認が必要 | 中〜高 |
| Terraform AzAPI利用者 | 生のリソースタイプとAPIバージョンを指定するため、変更を比較的早く試せる可能性がある | 中 |
| Azure SDK利用者 | 生成SDKのモデル、必須項目、非推奨警告が変わる可能性がある | 中 |
| Redis Enterpriseをポータル中心で運用している管理者 | 直接影響は限定的だが、アクセス権限設計の見直し対象になる | 低〜中 |
PRでは APIView により Go、Python、JavaScript、Java などの生成SDKレビューが作成されており、REST仕様だけでなく SDK利用者にも影響が及ぶ可能性があります。(GitHub)
既存環境でまず確認すべきこと
最初にやるべきことは、移行ではなく棚卸しです。特に、次の3つを確認してください。
# Redis Enterprise の Access Policy Assignments を参照している箇所を探す
grep -R "accessPolicyAssignments" .
# API version を固定している箇所を探す
grep -R "2026-02-01-preview\|2025-08-01-preview\|2025-07-01" .
# accessPolicyName を前提にしている箇所を探す
grep -R "accessPolicyName" .
確認すべきファイルは、アプリケーションコードだけではありません。ARMテンプレート、Bicep、Terraform、CI/CDのデプロイスクリプト、az rest を呼び出しているシェル、SDKの型チェックを行うテストコードも対象です。
現時点の Microsoft Learn の ARM/Bicep/Terraform AzAPI リファレンスでは、最新として 2026-02-01-preview が掲載され、プロパティは accessPolicyName と user.objectId が中心です。変更ログにも 2026-05-01-preview はまだ掲載されていないため、IaCツール側では正式なドキュメント反映を待ってから差分確認するのが安全です。(Microsoft Learn)
REST APIでの設定イメージ
Azure Resource Manager の REST API は https://management.azure.com/ を使い、通常はクエリ文字列で api-version を指定します。Microsoft Learn でも、ARM provider API では api-version クエリパラメーターが必要と説明されています。(Microsoft Learn)
正式反映後に 2026-05-01-preview を使う場合、Access Policy Assignment の更新は次のような形になると考えられます。
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/accessPolicyAssignments/{accessPolicyAssignmentName}?api-version=2026-05-01-preview
Content-Type: application/json
{
"properties": {
"accessPolicyName": "default",
"accessString": "+@read ~cache:*",
"user": {
"objectId": "<Microsoft Entra object ID>"
}
}
}
ここで accessPolicyName: "default" を残しているのは、PR上で後方互換性が説明され、作成更新例にも accessPolicyName と accessString の併記が見られるためです。最終仕様で accessPolicyName が任意化・非推奨として整理された場合は、公式ドキュメントと利用中SDKの型定義に合わせて省略可否を判断してください。(GitHub)
provisioningErrorで失敗理由を追いやすくなる
今回の更新で実務上ありがたいのが、provisioningError の追加です。PRの例では、不正な accessString により provisioningState が Failed になり、provisioningError に code、message、target が含まれる例が示されています。(GitHub)
これは、運用監視やCI/CDで次のように使えます。
{
"properties": {
"accessString": "+@invalid-syntax",
"provisioningState": "Failed",
"provisioningError": {
"code": "InvalidAccessString",
"message": "エラー内容",
"target": "properties.accessString"
}
}
}
従来は、作成リクエストが成功しても内部の権限適用に失敗した場合、失敗理由を取り出しにくいケースがありました。provisioningError.target が properties.accessString を指すなら、CI/CDのログやアラートで「Redis ACL文字列の構文ミス」と判断しやすくなります。
本番運用では、単にHTTPステータスだけを見るのではなく、作成・更新後に GET で provisioningState を確認する処理を入れておくと安全です。
az rest --method get \
--url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/accessPolicyAssignments/{accessPolicyAssignmentName}?api-version=2026-05-01-preview"
破壊的変更として扱うべきか
PRには、既存の安定版は変更しないこと、accessPolicyName: "default" は 2026-05-01-preview を含む全APIバージョンで引き続き受け付けることが記載されています。あわせて、REST APIレベルでは破壊的変更ではなく、生成SDKに軽微な影響があり得るという趣旨のラベルも付いています。(GitHub)
ただし、実務では「破壊的変更ではない」とだけ見て判断しないほうがよいです。レビューコメントでは、accessPolicyName の非推奨説明や #deprecated 指定がバージョン限定になっていないと、古いAPIバージョンのSDKドキュメントや生成SDKにも誤った非推奨警告が出る可能性が指摘されています。(GitHub)
つまり、確認すべきリスクはAPI呼び出しの失敗だけではありません。
- SDKの型定義で
accessPolicyNameが必須のままになっていないか - 古いAPIバージョンのSDKで不要な非推奨警告が出ないか
- レスポンスに
accessStringやprovisioningErrorが増えてもパーサーが落ちないか - IaCのスキーマ検証で未知のプロパティとして弾かれないか
accessString省略時に意図せず広い権限にならないか
APIバージョン追加は小さく見えても、権限設定に関わる変更はセキュリティレビューの対象にするべきです。
移行する場合の進め方
移行は、次の順序で進めると失敗しにくくなります。
| 手順 | 作業内容 | 判断基準 |
|---|---|---|
| 現状把握 | api-version、accessPolicyName、対象リソースを洗い出す | Access Policy Assignments を使っていなければ対応不要 |
| 要件整理 | アプリごとに必要な Redis コマンドとキー範囲を決める | +@all ~* 以外で実現できるかを先に検討 |
| 非本番検証 | 2026-05-01-preview で作成・取得・一覧・削除を試す | provisioningState が Succeeded になること |
| 失敗時確認 | 意図的に不正な accessString を試し、エラー取得を確認する | provisioningError.target をログ化できること |
| IaC反映 | ARM/Bicep/Terraform AzAPIの差分を整理する | 公式リファレンスとツール側スキーマ対応を確認 |
| 本番適用 | 対象を限定して段階的に反映する | 既存割り当ての権限が過不足なく再現できること |
特に重要なのは、アプリケーション単位で「必要なRedisコマンド」と「アクセスしてよいキーの範囲」を先に決めることです。accessString は便利ですが、設計なしに +@all ~* を入れると、カスタムアクセス制御を導入した意味が薄れます。
失敗しやすいポイント
accessStringを省略して安全になったと誤解する
PR上では accessString の既定値が +@all ~* とされています。これは最小権限ではありません。既定値に任せるのではなく、読み取り専用、書き込み可能、管理系ジョブなど、用途ごとに権限文字列を分けてください。(GitHub)
Azure RBACとRedis ACLを混同する
user.objectId は Microsoft Entra ID のユーザーやサービスプリンシパルを識別するための値です。一方、accessString は Redis 側で実行できるコマンドやアクセスできるキー範囲を定義する文字列です。どちらか一方だけでアクセス制御が完結するわけではありません。
プレビューAPIを本番標準にしてしまう
2026-05-01-preview は名前の通りプレビューです。さらに、2026年5月6日時点ではPRがOpenで、レビュー上の変更依頼が出ています。検証環境で試す価値はありますが、正式反映前に本番テンプレートの標準APIバージョンへ組み込むのは避けるべきです。(GitHub)
古いレスポンス前提のコードで落ちる
REST APIのレスポンスに新しいプロパティが追加されると、厳密なJSONバリデーションや独自デシリアライズ処理で失敗することがあります。accessString や provisioningError が返っても無視できる設計、またはログとして取り込める設計にしておくと安全です。
今すぐ取るべき行動
現時点でやるべきことは、すぐに 2026-05-01-preview へ切り替えることではありません。まず、Redis Enterprise の Access Policy Assignments を使っている箇所を洗い出し、accessPolicyName が default 固定で使われているか、将来的にカスタム Redis ACL が必要かを判断してください。
カスタム権限が必要な場合は、非本番環境で accessString の設計と検証を始める価値があります。逆に、現行の default ポリシーで十分な環境では、正式な Microsoft Learn 反映、ARM/Bicep/Terraform AzAPI の定義更新、利用中SDKの対応を待ってから対応方針を決めれば十分です。
今回の Azure REST API 更新は、単なるAPIバージョン追加ではなく、Redis Enterprise のアクセス制御をより細かく設計するための変更です。対応の優先順位は、「新バージョンを使うか」ではなく、「自社のRedisアクセス権限を最小権限で表現できているか」から決めるのが実務的です。

コメント