Static Web AppsとFront Doorを組み合わせた時に、staticwebapp.config.json
にX-Azure-FDID
を書くことで、Static Web Appsへのアクセスを特定のFront Doorからのみに許可できます。
Static Web AppsにAzure Pipelineからデプロイする時に、X-Azure-FDID
の値をstaticwebapp.config.json
に埋め込むためのjqテンプレートを用意します。
// staticwebapp.config.jq { "networking": { "allowedIpRanges": [ "AzureFrontDoor.Backend" ] }, "forwardingGateway": { "requiredHeaders": { "X-Azure-FDID": $frontdoorId } } }
スクリプトを実行すると、X-Azure-FDID
に値が設定されたstaticwebapp.config.json
ファイルのできあがりです。
$ jq -n --arg frontdoorId "00000000-0000-0000-0000-000000000000" -f staticwebapp.config.jq | tee staticwebapp.config.json { "networking": { "allowedIpRanges": [ "AzureFrontDoor.Backend" ] }, "forwardingGateway": { "requiredHeaders": { "X-Azure-FDID": "00000000-0000-0000-0000-000000000000" } } }
Azure Pipelineでstaticwebapp.config.json
作成先をapp_location
配下となるようにして、Azure Pieplineの変数にfrontdoorId
を追加、Static Web Appsへデプロイします。
# azure-pipelines.yml trigger: - main pool: vmImage: ubuntu-latest steps: - checkout: self submodules: true - script: | jq -n --arg frontdoorId "$frontdoorId" -f staticwebapp.config.jq | tee src/staticwebapp.config.json env: frontdoorId: $(frontdoorId) - task: AzureStaticWebApp@0 inputs: app_location: "/src" output_location: "" env: azure_static_web_apps_api_token: $(deployment_token)
Azure Static Web Appsへのアクセスをロックダウンするstaticwebapp.config.json
のnetworking
とforwardingGateway
セクションはAzure Static Web AppsのStandardプランでのみ使用できるので、Freeプランから変更しておきましょう。