Как получить доступ к значению СЕКРЕТОВ в 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 явно очищается для секретов, и они не отображаются.

Содержимое файла по-прежнему содержит секретное содержимое.

Другие вопросы по тегам