programing

도커: CLI를 통해 --password를 사용하는 것은 안전하지 않습니다.--password-stdin 사용

iphone6s 2023. 8. 5. 09:58
반응형

도커: CLI를 통해 --password를 사용하는 것은 안전하지 않습니다.--password-stdin 사용

CI(Continuous Integration) 프로세스 중에 레지스트리에 로그인하면 다음 경고가 표시됩니다.

WARNING! Using --password via the CLI is insecure. Use --password-stdin.

제가 그냥 교체해야 할까요?--password와 함께--password-stdin?

도커 설명서에 따르면:

도커 로그인 명령을 대화형이 아닌 방식으로 실행하려면 다음과 같이 설정할 수 있습니다.--password-stdinSTDIN을 통해 암호를 제공하는 플래그입니다. STDIN을 사용하면 암호가 셸의 기록 또는 로그 파일로 끝나는 것을 방지할 수 있습니다.

다음 예제에서는 파일에서 암호를 읽고 STDIN을 사용하여 이 암호를 도커 로그인 명령으로 전달합니다.

$ cat ~/my_password.txt | docker login --username foo --password-stdin

또는

$ docker login --username foo --password-stdin < ~/my_password

다음 예제에서는 변수에서 암호를 읽고 STDIN을 사용하여 이 암호를 도커 로그인 명령으로 전달합니다.

$ echo "$MY_PASSWORD" | docker login --username foo --password-stdin

동일echo윈도우즈 기반 시스템의 명령(또는 vs2017-win2016에 기반한 Azure Pipeline 태스크에서 실행되는 경우)도 추가적인 새 줄을 출력합니다.

사용할 수 있는 해결 방법set /p참고 항목: 질문 + 답변.

전체 명령은 다음과 같습니다.
echo | set /p="my_password" | docker login --username foo --password-stdin

파워셸을 사용한 Windows 10 솔루션:

메모장을 사용하여 암호로 한 줄 텍스트 파일을 만듭니다.아래 명령줄이 작동하도록 파일 이름이 "password1.txt"로 지정되었습니다.
이 파일을 파워셸에서 사용 중인 폴더에 저장합니다(...일반적으로 C:\사용자\_사용자 이름).

Get-Content password1.txt | docker login --username my_username --password-stdin

Windows PowerShell에서 표준 입력\출력 리디렉션을 참조하십시오.

github 작업 설정:

echo ${{ secrets.DOCKER_TOKEN }} | docker login --username ${{ secrets.DOCKER_USERNAME }} --password-stdin

이것은 AWS를 사용할 때 흔히 발생하는 경고입니다.이 경우 명령이 기록에 저장되도록 명령을 명시적으로 실행하지 않는 것이 문제에 대한 다른 해결책일 수 있습니다.이를 위해 (aWS2와 함께)를 사용할 수 있습니다.

eval $(aws2 ecr get-login --no-include-email)

경고가 계속 표시되더라도 키/암호가 포함된 명시적 도커 명령은 bash 기록에 저장되지 않습니다.납득할 수 없는 경우 실행해 보십시오.history직접 확인할 수 있는 명령입니다.

Windows 배치의 경우(PowerShell을 사용하지 않는 경우):

type password.txt | docker login --username foo --password-stdin

언급URL : https://stackoverflow.com/questions/51489359/docker-using-password-via-the-cli-is-insecure-use-password-stdin

반응형