説明
マネージド ID を使うと、コードや設定に長期の認証情報を保存せず、デプロイスロットから対応する Azure リソースへアクセスできます。ID はスロットごとに設定するため、本番アプリとステージングスロットの必要な権限を個別に確認してください。
想定される影響
個別のシークレットやアクセスキーは、漏えい、交換漏れ、認証情報の管理負担につながる可能性があります。
対処方法
対応リソースへアクセスするスロットに identity を設定してください。運用に合わせて SystemAssigned または UserAssigned を選び、対象リソースに必要な最小権限だけを付与してください。アプリがその ID でトークンを取得するよう変更し、従来のシークレットを削除してください。
例
Windows Web App スロットの ID 設定だけを比較します。親アプリと対象リソースへの権限は別途設定します。
変更前
hcl
resource "azurerm_windows_web_app_slot" "example" {
name = "staging"
app_service_id = azurerm_windows_web_app.example.id
site_config {}
}
変更後
hcl
resource "azurerm_windows_web_app_slot" "example" {
name = "staging"
app_service_id = azurerm_windows_web_app.example.id
site_config {}
identity {
type = "SystemAssigned"
}
}
変更後はスロットのシステム割り当て ID を有効にします。ID の作成だけでデータアクセス権限が付与されたり、既存コードの認証方法が変わったりするわけではありません。