Не удается заставить работать учетные данные Rails 5.2 при попытке скрыть ключи / секреты AWS и JWT.Не получаю метод для ноля - PullRequest
0 голосов
/ 18 марта 2019

Я тратил часы на это, но не могу найти какие-либо решения.Я просмотрел документы, чтобы увидеть, что мне не хватает, но ничего не могу найти.

Я использую JWT и ActiveStorage с Amazon S3.Мне нужно спрятать эти ключи, прежде чем я смогу совершить коммит в Github.Следуя многочисленным примерам, вот как выглядит мой файл credentials.yml.enc:

amazon:
key: <my access key for AWS S3>
secret: <my secret id for AWS S3>

jwt: <my jwt token encode/decode password>

Затем я сохраняю его в своем файле storage.yml:

test:
  service: Disk
  root: <%= Rails.root.join("tmp/storage") %>

local:
  service: Disk
  root: <%= Rails.root.join("storage") %>

# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
amazon:
  service: S3
  access_key_id: <%= Rails.application.credentials[:amazon][:key] %>
  secret_access_key: <%= Rails.application.credentials[:amazon][:secret] %>
  region: us-east-1
  bucket: your_own_bucket

Я также пытался

<%= Rails.application.credentials[Rails.env.to_sym][:amazon][:key] %>

Если я иду на консоль и пробую Rails.application.credentials[:amazon][:key] или Rails.application.credentials.amazon[:key] или любые другие варианты, это всегда ноль.

Rails.application.credentials

дает мне:

 => #<ActiveSupport::EncryptedConfiguration:0x00007faf1284aa80 
@key_path=#<Pathname:/Users/demiansims/Development/Beastly/beastly- 
backend/config/master.key>, @content_path=# 
<Pathname:/Users/demiansims/Development/Beastly/beastly- 
backend/config/credentials.yml.enc>, @env_key="RAILS_MASTER_KEY", 
@raise_if_missing_key=false, @encryptor=# 
<ActiveSupport::MessageEncryptor:0x00007faf1287bb80 
@secret=">^\x04\x9Bh\xFEb\x00\x8B\xB3O5\xDC\x8E\xA6b", 
@sign_secret=nil, @cipher="aes-128-gcm", @aead_mode=true, 
@verifier=ActiveSupport::MessageEncryptor::NullVerifier, 
@serializer=Marshal, @options={:cipher=>"aes-128-gcm"}, @rotations=[]>, 
@config={}

1 Ответ

0 голосов
/ 19 марта 2019

Я думаю, что есть проблема в формате вашего credentials.yml.enc, она должна выглядеть следующим образом:

amazon:
  key: <my access key for AWS S3>
  secret: <my secret id for AWS S3>
  jwt: <my jwt token encode/decode password>

Таким образом, вы можете получить доступ к своему ключу, как Rails.application.credentials.amazon[:key]

...