2017-11-14 11 views
0

私はDocker swarmを持っています。SSH経由で別のコンテナに接続するサービスでは、秘密のRSAキーを使用したいと思います。ドッカーの秘密とRSAキー

私のセキュリティポリシーは、すべての秘密(パスワード、キーなど)が宛先サーバ(Swarm)とは異なるマシンに保存されているということです。

touch /run/secrets/id_rsa 
touch /run/secrets/id_rsa.pub 

そして今:

mkdir -p /run/secrets 

は、その後、私は偽物id_rsaid_rsa.pubファイルを作成します。実際に

(と私はそれを好きではない)、私のDockerfileに私は一時ディレクトリ/run/secretsを作成します私はシンボリックリンクを作成します:

ln -s /run/secrets/id_rsa /root/.ssh/id_rsa 
ln -s /run/secrets/id_rsa.pub /root/.ssh/id_rsa.pub 

私はdocker-entrypoint.shの秘密をコピーする方法を見つけなかったので私はこれをしています:エントリーポイントで私はルートではないので/rootディレクトリにコピーできません。

私は既にDockerの秘密を使用していますが、ここでの問題は、コンテナ内の秘密が読み取り専用であることです。その影響SSHの使用:それは読み取り専用ですので、

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
@   WARNING: UNPROTECTED PRIVATE KEY FILE!   @ 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
Permissions 0444 for '/root/.ssh/id_rsa' are too open. 
It is recommended that your private key files are NOT accessible by others. 
This private key will be ignored. 

は私が私のid_rsaファイルのパーミッションを変更することはできません。

解決策はありますか、それとも本当に良い方法がありますか?

おかげ

EDIT 1:

私は/root/.sshディレクトリにキーをコピーするために、私ドッカーイメージを構築する方法を変更しようとしています。

+1

Dockerfileであなたは 'USER'文でユーザーを変更することができます。また、sshキーの許可は '444'ではなく '600'でなければなりません - chmod 600 ' – Opal

+0

はい、私は知っています、それは私の問題です。 Dockerの秘密では、私は読み取り専用なので許可を変更できません。 –

+0

Dockerfileを提供してもらえますか? – Opal

答えて

1

作成ファイルを使用してスタックを作成することを検討してください。 これはあなたの秘密のファイルパーミッションを変更するオプションを提供します。

version: "3.1" 
services: 
    redis: 
    image: redis:latest 
    deploy: 
     replicas: 1 
    secrets: 
     - source: my_secret 
     target: redis_secret 
     uid: '103' 
     gid: '103' 
     mode: 0440 
secrets: 
    my_secret: 
    file: ./my_secret.txt 
    my_other_secret: 
    external: true 

詳細情報はここで見つけることができます:https://docs.docker.com/compose/compose-file/#long-syntax-2

+0

ありがとう!たとえば、オプション '--secret my_secret、mode = 0400'を使ってサービスを実行できることがわかりました。 –

+0

私の問題が私の質問よりも大きい場合でも、あなたは正しいですし、あなたは私の "本当の"質問に答えることができます:RSAキーに対する許可。 –

関連する問題