[RUBY] Produktionsumgebung und Anmeldeinformationen.yml.enc

Was ich in diesem Artikel vermitteln möchte

** Prüfen Sie sorgfältig **, bevor Sie vertrauliche Informationen in Ihrer Produktionsumgebung mit Anmeldeinformationen behandeln. Absolut keine Kopie.

Grundkenntnisse Über Ver- und Entschlüsselung

** ~ Entwicklungsumgebung ~ **

$Konfiguration bei neuen Schienen/master.Anmeldeinformationen mit Schlüssel.yml.enc scheint erstellt zu sein.


 Verwenden Sie dann diesen master.key zum Ver- und Entschlüsseln.
 (Bewahren Sie den master.key an einem sicheren Ort auf.)

 Führen Sie den folgenden Befehl aus, um die vertraulichen Informationen zu bearbeiten.

$ rails credentials:edit #master.Wenn der Schlüssel nicht vorhanden ist, führen Sie ihn aus, um einen neuen zu erstellen.



 ** ~ Produktionsumgebung ~ **
 Sie benötigen außerdem secret_key_base zum Ver- und Entschlüsseln.
 Erstellen Sie es lokal, indem Sie den Befehl `` $ rails secret``` ausführen.
 Platzieren Sie den lokalen master.key vorab auf dem Server.

# Seien Sie in der Produktionsumgebung vorsichtig
 Ich habe bereits erwähnt, dass master.key zum Ver- und Entschlüsseln von credentials.yml.enc verwendet wird. Diese master.key wird nicht von Git verwaltet, da sie standardmäßig in gitignore registriert ist.

 Es ist wichtig von hier.
 Selbst wenn Sie das Git-Repository mit EC2 klonen, wird dieser master.key nicht selbstverständlich auf den Server übertragen.
 Wenn ich das vergesse und versuche, die geheimen Informationen der Produktionsumgebung hinzuzufügen und den Befehl `` `$ rails credentials: edit``` auszuführen ... Da auf dem Server keine master.key vorhanden ist, wird sie neu generiert. ..

 Zu diesem Zeitpunkt unterscheiden sich die lokale master.key und die server master.key, und credentials.yml.enc kann nicht entschlüsselt werden. Oh, es ist schwer.

Couldn't decrypt config/credentials.yml.enc. Perhaps you passed the wrong key?

 Ein solcher Fehler,

ActiveSupport::MessageEncryptor::InvalidMessage


 Ich bekomme diesen Fehler.

## Ich möchte die Anmeldeinformationen erneut entschlüsseln
 Sie müssen lediglich die lokale Datei master.key auf dem Server ablegen.


 Wenn Sie master.key verlieren, löschen Sie config / credentials.yml.enc und verwenden Sie den folgenden Befehl
 Es scheint ein neues zu erzeugen.
 Bitte beachten Sie jedoch, dass der gesamte Inhalt der Anmeldeinformationen weggeblasen wird.

$ sudo EDITOR=vim rails credentials:edit


# Schienen 6 oder höher und credentilas.yml.enc
 Ab 6 können vertrauliche Informationen für jede Umgebung getrennt werden. (Feier)

 Wenn Sie Informationen in die Produktionsumgebung einfügen möchten, führen Sie den folgenden Befehl aus.
 Ändern Sie nach Umgebung entsprechend der Umgebung.

$ rails credentials:edit --environment production


 Dieser Befehl erstellt config / credentials / Production.yml.enc und config / credentials / Production.key. Die entsprechende Umgebung wird im Dateinamen bzw. im Schlüsselnamen beschrieben.
 Sie müssen dem Server nur Production.key geben.

 Seien Sie auch in diesem Fall vorsichtig, wenn Sie mit master.key und secret_key_base umgehen.




# Referenz
 [ActiveSupport :: MessageEncryptor :: InvalidMessage in Rails 5.2](https://qiita.com/scivola/items/cc06ddbfd94d3118f693)

 [Kihon of credentials.yml.enc aus Rails 5.2 hinzugefügt](https://qiita.com/NaokiIshimura/items/2a179f2ab910992c4d39)

 [Verwalten von Kennwörtern mit neuen Funktionen von Rails 5.2, z. B. Anmeldeinformationen](https://thr3a.hatenablog.com/entry/20180408/1523156956)

 [[Ruby / Rails] Automatisieren Sie die Bereitstellungsarbeit mit Capistrano](https://shikiyura.stars.ne.jp/blog/mac/ruby_rails-automate-deployment-by-capistrano/)

[Add support for multi environment credentials.](https://github.com/rails/rails/pull/33521)


 [Anmeldeinformationen für mehrere Umgebungen aus Rails 6 verwenden](http://saku.hatenadiary.com/entry/2019/11/05/093755)






Recommended Posts

Produktionsumgebung und Anmeldeinformationen.yml.enc
[Hinweis] Update auf Produktionsumgebung [Heroku]
Erstellen Sie eine Datenbank in einer Produktionsumgebung
Erstellen einer Rails 6- und PostgreSQL-Umgebung mit Docker
Was ist Java und Entwicklungsumgebung (MAC)
Das Bild wird in der Produktionsumgebung nicht angezeigt
[Rails] Setzen Sie die Datenbank in der Produktionsumgebung zurück
Installieren Sie Docker und erstellen Sie eine Java-Ausführungsumgebung
Zusammenfassung der Umgebungskonstruktion mit rvm und postgresql
Minimale Java-Umgebungskonstruktion und Hello World