Azure Container Registry: リポジトリが範囲指定されたアクセス許可のプレビュー

2019年11月13日 に投稿済み

Senior Program Manager

Azure Container Registry (ACR) チームは、リポジトリが範囲指定されたロールベースのアクセス制御 (RBAC) アクセス許可のプレビューをロールアウトいたします。これは、UserVoice で最も人気を集めていたアイテムです。このリリースには、皆様にお試しいただき、フィードバックをお寄せいただくためのコマンド ライン インターフェイス (CLI) エクスペリエンスが用意されています。

ACR では既に、レジストリ全体へのロールベースのアクセス権を持つ ID を使用した認証オプションをいくつかサポートしています。とはいえ、複数チームのシナリオでは、複数のチームを 1 つのレジストリに統合して、各チームのアクセスをチームに固有のリポジトリに制限することが必要な場合もあります。リポジトリが範囲指定された RBAC でこの機能を実現できるようになりました。

リポジトリが範囲指定されたアクセス許可が役立つシナリオの例として、次の場合があります。

  • リポジトリ アクセスを組織内の特定のユーザー グループに制限する。たとえば、特定のリポジトリをターゲットとしたイメージを構築する開発者には書き込みアクセス権を付与し、それらのリポジトリからデプロイするチームには読み取りアクセス権を付与できます。

  • 特定のリポジトリからイメージをプルできるように、何百万もある IoT デバイスに個別のアクセス権を付与する。

  • 特定のリポジトリへのアクセス許可を外部組織に付与する。

このリリースでは、リポジトリが範囲指定された RBAC アクセス許可を実装するためのメカニズムとしてトークンが採用されています。トークンとは、レジストリで認証を行う場合に使用される資格情報です。これは、ユーザー名とパスワードか、Azure Active Directory のユーザー、サービス プリンシパル、マネージド ID のような Azure Active Directory (AAD) オブジェクトによって提供されます。このリリースでは、ユーザー名とパスワードによって提供されるトークンがサポートされています。将来のリリースでは、Azure Active Directory のユーザー、サービス プリンシパル、マネージド ID のような Azure Active Directory オブジェクトによって提供されるトークンがサポートされる予定です。図 1 を参照。

リポジトリ

*Azure Active Directory (AAD) で提供されるトークンは、将来のリリースでサポートされる予定です。

図 1

下の図 2 は、トークンとスコープマップの関係をまとめたものです。

  • トークンとは、レジストリで認証を行う場合に使用される資格情報です。トークンには、1 つ以上のリポジトリが範囲指定された一連のアクションが許可されています。トークンを生成すると、そのトークンを使用してレジストリで認証できます。次のコマンドを使用して、Docker ログインを実行できます。

docker login --username mytoken --password-stdin myregistry.azurecr.io.

  • スコープ マップとは、トークンに適用するリポジトリ アクセス許可をグループ化するレジストリ オブジェクトです。スコープ マップは、1 つ以上のリポジトリに対するアクセス図を提供します。ユーザーは、範囲指定されたリポジトリ アクセス許可をトークンに適用したり、他のトークンに再適用したりできます。トークンの作成時にユーザーがスコープ マップを適用しない場合、スコープ マップは自動的に作成され、アクセス許可の設定が保存されます。

スコープ マップは、一連のリポジトリに対して同じアクセス権を持つ複数のユーザーを構成するのに役立ちます。

トークンとスコープマップの関係図 2

顧客がコンテナーや他の成果物を IoT デプロイに使用するにつれて、デバイスの数が増加して、数百万規模になる場合があります。この規模の IoT をサポートするため、Azure Container Registry は、トークンを使用した RBAC ベースのリポジトリを実装しています (図 3)。トークンは、サービス プリンシパルやマネージド ID に取って代わるものではありません。トークンは、追加オプションとして追加することで、IoT デプロイ シナリオのスケーラビリティを実現できます。

この記事では、アクセス許可がレジストリ内の特定のリポジトリに制限されたトークンの作成方法を説明します。トークンベースのリポジトリ アクセス許可を導入すると、Azure Active Directory ID を使用しなくても、リポジトリに対する範囲と時間制限が指定されたアクセスをユーザーやサービスに提供できるようになりました。将来、Azure Active Directory オブジェクトによって提供されるトークンもサポートされる予定です。この新機能をお試しになり、GitHub で皆様のフィードバックをお寄せください。

トークン

図 3

利用可能性とフィードバック

Azure CLI エクスペリエンスは、現在プレビュー段階です。既存の機能に関するフィードバックと、製品のロードマップに関するアイデアをお待ちしています。

ロードマップ:計画されている作業を確認する場合。

UserVoice:既存の要求に投票したり、新しい要求を作成したりする場合。

問題:既存のバグや問題の確認、または新しいバグや問題のログを作成する場合。

ACR ドキュメント:ACR のチュートリアルとドキュメント。