Ceci est une continuation de l'article précédent (https://qiita.com/ysda/items/49fa6e8318c874a57b9e).
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!
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.
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.
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
Le flux de référencement des variables d'environnement est le suivant.
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!