コンテナー レジストリのコンテンツを一般公開する
匿名 (認証されていない) プル アクセスのために Azure コンテナー レジストリを設定することは、インターネットにアクセスできる任意のユーザーに対してレジストリから任意の内容をプルすることを許可するオプション機能です。
匿名プル アクセスはプレビュー機能であり、Standard と Premium サービス レベルで使用できます。 匿名プル アクセスを構成するには、Azure CLI (バージョン 2.21.0 以降) を使用してレジストリを更新します。 インストールまたはアップグレードする必要には、「Azure CLI のインストール」をご覧ください。
匿名プル アクセスの概要
既定では、Azure コンテナー レジストリからコンテンツをプルまたはプッシュするためのアクセスは、認証済みユーザーのみが使用できます。 匿名 (認証されていない) プル アクセスを有効にすると、すべてのレジストリ コンテンツは読み取り (プル) アクションとして一般公開されます。 匿名プル アクセスは、パブリック コンテナー イメージの配布など、ユーザー認証を必要としないシナリオで使用できます。
- 匿名プル アクセスを有効にするには、既存のレジストリのプロパティを更新します。
- 匿名プル アクセスを有効にした後は、いつでもそのアクセスを無効にすることができます。
- 認証されていないクライアントは、データ プレーン操作のみを使用できます。
- 認証されていない要求の割合が高いと、レジストリによって調整される場合があります。
- 以前にレジストリに対して認証を受けたことがある場合は、必ず匿名プル操作を試行する前に資格情報をクリアしてください。
警告
現在、匿名プル アクセスは、レジストリ内のすべてのリポジトリに適用されます。 リポジトリをスコープとしたトークンを使用してリポジトリ アクセスを管理する場合は、すべてのユーザーが、匿名プルが有効になっているレジストリ内のリポジトリからプルする可能性があります。 匿名プル アクセスが有効になっている場合は、トークンを削除することをお勧めします。
匿名プル アクセスを構成する
ユーザーは、Azure CLI を使って、匿名プル アクセスの有効化、無効化、状態のクエリを行うことができます。 次の例は、匿名プル アクセスの有効化、無効化、状態のクエリを実行する方法を示しています。
匿名プル アクセスを有効にする
az acr update コマンドを使用してレジストリを更新し、--anonymous-pull-enabled
パラメーターを渡します。 既定では、レジストリの匿名プルは無効になっています。
az acr update --name myregistry --anonymous-pull-enabled
重要
以前にレジストリに対して Docker の資格情報を使用して認証を受けたことがある場合は、必ず docker logout
を実行して既存の資格情報をクリアしてから匿名プル操作を試行してください。 そうしないと、"pull access denied" (プル アクセスが拒否されました) のようなエラー メッセージが表示される可能性があります。
docker login
を使い、レジストリにプッシュするイメージにタグを付ける場合は、必ず完全修飾レジストリ名 (すべて小文字) を指定してください。 この例では、完全修飾名は myregistry.azurecr.io
です。
以前に Docker 資格情報を使ってレジストリに対して認証したことがある場合は、次のコマンドを実行して既存の資格情報をクリアしてください。そうしないと、以前の認証がすべてクリアされます。
docker logout myregistry.azurecr.io
これは、匿名のプル操作を試みるのに役立ちます。 問題が発生した場合、"プル アクセスが拒否されました" のようなエラー メッセージが表示されることがあります。
匿名プル アクセスを無効にする
匿名プル アクセスを無効にするには、--anonymous-pull-enabled
を false
に設定します。
az acr update --name myregistry --anonymous-pull-enabled false
匿名プル アクセスの状態についてクエリを実行する
ユーザーは、--query パラメーターを指定した az acr show コマンドを使って、"匿名プル" の状態のクエリを実行できます。 次に例を示します。
az acr show -n <registry_name> --query anonymousPullEnabled
このコマンドは、"匿名プル" が有効 (true) か無効 (false) かを示すブール値を返します。 これにより、ユーザーが ACR 内の機能の状態を確認するプロセスが合理化されます。
次のステップ
- リポジトリスコープのトークンについて確認します。
- Azure コンテナー レジストリに対して認証を受けるオプションについて確認します。