docker trust key load コマンドを使って署名キーを読み込む方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、docker trust key load コマンドを使用して、署名キーを Docker トラストキーストアに読み込む方法を学習します。まず、openssl を使用して Docker イメージの署名用の秘密鍵ファイルを準備します。

キー生成後、この秘密鍵を Docker トラストキーストアに読み込みます。このキーストアは、暗号化キーを安全に保管する場所です。最後に、キーストア内で特定の名前で秘密鍵を読み込む方法を探ります。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker/ImageOperationsGroup -.-> docker/tag("Tag an Image") docker/ImageOperationsGroup -.-> docker/images("List Images") docker/VolumeOperationsGroup -.-> docker/cp("Copy Data Between Host and Container") subgraph Lab Skills docker/tag -.-> lab-555253{{"docker trust key load コマンドを使って署名キーを読み込む方法"}} docker/images -.-> lab-555253{{"docker trust key load コマンドを使って署名キーを読み込む方法"}} docker/cp -.-> lab-555253{{"docker trust key load コマンドを使って署名キーを読み込む方法"}} end

署名用の秘密鍵ファイルを準備する

このステップでは、Docker イメージの署名用の秘密鍵ファイルを準備する方法を学びます。Docker Content Trust は、イメージの整合性と信頼性を検証するために暗号化キーを使用します。イメージを署名するには秘密鍵が必要で、対応する公開鍵は他の人が署名を検証するために使用されます。

まず、この実験の作業ディレクトリである ~/project ディレクトリに移動します。

cd ~/project

次に、openssl コマンドを使用して新しい RSA 秘密鍵を生成します。このコマンドは 4096 ビットの秘密鍵を作成し、現在のディレクトリ内の my-signing-key.pem という名前のファイルに保存します。

openssl genrsa -out my-signing-key.pem 4096

キー生成プロセスを示す出力が表示されます。このコマンドは PEM 形式の秘密鍵を生成します。

次に、~/project ディレクトリに my-signing-key.pem ファイルが作成されたことを確認しましょう。

ls -l my-signing-key.pem

ファイルのパーミッション、所有者、グループ、サイズ、および変更時刻が表示されるはずです。これにより、秘密鍵ファイルが正常に生成されたことが確認できます。

秘密鍵を Docker トラストキーストアに読み込む

このステップでは、前のステップで生成した秘密鍵を Docker トラストキーストアに読み込みます。Docker トラストキーストアは、Docker がイメージの署名と検証に使用する暗号化キーを保管する安全な場所です。

Docker トラストキーストアは ~/.docker/trust/private ディレクトリにあります。作成した秘密鍵ファイル (my-signing-key.pem) をこのディレクトリにコピーする必要があります。

まず、秘密鍵を作成した ~/project ディレクトリにいることを確認します。

cd ~/project

次に、my-signing-key.pem ファイルを Docker トラストの秘密鍵ディレクトリにコピーします。ディレクトリが存在しない場合は作成する必要があります。

mkdir -p ~/.docker/trust/private
cp my-signing-key.pem ~/.docker/trust/private/

mkdir -p コマンドは、ディレクトリが存在しない場合にそのディレクトリと必要な親ディレクトリを作成します。cp コマンドは秘密鍵ファイルをコピーします。

ファイルをコピーした後、~/.docker/trust/private ディレクトリの内容を一覧表示することで、秘密鍵が Docker トラストキーストアにあることを確認できます。

ls ~/.docker/trust/private/

出力に my-signing-key.pem が表示されるはずです。これにより、秘密鍵が Docker トラストキーストアに正常に読み込まれたことが確認できます。

特定の名前で秘密鍵を読み込む

このステップでは、特定の名前で秘密鍵を Docker トラストキーストアに読み込む方法を学びます。前のステップで行ったように単にキーファイルをコピーすることもできますが、docker trust key load コマンドを使用すると、Docker トラストシステム内でキーに特定の名前を関連付けることができます。これは、複数の署名キーを管理する際に便利です。

まず、秘密鍵ファイル my-signing-key.pem を作成した ~/project ディレクトリにいることを確認します。

cd ~/project

次に、docker trust key load コマンドを使用して秘密鍵を読み込みます。キーの名前を入力するように求められます。このキーに my-signer という名前を付けましょう。

docker trust key load my-signing-key.pem --name my-signer

促されたら、キーの名前として my-signer を入力します。

Loading key from 'my-signing-key.pem'...
Enter name for new key: my-signer

名前を入力した後、新しいキーのパスフレーズを入力するように求められます。この実験では、Enter キーを押すだけでパスフレーズを空にすることができます。実際のシナリオでは、秘密鍵を保護するために強力なパスフレーズを使用することを強くお勧めします。

Enter passphrase for new key:
Repeat passphrase for new key:

キーが正常に読み込まれたことを示す出力が表示されるはずです。

Successfully loaded private key from 'my-signing-key.pem' with ID '...'

指定した名前でキーが読み込まれたことを確認するには、docker trust key list コマンドを使用して Docker トラストキーストア内のキーを一覧表示できます。

docker trust key list

NAME が my-signer で、対応する KEY ID があるエントリが表示されるはずです。これにより、特定の名前で秘密鍵を正常に読み込んだことが確認できます。

まとめ

この実験では、openssl genrsa を使用して Docker イメージの署名用に秘密鍵ファイルを作成する方法を学びました。次に、生成した秘密鍵を ~/.docker/trust/private ディレクトリにコピーすることで、その秘密鍵を Docker トラストキーストアに読み込む操作を練習しました。