Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Railsアプリで秘匿情報を環境変数からCredentialsに移行した話

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for pokohide pokohide
November 15, 2023
620

 Railsアプリで秘匿情報を環境変数からCredentialsに移行した話

Avatar for pokohide

pokohide

November 15, 2023
Tweet

Transcript

  1. λΠϛʔͷ࣮੷ εΩϚ όΠτ No.1 ※203೥10݄࣌఺ɹ˞1 [ௐࠪํ๏]σεΫϦαʔνٴͼώΞϦϯάௐࠪ [ௐࠪظؒ]2021೥2݄8೔~22೔ [ௐࠪ֓ཁ]εΩϚόΠτ ΞϓϦαʔϏεͷ࣮ଶௐࠪ [ௐࠪର৅]2020೥12݄·ͰʹαʔϏεΛ։͍࢝ͯ͠ΔεΩϚόΠτΞϓϦ10αʔϏε

    [ௐ࣮ࠪࢪ] גࣜձࣾγϣούʔζΞΠɹ˞2 [ग़య]AppStoreϥΠϑελΠϧΧςΰϦʔϥϯΩϯάʢ2021೥5݄࣌఺ʣ 5 ྦྷܭٻਓҊ݅਺ ɾμ΢ϯϩʔυ਺ ※1 ※2 ಋೖࣄۀऀ਺ 66,000اۀ ϫʔΧʔ਺ 600ສਓ
  2. 6

  3. 7

  4. Credentialsͱ͸ • Rails 5.2͔Β௥Ճ͞Εͨൿಗ৘ใΛ؅ཧ͢ΔͨΊͷ࢓૊Έ ◦ Add credentials using a generic

    EncryptedConfiguration class #30067 • Rails 6͔Βෳ਺ͷ؀ڥΛαϙʔτ ◦ Add support for multi environment credentials. #33521
  5. Credentialsͱ͸ • ओͳొ৔ਓ෺ ◦ ҉߸ԽϑΝΠϧɿ config/credentials/<environment>.yml.enc ◦ ෮߸༻ͷ伴ɿ ENV[”RAILS_MASTER_KEY”] or

    config/credentials/<environment>.key • RailsΞϓϦىಈ࣌ʹ Rails.env ʹରԠ͢Δ҉߸ԽϑΝΠϧͱ伴Λࢀর͠ɺ ෮߸͢Δ • Rails.application.credentials ܦ༝ͰऔಘՄೳʹͳΔ
  6. Ҡߦͷखॱ • ίʔυΛENVͰgrepͨ͠ΓɺECSͷλεΫఆٛͷ؀ڥม਺ΛϦετΞοϓ • ൿಗ৘ใʹ͸ূ໌ॻ΍ൿີ伴ɺGoogleCloudͷJSONΩʔͳͲ΋͋Δ • Ҡߦ͢Δ͔ͷ؍఺ʢྫʣ ◦ ͦ΋ͦ΋ൿಗ৘ใ͔ →

    ؀ڥຖͷݻ༗ͷઃఆͳΒ config_for Ͱ΋ྑ͍͔΋ ◦ ίϯςφԽ͞Εͨ؀ڥຖʹಈతʹ஫ೖ͍ͨ͠΋ͷ͔ ◦ සൟʹߋ৽͢Δ৘ใ͔ʢྫ͑͹PORT൪߸ͱ͔༰қʹม͍͑ͨ৔߹͕͋Δ͔΋͠Εͳ͍ʣ
  7. ͍͞͝ʹ ΍ͬͺΓϨϏϡʔ͸େม • ҉߸Խ͞Ε͍ͯΔͨΊɺ෮߸ͨ݁͠ՌΛݟͳ͍ͱࠩ෼͸෼͔Βͳ͍ • ҉߸ԽϑΝΠϧͷdiffΛݟΕΔΑ͏ʹ͢Δ bin/rails credentials:diff ͕ެࣜαϙʔ τ͞Ε͍ͯΔ

    ◦ Railsͷ࣮ߦ؀ڥ͔Βgitૢ࡞Ͱ͖Δඞཁ͕͋Δ ◦ ։ൃ؀ڥʹDockerΛ༻͍ͯϗετଆͰgitૢ࡞͍ͯ͠ΔͷͰɺ͜ͷͨΊʹίϯςφʹgitΛೖΕΔ ͔ݕ౼த