Как получить доступ к значению СЕКРЕТОВ в Github Actions?
Я пытаюсь получить доступ к значению SECRET
отправлено на GitHub Action, но я борюсь. Значения возвращаются как [FILTERED]
каждый раз, независимо от того, какой ключ или оригинальное значение.
Я могу получить доступ ENVIRONMENT VARIABLES
без проблем, поэтому я, должно быть, облажался где-то еще.
По сути, я пытаюсь отправить ssh-ключ к своему действию / контейнеру, но у меня возникает та же проблема при отправке любого другого ключа / значения в качестве секрета.
Мое (упрощенное) действие GitHub выглядит следующим образом:
action "Test" {
uses = "./.github/actions/test"
secrets = [
"SSH_PRIVATE_KEY",
"SSH_PUBLIC_KEY",
]
env = {
SSH_PUBLIC_KEY_TEST = "thisisatestpublickey"
}
}
Dockerfile:
FROM ubuntu:latest
# Args
ARG SSH_PRIVATE_KEY
ARG SSH_PUBLIC_KEY
ARG SSH_PUBLIC_KEY_TEST
# Copy entrypoint
ADD entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
entrypoint.sh:
#! /bin/sh
SSH_PATH="$HOME/.ssh"
mkdir "$SSH_PATH"
touch "$SSH_PATH/known_hosts"
echo "$SSH_PRIVATE_KEY" > "$SSH_PATH/id_rsa"
echo "$SSH_PUBLIC_KEY" > "$SSH_PATH/id_rsa.pub"
echo "$SSH_PUBLIC_KEY_TEST" > "$SSH_PATH/id_rsa_test.pub"
cat "$SSH_PATH/id_rsa"
cat "$SSH_PATH/id_rsa.pub"
cat "$SSH_PATH/id_rsa_test.pub"
Выход этих трех cat
Команды это:
[FILTERED]
[FILTERED]
thisisatestpublickey
Как видите, я могу получить (и использовать) значение переменных среды, но секреты не раскрываются.
У кого-нибудь есть какие-нибудь подсказки?
Просто чтобы обновить это, я также просто попытался повторить оба секрета без кавычек в entrypoint.sh:
echo $SSH_PRIVATE_KEY
echo $SSH_PUBLIC_KEY
... и в журнале я вижу полный расшифрованный контент $SSH_PRIVATE_KEY
(т.е. фактическое содержимое моего ключа SSH) в то время как $SSH_PUBLIC_KEY
все еще возвращается [FILTERED]
,
Итак, я могу предположить, что мы можем видеть содержимое секретов внутри действия, но я не знаю, почему я вижу только один из них, в то время как другой возвращается [FILTERED]
,
Может быть, это кеширование?
Я просто пытаюсь найти предсказуемый способ работы с этим.
1 ответ
Как видите, я могу получить (и использовать) значение переменных среды, но секреты не раскрываются.
Это потому что они секреты. Вывод Actions явно очищается для секретов, и они не отображаются.
Содержимое файла по-прежнему содержит секретное содержимое.