Как получить доступ к значению СЕКРЕТОВ в Github Actions? - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь получить доступ к значению SECRET s, отправляемому в 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 Ответ

0 голосов
/ 03 февраля 2019

Как видите, я могу получить (и использовать) значение переменных среды, но секреты не раскрываются.

Это потому, что они секреты.Вывод Actions явно очищается для секретов, и они не отображаются.

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

...