Azure Container Registryのセキュリティ

このエントリは2021/04/12現在の情報に基づいています。将来の機能追加や変更に伴い、記載内容との乖離が発生する可能性があります。

タイトル通りである。以下、Azure Container RegistryをACRと表現する。まず、大前提としてSKUによる機能制限はこちら。

Azure Container Registry サービス階層 / Azure Container Registry service tiers
https://docs.microsoft.com/azure/container-registry/container-registry-skus

コンテンツの信頼

ACRではDockerのコンテンツ信頼モデルを実装しており、これを有効にすると、署名済みのイメージのプッシュとプルが可能。 ただし、現時点では以下に示すような注意点がある。

  • この機能を利用できるのはPremium SKUのみ

Azure Container Registry におけるコンテンツの信頼 / Content trust in Azure Container Registry
https://docs.microsoft.com/azure/container-registry/container-registry-content-trust

コンテナーイメージの脆弱性検知

これはpushやimportされたコンテナーイメージをスキャンして脆弱性を調べる、というもの。Azure Security Centerのコンポーネントの一つであるAzure Defender for container registriesで実施するが、これはQualysの脆弱性スキャナーを使っている。詳細は以下。

Azure Defender for container registries の概要 / Introduction to Azure Defender for container registries
https://docs.microsoft.com/azure/security-center/defender-for-container-registries-introduction

アクセス制限 (1) Vnet

ACRへのアクセスをVNetからのみに限定したい場合には、Private Linkを利用できる。ただし、現時点では以下に示すような注意点がある。

  • 利用できるのはPremium SKUのみ。
  • Private Endpointの最大個数は10。
  • 現時点で、Azure Security CenterはACRの信頼されたサービスに含まれていないため、プライベート エンドポイント、選択したサブネット、または IP アドレスへのアクセスを制限するレジストリに対するイメージ脆弱性のスキャンができない
  • 現時点で、Azure DevOps Services、Web Apps、および Azure Container Instances を含む Azure サービスのインスタンスもACRの信頼されたサービスに含まれていないため、ネットワークが制限されたコンテナー レジストリにアクセスできない

詳しくは以下のドキュメントを参照。

Azure Private Link を使用して Azure Container Registry にプライベートで接続する / Connect privately to an Azure container registry using Azure Private Link
https://docs.microsoft.com/azure/container-registry/container-registry-private-link

なお、Service Endpointも利用できるが、今後の機能追加の予定がない、とドキュメントに記載があるので、どうしてもという場合以外はPrivate Link/Endpointを使うことを推奨。

Azure 仮想ネットワークのサービス エンドポイントを使用してコンテナー レジストリへのアクセスを制限する / Restrict access to a container registry using a service endpoint in an Azure virtual network
https://docs.microsoft.com/azure/container-registry/container-registry-vnet

アクセス制限 (2) パブリック

何もしなければACRはパブリックアクセス可能である。ネットワークルールを構成してアクセス制限をかけることができる。VNetの場合と同様、以下の注意点がある。

  • この機能を利用できるのはPremium SKUのみ。
  • 現時点で、Azure Security CenterはACRの信頼されたサービスに含まれていないため、プライベート エンドポイント、選択したサブネット、または IP アドレスへのアクセスを制限するレジストリに対するイメージ脆弱性のスキャンができない
  • 現時点で、Azure DevOps Services、Web Apps、および Azure Container Instances を含む Azure サービスのインスタンスもACRの信頼されたサービスに含まれていないため、ネットワークが制限されたコンテナー レジストリにアクセスできない

パブリック IP ネットワーク ルールを構成する / Configure public IP network rules
https://docs.microsoft.com/azure/container-registry/container-registry-access-selected-networks

アクセス制限 (3) Destinationの制限

Firewallで囲まれた環境からACRにアクセス制限する場合、特定IPに対してアクセスを許可しなければならない可能性がある。その場合、以下のドキュメントに従い、Destination IPやサービスタグでアクセス許可したり、専用データエンドポイントを有効にして特定クライアントからのみにアクセスを制限できる。ただし、現時点では以下に示すような注意点がある。

  • この機能を利用できるのはPremium SKUのみ

ファイアウォールの内側から Azure コンテナー レジストリにアクセスする規則を構成する / Configure rules to access an Azure container registry behind a firewall
https://docs.microsoft.com/azure/container-registry/container-registry-firewall-access-rules

暗号化

イメージはストレージに格納された時点で暗号化される。デフォルトではサービスマネージドキーを使って暗号化されるが、カスタムマネージドキーを利用することも可能。この場合、キーはKey Vaultに格納する。 ただし、現時点では以下に示すような注意点がある。

  • この機能を利用できるのはPremium SKUのみ
  • 現時点では、レジストリ作成時のみカスタマー マネージド キーを有効化できる

カスタマー マネージド キーを使用してレジストリを暗号化する / Encrypt registry using a customer-managed key
https://docs.microsoft.com/azure/container-registry/container-registry-customer-managed-keys

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中