Передача переменных среды AWS S3 в докер с помощью R-скрипта

У меня есть dataframe, который я бы хотел написать в S3 bucker. Для этой задачи я использую aws.s3 . Мой скрипт выглядит следующим образом.

library(aws.s3)

# set up AWS credentials
Sys.setenv("AWS_ACCESS_KEY_ID" = "ASUPERSECRETSTRING",
           "AWS_SECRET_ACCESS_KEY" = "ASUPERSECRETSTRING",
           "AWS_DEFAULT_REGION" = "us-east-somwhere")

s3write_using(my_data, FUN = write.csv,
          bucket = "www.My_bucket",
          object = unique_name) 

У меня нет никаких проблем с вышеупомянутым скриптом, но мне не нравится жесткое кодирование моих учетных данных AWS. Что я могу сделать, чтобы предотвратить это?

Всего 1 ответ


Передайте команду ENV в команду запуска докеров

sudo docker run -dit -e AWS_ACCESS_KEY_ID='your_key' -e AWS_SECRET_ACCESS_KEY='your_secret' -e AWS_DEFAULT_REGION='bucket_region' busybox sh

Затем немного измените свой сценарий.

  test_env=Sys.getenv(c("R_HOME"))
  AWS_ACCESS_KEY_ID=Sys.getenv("AWS_ACCESS_KEY_ID");
  AWS_SECRET_ACCESS_KEY=Sys.getenv("AWS_SECRET_ACCESS_KEY")
  AWS_SECRET_ACCESS_KEY=Sys.getenv("AWS_DEFAULT_REGION")
  message("test env is:",test_env) 

Выше код получит env, а также один тест env. Если вам еще нужно позвонить Sys.setenv, вы можете пройти так, как только вы получите env.

Sys.setenv("AWS_ACCESS_KEY_ID" = AWS_ACCESS_KEY_ID,
           "AWS_SECRET_ACCESS_KEY" = AWS_SECRET_ACCESS_KEY,
           "AWS_DEFAULT_REGION" = AWS_SECRET_ACCESS_KEY)

Есть идеи?

10000