Azure Container Registry の専用データ エンドポイントが発表されました。これにより、厳密な範囲が設定されたクライアント ファイアウォール規則を特定のレジストリに適用することができ、データの不正取得を最小限に抑えることができます。
レジストリからコンテンツをプルすると、次の 2 つのエンドポイントが含まれます。
- レジストリ エンドポイントは多くの場合、ログイン URL と呼ばれ、認証とコンテンツの検索に使用されます。
docker pull contoso.azurecr.io/hello-world
のようなコマンドは REST 要求を発行します。これは、要求されたアーティファクトを表すレイヤーを認証し、ネゴシエートします。 - データ エンドポイントは、コンテンツ レイヤーを表す BLOB を提供します。
レジストリ マネージド ストレージ アカウント
Azure Container Registry は、データ エンドポイントのストレージ アカウントがレジストリ サービスによって管理される、マルチテナント サービスです。負荷分散、競合するコンテンツの分割、同時コンテンツ配信を向上させるための複数コピー、geo レプリケーションを備えた複数リージョン サポートなど、マネージド ストレージには多くのメリットがあります。
Azure Private Link の仮想ネットワークのサポート
Azure Container Registry の Private Link サポートが最近発表されました。これにより、Azure Virtual Networks からのプライベート エンドポイントをマネージド レジストリ サービスに配置できます。このようにすると、レジストリとデータ エンドポイントの両方に、仮想ネットワーク内のプライベート IP を使用してアクセスすることができます。
これによりパブリック エンドポイントを削除することができ、仮想ネットワーク内からマネージド レジストリとストレージ アカウントに安全にアクセスすることができます。
残念ながら、仮想ネットワーク接続は常に選択肢になるとは限りません。
クライアントのファイアウォール規則とデータの不正流出のリスク
オンプレミスのホスト、IoT デバイス、カスタム作成エージェントからレジストリに接続する場合、または Private Link を使用できない場合、クライアント ファイアウォール規則を適用できる場合があり、特定のリソースへのアクセスを制限することができます。
お客様が、使用しているクライアントのファイアウォール構成をロックダウンするときに、すべてのストレージ アカウントに対してワイルドカードを使用して規則を作成する必要がありました。これにより、データの不正流出の問題が発生します。不正なアクターは、ストレージ アカウントに書き込むことができるコードをデプロイできます。
データの不正流出の問題を軽減するため、Azure Container Registry で専用のデータ エンドポイントが提供されています。
専用データ エンドポイント
専用データ エンドポイントが有効になっている場合、レイヤーは、レジストリ ドメインを表す完全修飾ドメイン名を使用して Azure Container Registry サービスから取得されます。いずれかのレジストリが geo レプリケートされる場合、次のようなリージョン パターンが使用されます。
[registry].[region].data.azurecr.io.
Contoso の例では、近くにレプリカを持つローカル リージョンをサポートする複数のリージョン データ エンドポイントが追加されます。
専用データ エンドポイントを使用すると、不正なアクターは他のストレージ アカウントへの書き込みをブロックされます。
専用データ エンドポイントを有効にする
メモ:専用データ エンドポイントに切り替えると、既存の *.blob.core.windows.net endpoints エンドポイントへのファイアウォール アクセスが構成されているクライアントに影響が生じ、プル エラーが発生します。クライアントが常時確実にアクセスできるようにするため、新しいデータ エンドポイントをクライアントのファイアウォール規則に追加します。完了したら、既存のレジストリで az cli
から専用データ エンドポイントを有効にできます。
az cli バージョン 2.4.0 以上を使用して、az acr update コマンドを実行します。
az acr update --name contoso --data-endpoint-enabled
geo レプリケートされたレジストリのリージョン別エンドポイントを含むデータ エンドポイントを表示するには、az acr show endpoint cli を使用します。
az acr show-endpoints --name contoso
出力:
{
"loginServer": "contoso.azurecr.io",
"dataEndpoints": [
{
"region": "eastus",
"endpoint": "contoso.eastus.data.azurecr.io",
},
{
"region": "westus",
"endpoint": "contoso.westus.data.azurecr.io",
}
]
}
Azure Private Link を使用したセキュリティ
Azure Private Link は、プライベート IP を使用してネットワーク トラフィックが Azure Virtual Network に限定されるため、クライアントとレジストリの間のネットワーク アクセスを制御する最も安全な方法です。Private Link が使用できない場合は、専用データ エンドポイントを使用することで、各クライアントからアクセスできるリソースについて、セキュリティで保護されたナレッジを提供できます。
価格情報
専用データ エンドポイントは、Premium レジストリの機能の 1 つです。
専用データ エンドポイントの詳細については、こちらから価格についての情報をご覧ください。