[RUBY] [Rails] Gérez les clés secrètes, etc. avec credentials.yml

introduction

Voici un mémorandum sur les informations d'identification apparues dans la série Rails 5.

Que sont les informations d'identification?

C'est un fichier pour stocker la clé privée, etc.

Le contenu de ce fichier est chiffré par master.key, de sorte que quiconque ne connaît pas le master.key correct ne peut pas voir le contenu.

Le contenu des informations d'identification peut être appelé en tant que variables dans d'autres fichiers s'il y a des informations sur master.key, il peut donc être pratique de mettre la clé API, etc. dans ce fichier.

Les fichiers master.key et credentials sont créés automatiquement lorsque vous rails new, et master.key est dans .gitignore par défaut, vous n'avez donc pas à vous soucier de sa fuite hors de github.

Préparation préalable

Cette fois, on suppose que VScode sera utilisé.

Tout d'abord, ouvrez la palette avec commande + shift + P dans VScode. Tapez ensuite shell dans la zone de recherche pour installer le shell.

Vous pouvez maintenant modifier le fichier d'informations d'identification avec VScode à partir du terminal.

Comment régler

Ouvrez le fichier d'informations d'identification dans VScode avec la commande suivante.

Terminal


$ EDITOR='code --wait' rails credentials:edit

Par défaut, les trois premières lignes ont un exemple commenté, vous pouvez donc le copier.

yml:xxxxx.credentials.yml


aws:
  access_key_id: 123
  secret_access_key: 345q

La première ligne décrit de quel type de groupe il s'agit, et les deuxième et troisième lignes décrivent l'identifiant et la clé d'accès. Le contenu du groupe doit être indenté.

Vous pouvez définir plusieurs paramètres au lieu d'un seul, alors essayez de les définir.

yml:xxxxx.credentials.yml


aws:
  access_key_id: 123
  secret_access_key: 345q

gmail:
  email: '[email protected]'
  password: 'sample1234'

sauvegarder

Vous devez fermer l'onglet VScode pour enregistrer le fichier d'informations d'identification. S'il est correctement fermé et enregistré, le message suivant sera affiché dans le terminal. New credentials encrypted and saved.

Comment appeler

Pour appeler le contenu, écrivez ce qui suit dans le fichier ruby.

Rails.application.credentials[:nom de groupe][:Contenu]

Dans cet exemple, il peut être utilisé comme suit.

Rails.application.credentials[:aws][:access_key_id]
Rails.application.credentials[:gmail][:email]

Vous pouvez le vérifier à partir du terminal sur la console, c'est donc une bonne idée de le vérifier lorsque vous modifiez le fichier d'informations d'identification. Ouvrez la console avec rails c et vérifiez-la. cb6ac75e17de6feb8c00047fc7b39d02.png Vous pouvez l'appeler correctement.

Mise en garde

En partageant master.key, par exemple lors du développement d'une équipe, d'autres personnes peuvent voir et modifier le contenu des informations d'identification. Je pense que c'est une bonne idée de partager master.key avec une application de messagerie.

Cependant, même si vous êtes un compagnon de confiance, vous ne devez pas partager l'identifiant aws et la clé d'accès que vous avez personnellement avec les informations d'identification. (Considérez cela comme le partage de votre numéro de carte de crédit et de votre code de vérification.)

Décidez soigneusement quelles informations vous devez partager et ce que vous ne devriez pas. Ne regrettez pas d'avoir été trahi et de vous développer comme Kaiji! Lol

Recommended Posts

[Rails] Gérez les clés secrètes, etc. avec credentials.yml
[Rails] Gérons les constantes avec config gem
[Rails 6] Erreur d'exécution avec $ rails s
Manipuler le dispositif avec des rails
[Rails] Didacticiel Apprendre avec les rails
[Rails] Test avec RSpec
[Rails] Développement avec MySQL
Prend en charge la multilinguisme avec Rails!