[RUBY] Modifiez la destination d'enregistrement de l'image en S3 dans l'application Rails. Partie 2

introduction

Ceci est une continuation de l'article précédent (https://qiita.com/ysda/items/49fa6e8318c874a57b9e).

Être capable de gérer les clés AWS en toute sécurité

Pour empêcher la fuite de la clé AWS, définissez le contenu de la clé dans une variable d'environnement. Si vous ne connaissez pas les variables d'environnement, allez-y!

Paramètre de clé AWS

Il y avait une description telle que [: access_key_id] et [: secret_access_key] dans carrierwave.rb. Une clé prédéfinie est saisie ici, et dans Rails 5.2, elle est gérée par un fichier appelé "credentials.yml.enc".

Maintenant, ouvrons credentials.yml.enc dans un éditeur. Vous devriez voir une chaîne chiffrée comme indiqué ci-dessous. スクリーンショット 2020-07-26 23.23.21.png

Réglez ceci pour que VS Code puisse être lancé à partir du terminal. Dans VSCode, appuyez sur "Commande + Maj + P" en même temps pour ouvrir la palette de commandes. Entrez ensuite "shell". Dans le menu, l'item "Commande Install'code 'dans PATH" s'affiche. Cliquez dessus. En faisant cela, vous pouvez démarrer VS Code en tapant "code" à partir du terminal.

Maintenant, exécutons la commande suivante à partir du terminal. Le fichier credentials.yml.enc déchiffré doit être visible dans VSCode et modifiable.

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

Modifiez AWS access_key_id et secret_access_key comme suit. dcEU4PX7s6ICcTD1595774207_1595774265.png

paramètres master.key

credentials.yml.enc décrypte avec un fichier appelé master.key. Cependant, placer master.key dans un environnement de production pose un problème de sécurité. Par conséquent, définissons le contenu de master.key dans la variable d'environnement de l'environnement de production.

Connectez-vous à l'instance EC2 et ouvrez le fichier qui définit les variables d'environnement.

sudo vim /etc/environment

Copiez la valeur de "config / master.key" dans votre environnement de développement local et définissez-la sur RAILS_MASTER_KEY dans votre environnement de production.

RAILS_MASTER_KEY='master.valeur de la clé'

Maintenant que vous avez défini les variables d'environnement, reconnectez-vous à l'instance EC2 et vérifiez les variables d'environnement avec la commande suivante.

env | grep RAILS_MASTER_KEY

Résumé

Le flux de référencement des variables d'environnement est le suivant.

  1. Décryptez credentials.yml.enc avec master.key dans l'environnement local
  2. Modifiez credentials.yml.enc et définissez access_key_id et secret_access_key.
  3. Déployer dans l'environnement de production
  4. Définissez le contenu de master.key dans la variable d'environnement de l'environnement de production.
  5. L'environnement de production credentials.yml.enc peut être déchiffré à l'aide des variables d'environnement.

Avec l'article précédent et les paramètres ci-dessus, vous devriez pouvoir télécharger des images sur S3! Peut-être! c'est tout!

Recommended Posts

Modifiez la destination d'enregistrement de l'image en S3 dans l'application Rails. Partie 2
Comment changer le nom de l'application dans les rails
Télécharger le fichier image de l'application Rails sur S3
[Ruby on Rails] Changez la destination de sauvegarde du recueil de gemmes * Remarque
[Ruby on Rails] Comment faire de la destination du lien une partie de l'ID spécifié
[Rails] Comment changer le nom de colonne de la table
[Rails] Comment afficher les images dans la vue
[Rails] Je souhaite afficher la destination du lien de link_to dans un onglet séparé
[Rails] Où faire attention dans la description de la validation
[Rails] Comment changer le titre de la page du navigateur pour chaque page
Je veux changer la valeur de l'attribut dans Selenium of Ruby
Modifier le fuseau horaire par défaut de l'application rails
L'identité des paramètres de rails [: id]
[Rails] Changer le nom de l'étiquette de f.label
Rails6: Extraire l'image dans le texte d'action
Comment modifier le nombre maximum et maximum de données POST dans Spark
Comment changer la valeur d'une variable à un point d'arrêt dans intelliJ
[Rails] La cause de l'impossibilité de publier des messages était form_with
[Rails] Comment appliquer le CSS utilisé dans l'application principale avec Administrer
[Rails] Comment décider de la destination par "voies ferrées"
[Order method] Définit l'ordre des données dans Rails
Bouton [Rails] pour revenir en haut de la page
J'ai essayé d'organiser la session en Rails
[Rails] Obtenez le nom du chemin de l'URL avant la transition et modifiez la destination du lien
[Swift] Comment changer l'ordre des éléments de barre dans le contrôleur de barre d'onglets [Débutant]
Changer le fuseau horaire du conteneur https-portal en JST
[Rails5.2] Prise en charge des pictogrammes de Mysql 5.7 dans Docker (changez le code de caractère en utf8mb4)
Comment utiliser JQuery dans Rails 6 js.erb
Modifier le dossier de placement de l'image et du conteneur Docker
Comment vérifier les commandes Rails dans le terminal
[rails] Option After utile lorsque vous souhaitez modifier l'ordre des colonnes DB
Comment installer Docker dans l'environnement local d'une application Rails existante [Rails 6 / MySQL 8]
Pour ceux qui souhaitent utiliser MySQL pour la base de données dans la construction de l'environnement de Rails6 ~.
[AWS Lambda] Redimensionner l'image enregistrée dans S3 et l'enregistrer dans un autre S3 (à l'aide de Ruby)
Installez plusieurs boutons de soumission dans la vue Rails pour obtenir la valeur du bouton enfoncé
Bibliothèque non chargée lors de la tentative de mise à niveau de la version ruby et des rails s
La partie à laquelle j'étais accro dans "Introduction à Ajax dans les applications Web Java" de NetBeans
Obtenez l'URL de la destination de la redirection HTTP en Java
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
[Ruby on Rails] Comment changer le nom de la colonne
Comprendre les caractéristiques de Scala en 5 minutes (Introduction à Scala)
Je veux connaître la réponse de l'application Janken
[Rails 6] Comment définir une image d'arrière-plan dans Rails [CSS]
Modifier la qualité de stockage des images JPEG en Java
[Rails] Comment obtenir le contenu des paramètres forts
Comment juger le clic de n'importe quelle zone de l'image
SSL dans l'environnement local de Docker / Rails / puma
Obtenez l'URL de la destination de la redirection HTTP dans Ruby
Changer la signature de build de débogage de l'application Android en signature de version est utile à bien des égards.
Je souhaite changer la couleur du menu de contrôle en haut de Liferay 7 / DXP
L'histoire de la montée de Spring Boot de la série 1.5 à la série 2.1 part2
[Rails] Comment enregistrer temporairement l'URL de demande d'un utilisateur qui n'est pas connecté et revenir à cette URL après la connexion