App Service マネージド ID の利用状況の確認

対応する Azure リソースへのアクセスで、保存する長期認証情報を減らしてください。

説明

マネージド ID がないと、App Service アプリが他の Azure リソースへアクセスするために、シークレットや認証情報を別途管理する必要が生じる場合があります。マネージド ID はリソースアクセス用のアプリの ID であり、訪問者のサインイン認証を有効にする設定ではありません。他のリソースへアクセスしないアプリに、必ず ID が必要というわけでもありません。

想定される影響

  • 認証情報をコードや設定ファイルに保存すると、漏えいするおそれがあります。
  • シークレットの交換や認証情報の管理負担が増え、運用ミスが生じる場合があります。

対処方法

  • 対象サービスがマネージド ID 認証に対応している場合は、Microsoft.Web/sites に SystemAssigned または UserAssigned ID を設定してください。ユーザー割り当て型では、userAssignedIdentities で実際の ID を関連付けてください。
  • 必要な権限だけを付与し、アプリが ID で認証するよう変更してください。正常動作を確認してから保存済みのシークレットを削除し、使わなくなった認証情報を失効させてください。

例

同じアプリにシステム割り当て ID を追加する抜粋です。App Service プランや実行設定などは省略しており、対象サービスの権限は別途設定する必要があります。

変更前

bicep
resource webApp 'Microsoft.Web/sites@2020-12-01' = {
  name: 'example-webapp'
  location: resourceGroup().location
  properties: {
    httpsOnly: true
  }
}

マネージド ID が設定されていません。他の Azure リソースへの認証方式を確認する必要があります。

変更後

bicep
resource webApp 'Microsoft.Web/sites@2020-12-01' = {
  name: 'example-webapp'
  location: resourceGroup().location
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    httpsOnly: true
  }
}

Azure が管理するシステム割り当て ID を有効にします。対象の権限や認証コードの変更まで自動で適用されるわけではありません。

参考資料