イメージアクセス管理
読む時間の目安: 2 分
イメージアクセス管理(Image Access Management)は、Docker Business サブスクリプションの一部に含まれる新機能です。 この機能は、各開発者が Docker Hub からどのような種類のイメージ(Docker 公式イメージ、Docker 認証者によるイメージ、コミュニティイメージ)をプルしたのか、それを組織所有者が管理するものです。
たとえば、組織の一員である開発者が、新たにコンテナー化アプリケーションを構築する際に、アプリケーションの一部に、信頼できないコミュニティイメージを含めてしまうことが起こりえます。 そのようなイメージは、企業に対して悪意を含んだセキュリティリスクとなる可能性があります。 イメージアクセス管理を利用すると、開発者がアクセスするイメージを、Docker 公式イメージ、Docker 認証者によるイメージ、組織の保有するイメージといった、信頼のおけるイメージだけとなるように、組織所有者が仕向けることができます。 こうしてセキュリティリスクを回避できます。
イメージアクセス管理のパーミッション設定
以下に示すビデオでは、イメージアクセス管理におけるパーミッションの設定過程を順に示しています。
詳細な手順
イメージアクセス管理におけるパーミッションを設定するには、以下の手順を行います。
- 組織管理者として Docker Hub アカウントにログインします。
-
組織を選択して、Organizations(組織)ページの Settings(設定)タブを開き、Org Permissions をクリックします。
- イメージアクセス管理を有効にして、管理対象としたい以下のようなイメージ種類に対するパーミッションを設定します。
- Organization Images(組織イメージ)= イメージアクセス管理が有効なときに、自組織が構築したイメージは常に有効となります。 このイメージは組織内のメンバーが生成したものであり、公開されたもの、プライベートなものを問いません。
- Docker Official Images(Docker 公式イメージ)= Docker Hub 上の Docker リポジトリから提供されるイメージです。 ここには OS リポジトリ、Dockerfile のベストプラクティス、すぐに使えるソリューションが提供されていて、日々セキュリティ更新が行われています。
- Docker Verified Publisher Images(Docker 認証者によるイメージ)= 認証公開者(Verified Publisher)プログラムの一部である Docker パートナーによって公開されたイメージです。 開発者の安全性を確保するサプライチェーンに含める、信頼のおけるイメージです。 これに対するパーミッションとして、Allowed(許可)や Restricted(限定的)を設定することができます。
- Community Images(コミュニティイメージ)= イメージアクセス管理が有効である場合に、このイメージは常に無効となります。 こういったイメージは信頼できないものです。さまざまな Docker Hub ユーザーが提供しているため、セキュリティリスクを引き起こすためです。
メモ
イメージアクセス管理は、デフォルトでは無効となっています。 ただし、組織内の
owners
チームに属するメンバーは、この設定には関係なく、すべてのイメージにアクセスできます。 - Allowed(許可)をクリックして、イメージに対するカテゴリー制約を選択します。
- 制約を適用した後、各メンバーは、組織のパーミッションページを編集はできませんが参照することはできます。
強制的な認証
組織内の各メンバーが、安全でセキュアな環境のもとでイメージを利用するように仕向けるため、以下の手順を実施して、組織内においては強制的にサインインさせるようにします。 これは以下のようにします。
- Docker Desktop の最新版をダウンロードします。そして、
registry.json
ファイルを生成します。
Docker Desktop 4.0 またはそれ以降のリリースをダウンロードします。
メモ
現在のところ Linux 向けの Docker Desktop はありません。 ログインに際しては Linux ユーザーも、 Mac や Windows ユーザーと同様の制約を持つことになりますが、現在のところ、ログイン時にこれを強制する方法はありません。
registry.json ファイルの生成
registry.json
ファイルを生成する際に、開発担当者は Docker Hub 上の少なくとも 1 つの組織のメンバーであることを確認します。registry.json
ファイルが、開発者の属する少なくとも 1 つの組織と一致した場合、Docker Desktop へのサインインが可能となり、その組織すべてにアクセスができます。
Windows の場合
Windows では、端末上から以下のコマンドを実行して Docker Desktop をインストールします。
C:\Users\Admin> "Docker Desktop Installer.exe" install
PowerShell の利用時は以下を実行します。
PS> Start-Process '.\win\build\Docker Desktop Installer.exe' -Wait install
Windows コマンドプロンプトの場合は以下とします。
C:\Users\Admin> start /w "" "Docker Desktop Installer.exe" install
install
コマンドには以下のフラグ指定ができます。
--allowed-org=<org name>
This requires the user to sign in and be part of the specified Docker Hub organization when running the application. For example:
C:\Users\Admin> "Docker Desktop Installer.exe" install --allowed-org=acmeinc
This creates the registry.json
file at C:\ProgramData\DockerDesktop\registry.json
and includes the organization information the user belongs to. Make sure this file
can’t be edited by the individual developer, only by the administrator.
Mac の場合
After downloading Docker.dmg
, run the following commands in a terminal to install
Docker Desktop in the Applications folder:
$ sudo hdiutil attach Docker.dmg
$ sudo /Volumes/Docker/Docker.app/Contents/MacOS/install
$ sudo hdiutil detach /Volumes/Docker
The install
command accepts the following flags:
--allowed-org=<org name>
This requires the user to sign in and be part of the specified Docker Hub organization when running the application. For example:
$ sudo hdiutil attach Docker.dmg --allowed-org=acmeinc
This creates the registry.json
file at /Library/Application Support/com.docker.docker/registry.json
and includes the organization information the user belongs to. Make sure this file
can’t be edited by the individual developer, only by the administrator.
制限の確認
制約設定が正常に行われていることを確認するには、組織メンバーが Docker Desktop にサインインしてから、自分のローカルマシンにイメージをプルします。 サインインができない場合には、エラーメッセージが表示されます。
イメージアクセス管理を有効にしていると、所属メンバーは、組織用のイメージ、Docker 公式イメージ、認証公開者によるイメージを、それぞれローカルマシンにプルできます。 制約設定を無効にすると、メンバーはコミュニティイメージなど、あらゆるイメージをプルできるようになります。
image, access, management