Transférer des données sensibles vers un conteneur Amazon ECS - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Transférer des données sensibles vers un conteneur Amazon ECS

Vous pouvez transmettre en toute sécurité des données sensibles, telles que des informations d'identification vers une base de données, dans votre conteneur.

Les secrets, tels que les clés d'API et les informations d'identification de base de données, sont fréquemment utilisés par les applications pour accéder à d'autres systèmes. Ils se composent souvent d'un nom d'utilisateur et d'un mot de passe, d'un certificat ou d'une clé d'API. L'accès à ces secrets doit être limité à des principaux IAM spécifiques qui utilisent IAM et injectés dans des conteneurs lors de l'exécution.

Les secrets peuvent être injectés facilement dans des conteneurs à partir AWS Secrets Manager d'Amazon EC2 Systems Manager Parameter Store. Ces secrets peuvent être référencés dans votre tâche de l'une des manières suivantes.

  1. Ils sont référencés en tant que variables d'environnement qui utilisent le paramètre de définition du conteneur secrets.

  2. Ils sont référencés comme secretOptions si votre plateforme de journalisation nécessite une authentification. Pour plus d'informations, veuillez consulter Options de configuration de la journalisation (langue française non garantie).

  3. Ils sont référencés comme des secrets extraits par des images qui utilisent le paramètre de définition de conteneur repositoryCredentials si le registre d'où le conteneur est extrait nécessite une authentification. Utilisez cette méthode lors de l'extraction d'images depuis la Galerie publique Amazon ECR. Pour plus d'informations, veuillez consulter Authentification de registre privé pour les tâches (langue française non garantie).

Nous vous recommandons d'effectuer les opérations suivantes lorsque vous configurez la gestion des secrets.

Utiliser AWS Secrets Manager ou AWS Systems Manager Parameter Store pour stocker des documents secrets

Vous devez stocker en toute sécurité les clés d'API, les informations d'identification de base de données et les autres éléments secrets dans Secrets Manager ou sous forme de paramètre chiffré dans le magasin de paramètres de Systems Manager. Ces services sont similaires car il s'agit tous deux de magasins de valeurs clés gérés utilisés AWS KMS pour chiffrer des données sensibles. Cependant, Secrets Manager inclut également la possibilité de faire pivoter automatiquement les secrets, de générer des secrets aléatoires et de partager des secrets entre les comptes. Si ces fonctionnalités sont importantes, utilisez Secrets Manager, sinon utilisez des paramètres chiffrés.

Important

Les secrets référencés dans les tâches ne font pas l'objet d'une rotation automatique. Si votre secret change, vous devez forcer un nouveau déploiement ou lancer une nouvelle tâche pour récupérer la dernière valeur secrète. Pour plus d’informations, consultez les rubriques suivantes :

Extraire les données d'un compartiment Amazon S3 chiffré

Vous devez stocker les secrets dans un compartiment Amazon S3 chiffré et utiliser des rôles de tâches pour restreindre l'accès à ces secrets. Cela évite que la valeur des variables d'environnement ne soit divulguée par inadvertance dans les journaux et ne soit révélée lors de l'exécution. docker inspect Dans ce cas, votre application doit être écrite pour lire le secret du compartiment Amazon S3. Pour obtenir des instructions, veuillez consulter Définition du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3.

Montez le secret sur un volume à l'aide d'un conteneur sidecar

Comme le risque de fuite de données lié aux variables d'environnement est élevé, vous devez utiliser un conteneur annexe qui lit vos secrets AWS Secrets Manager et les écrit sur un volume partagé. Ce conteneur peut s'exécuter et sortir avant le conteneur d'applications en utilisant le système de commande de conteneurs Amazon ECS. Ainsi, le conteneur de l'application monte ensuite le volume dans lequel le secret a été écrit. À l'instar de la méthode du compartiment Amazon S3, votre application doit être écrite pour lire le secret du volume partagé. Le volume étant limité à la tâche, il est automatiquement supprimé après l'arrêt de la tâche. Pour un exemple de conteneur sidecar, consultez le aws-secret-sidecar-injectorprojet.

Sur Amazon EC2, le volume sur lequel le secret est écrit peut être chiffré à l'aide d'une clé AWS KMS gérée par le client. Activé AWS Fargate, le stockage en volume est automatiquement chiffré à l'aide d'une clé gérée par le service.