あなたはDocker画像を構築していますか?ここでは、Docker画像に敏感な情報を漏らすことを避ける方法があります
This tip is part of a complete 10 Docker image security best practices you should adopt. Thanks for reading and to who worked with me on it.
場合によっては、Dockerイメージ内のアプリケーションを構築するときに、プライベートなリポジトリからコードをプルするSSHプライベートキーなどの秘密を必要とするか、プライベートパッケージをインストールするトークンが必要です.
あなたがDocker中間の容器にそれらをコピーするならば、彼らが後で彼らを削除するとしても、彼らが加えられる層にキャッシュされます.これらのトークンとキーは
Dockerfile
の外に保管しなければなりません.多段階ビルドの使用
多段構築のためのDockerサポートを活用することによって、後に配置される中間のイメージ層の秘密を取って、管理して、敏感なデータがイメージ・ビルドに達するようにしません.
次の例のように、中間層に秘密を追加するコードを使用します
FROM: ubuntu as intermediate
WORKDIR /app
COPY secret/key /tmp/
RUN scp -i /tmp/key build@acme/files .
FROM ubuntu
WORKDIR /app
COPY --from=intermediate /app .
Docker秘密コマンドの使用
以下のようにキャッシュしないで機密ファイルをマウントするための秘密を管理するためのdockerのアルファ機能を使用します.
# syntax = docker/dockerfile:1.0-experimental
FROM alpine
# shows secret from default secret location
RUN --mount=type=secret,id=mysecret cat /run/secrets/mysecre
# shows secret from custom secret location
RUN --mount=type=secret,id=mysecret,dst=/foobar cat /foobar
再帰コピーに注意してください
ビルドされているイメージにファイルをコピーするときにも、気をつけなければなりません.
たとえば、次のコマンドは、ビルドコンテキストフォルダー全体を再帰的にDockerイメージにコピーします.
COPY . .
あなたのフォルダに敏感なファイルがある場合は、削除するか、.dockerignore
を使用して無視してください.private.key
appsettings.json
オリジナルのブログ記事は、以下を参照してくださいスニペットのような高解像度印刷可能なPDFが含まれています.Check it outReference
この問題について(あなたはDocker画像を構築していますか?ここでは、Docker画像に敏感な情報を漏らすことを避ける方法があります), 我々は、より多くの情報をここで見つけました https://dev.to/lirantal/are-you-building-docker-images-here-s-how-to-avoid-leaking-sensitive-information-into-docker-images-99gテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol