Azure REST API 2026-05-01-preview更新の要点:Access Policy Assignmentsのcustom access strings対応

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 version2026-02-01-preview などを使用2026-05-01-preview が追加されるすぐ本番採用せず、正式反映とリージョン対応を確認する
accessPolicyNamedefault のみを前提にする形必須ではなくなり、非推奨方向古い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アクセス権限を最小権限で表現できているか」から決めるのが実務的です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次