Chiffrement des données utilisateur AWS EC2
Nous avons l'habitude de prendre des entrées qui incluent le mot de passe de l'utilisateur et de les transmettre sur l'instance EC2. De avec dans l'instance Ec2, nous avons frappé l'URL -http://169.254.169.254/latest/user-data/ et obtenez les données utilisateur et définissez les mots de passe appropriés.
Le problème est que les données utilisateur sont visibles par l'outil AWS CLI:
aws ec2 describe-instance-attribute --instance-id --attribute userData --output text --query "UserData.Value" | base64 --decode
Cela impose un risque de sécurité énorme.
Quelle est la meilleure façon d'envoyer des données sensibles / secrètes?
J'ai essayé de créer une paire de clés, qui crée la clé privée sur l'instance locale et la clé publique sur EC2. Quelle serait la bonne façon de chiffrer / déchiffrer à l'aide de PowerShell et de le récupérer dans EC2?
Réponses
L'approche suggérée serait de stocker tous les secrets dans une source externe.
AWS dispose d'un service de stockage des secrets, Secrets Manager . En utilisant ce service, vous créeriez un secret contenant les secrets auxquels votre instance devra accéder dans ses données utilisateur. Attribuez ensuite à votre instance un rôle IAM avec des privilèges pour obtenir la valeur secrète, via l'AWS CLI .
Vous pouvez également utiliser le service AWS SSM Parameter Store , en stockant les secrets en tant que type SecureString . Cela fonctionnerait de la même manière que le gestionnaire de secrets, vous récupérant le secret via l'AWS CLI , puis l'utilisant dans votre script.
Il existe également des solutions tierces telles que Hashicorp Vault qui fournissent des fonctionnalités similaires si vous ne souhaitez pas stocker vos secrets dans une solution AWS.