⚡
Web App for Conateinersをセキュアに構成する
アーキテクチャ
- インバウンド通信はプライベートエンドポイントを使用する
- App Serviceからのアウトバウンド通信はVNET統合を使用する
- App Serviceに持たせる権限はシステム割り当てマネージドIDを使用する
Azure Container Registry
Private endpointを使用するためレベル「Premium」を選択する。Geo冗長や可用性ゾーンもサポートされている。
App ServiceのマネージドIDを使用してACRからイメージをプルすることで、ACRの管理者ログインを有効化する必要がなくなる。
Web Apps for Containers
仮想ネットワーク統合とPrivate endpointを使用するにはレベル「Basic」、「Standard」、「Premium」、「PremiumV2」、「PremiumV3」を選択する必要がある。
App Serviceのシステム割り当てマネージドIDを有効化し、RBACの「ACR Pull」を付与する。
ユーザ割り当てマネージドIDはIDとリソースの紐づけが「1vs多」となり、IDが漏洩した際のリスクが大きくなるため、基本採用しない。
App ServiceにはWebhookを用いた継続的デプロイ機能がサポートされているため、状況に応じて使用する。本番環境の要件等で手動デプロイが必要な場合はAzure CLIで手動デプロイを実行する。
Client
Docker操作(ACRへのDocker push等)を行うサーバを用意する。仮想マシンのマネージドIDを有効化して権限を持たせるか、Az loginで権限を持たせる方法がある。
Discussion