| name | azure |
| description | Azure 上のリファレンスアーキテクチャを選定し、テナントのセキュリティガバナンスに準拠した構成で構築・デプロイ・検証する。組織ポリシー(公衆ネットワークアクセス禁止・共有キー禁止・MFA 必須等)の下でも動作する構成を、Private Link / Managed Identity / VNet 統合を用いて実装する。 |
| category | architecture |
| triggers | ["Azure 構築","Azure リファレンスアーキテクチャ","Private Endpoint","publicNetworkAccess","共有キー禁止","Managed Identity でストレージ","VNet 統合 Functions","テナント準拠 Azure","ストレージを Web で使う","セキュアな Web サイト","linked backend","Azure ガバナンス準拠"] |
Azure リファレンスアーキテクチャ スキル
Azure 開発を、テナントのセキュリティガバナンスに準拠したまま進めるためのスキル。
要件から適切なリファレンスアーキテクチャを選定し、構築・デプロイ・検証・クリーンアップまでを一貫して行う。
原則: 組織ポリシー(Azure Policy / Conditional Access)と戦わず、準拠する構成を採る。
publicNetworkAccess=Disabled でも Private Link は常に到達可能——これを土台にする。
リファレンスアーキテクチャ一覧(メニュー)
新しいリファレンスは references/<topic>.md として追加し、この表と参考リンクに1行足す。
Web サイトの UI / デザインの参照方針
Azure 上で Web サイト/フロントを作る際、UI は新規に定義せず、この開発標準の共通デザイン言語と既存実装を参照する。
配色/トークンは standard のデザイン言語を単一ソースとする。用途(内部業務 or 外部公開)で参照する実装を切り替える。
Web 配信のセキュア構成は references/secure-website.md を併用する。
Azure 固有の UI 適応メモ(独自パレットは持たない)
- フォント/CSP: Azure(SWA/App Service) は Code Apps の「Google Fonts 禁止/フォント固定」制約が無い。カスタム Web フォント/可変フォントを使用可。
- モーション/SEO/パフォーマンス: 公開サイトではアニメーション・メタ/OGP・Core Web Vitals 最適化等、内部業務基準を超えた要素を採り入れてよい。
- 公開マーケ/LP 系: デザインはホスティング非依存のため power-pages のパターンを流用する。
ワークフロー(正常系)
Step 1: リファレンスアーキテクチャを選定する
- ユーザー要件を確認し、上のメニューから該当リファレンスを選ぶ。
- 該当が無ければ、要件に近い構成を
references/ から選び、差分を明示する。
Step 2: 事前確認で「Sure」にする
- references/preflight-checklist.md を上から確認する。
- 特に 強制ポリシーの対象リソース型(ストレージのみか、コンピュートも含むか)を確定し、公開バックエンド可否を判断する。
- 公式仕様は Microsoft Learn MCP(
microsoft_docs_search / microsoft_docs_fetch)で裏取りし、推測を残さない。
Step 3: MFA 認証済みセッションを確保する
- 組織が ARM 書込に MFA を要求する場合、
scripts/ensure_az_mfa.ps1 で MFA 済みトークンを確保する。
- トークンの
amr に mfa/rsa が含まれることを確認(amr=pwd は未 MFA で書込不可)。
Step 4: インフラを段階構築する
scripts/setup_private_endpoint.ps1 を 段階(Stage)実行する(ポリシーでの失敗を切り分けるため)。
- VNet/サブネット → Private DNS → Private Endpoint → バックエンドストレージ → コンピュート(VNet 統合・MI デプロイ認証を作成時に指定)→ RBAC → アプリ設定 → フロント連携 の順。
- パラメータは引数か
.env(references/.env.example)から取得する。
Step 5: アプリをデプロイする
- 企業ネットワークからの大容量デプロイはリセットされるため、CI からデプロイする(
scripts/deploy_functionapp.yml)。
- コンテンツ配信はブラウザ直アクセスをやめ、**API プロキシ(HTTP Range 対応)**に変更する(詳細は各リファレンス)。
Step 6: 検証する
- 未認証で保護エンドポイントが
401 を返す(配信・認証保護の確認)。
- 認証後にデータ取得が
200(Private Endpoint 経由の読取成功)。
- コンテンツは Range 要求に
206 + Content-Range を返す。
- ブラウザ E2E は VS Code 統合ブラウザで自動化する(Playwright 単体・MCP は使わない)。
Step 7: クリーンアップとセキュリティ
- 旧「公開切替」自動化(Automation runbook / スケジュール / CI)は不要かつ無効のため削除する。
- シークレットは env / Key Vault 参照で管理し、コミットしない。一時ファイル・認証キャッシュは
.gitignore。
- 露出したシークレットはローテーションする。
参考リンク