View a markdown version of this page

Pilier de sécurité - AWS Directives prescriptives

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.

Pilier de sécurité

La sécurité du cloud AWS est la priorité absolue. En tant que AWS client, vous bénéficiez d'un centre de données et d'une architecture réseau conçus pour répondre aux exigences des entreprises les plus sensibles en matière de sécurité.

La sécurité est une responsabilité partagée entre vous AWS et vous. Le modèle de responsabilité partagée décrit ceci en tant que sécurité du cloud et sécurité dans le cloud :

Le pilier de sécurité vous aide à comprendre comment appliquer le modèle de responsabilité partagée lors de l'utilisation de Neptune. Les rubriques suivantes expliquent comment configurer Neptune pour répondre à vos objectifs de sécurité et de conformité. Vous apprendrez également à utiliser d'autres outils Services AWS qui vous aideront à surveiller et à sécuriser vos ressources Neptune.

Le pilier de sécurité comprend les principaux domaines d'intérêt suivants :

  • Sécurité des données

  • Sécurité du réseau

  • Authentification et autorisation

Mettre en œuvre la sécurité des données

Les fuites de données et les violations mettent vos clients en danger et peuvent avoir un impact négatif important sur votre entreprise. Les meilleures pratiques suivantes aident à protéger les données de vos clients contre toute exposition accidentelle ou malveillante :

  • Les noms de clusters, les balises, les groupes de paramètres, les rôles Gestion des identités et des accès AWS (IAM) et les autres métadonnées ne doivent pas contenir d'informations confidentielles ou sensibles, car ces données peuvent apparaître dans les journaux de facturation ou de diagnostic.

  • URIs ou les liens vers des serveurs externes stockés sous forme de données dans Neptune ne doivent pas contenir d'informations d'identification permettant de valider les demandes.

  • Les instances chiffrées Neptune fournissent une couche supplémentaire de protection des données en contribuant à sécuriser vos données contre tout accès non autorisé au stockage sous-jacent. Vous pouvez utiliser le chiffrement Neptune pour renforcer la protection des données de vos applications déployées dans le cloud. Vous pouvez également utiliser le chiffrement Neptune pour répondre aux exigences de conformité relatives aux données au repos.

    Pour activer le chiffrement pour une nouvelle instance de base de données Neptune, choisissez Oui dans la section Activer le chiffrement de la console Neptune (sélectionnée par défaut) ou en définissant la propriété dans. AWS::Neptune::DBCluster::StorageEncrypted CloudFormationSi le chiffrement est activé, Neptune utilisera par défaut la clé gérée AWS Amazon Relational Database Service (Amazon RDS), ou vous pouvez créer une clé gérée par le client. Pour plus d'informations sur la création d'une instance de base de données Neptune, consultez la section Création d'un nouveau cluster de base de données Neptune. Pour plus de détails, consultez la section Chiffrement des ressources Neptune au repos. Vos instantanés automatisés et manuels utilisent le même chiffrement que celui que vous avez sélectionné pour votre cluster Neptune.

  • Lorsque vous utilisez les langages SPARQL et OpenCypher, appliquez des techniques de validation et de paramétrage des entrées appropriées pour empêcher l'injection de code SQL et d'autres formes d'attaques. Évitez de créer des requêtes qui utilisent la concaténation de chaînes avec des entrées fournies par l'utilisateur. Utilisez des requêtes paramétrées ou des instructions préparées pour transmettre en toute sécurité les paramètres d'entrée à la base de données de graphes. Pour plus d'informations, consultez Exemples de requêtes paramétrées OpenCypher et SPARQL Injection Defense.

  • Pour le langage Gremlin, utilisez des variantes de langage Gremlin au lieu de transmettre directement des scripts Gremlin basés sur des chaînes afin d'éviter d'éventuels problèmes d'injection.

Sécurisez vos réseaux

Un cluster de base de données Amazon Neptune ne peut être créé que dans un cloud privé virtuel (VPC) sur. AWS Jusqu'à la version 1.4.6.0 de Neptune, les points de terminaison du cluster de base de données Neptune n'étaient accessibles qu'au sein de ce VPC. À partir de Neptune 1.4.6.0 et versions ultérieures, les instances de Neptune peuvent être configurées pour être accessibles au public sur Internet. Il est recommandé d'utiliser cette fonctionnalité uniquement dans des environnements hors production afin de simplifier l'accès à Neptune pour vos développeurs (bien que l'authentification IAM soit toujours requise pour permettre l'accessibilité publique). Si l'accessibilité publique est activée, envisagez de définir des règles de groupe de sécurité entrant pour le port de votre base de données uniquement pour le trafic d'adresses IP connu. Dans les environnements de production ou dans les clusters contenant des données sensibles, sécurisez vos données Neptune en interdisant l'accès du public et en limitant l'accès au VPC où se trouve votre cluster de base de données Neptune. Pour plus d'informations, consultez Connexion à votre graphe Amazon Neptune.

Pour protéger vos données en transit, Neptune applique des connexions SSL via HTTPS à n'importe quel point de terminaison d'instance ou de cluster à l'aide de protocoles et de chiffrements sécurisés. Neptune fournit des certificats SSL pour vos instances de base de données Neptune. Les certificats SSL Neptune ne prennent en charge que les noms d'hôte des points de terminaison de cluster, de point de terminaison de lecteur et de point de terminaison d'instance.

Si vous utilisez un équilibreur de charge ou un serveur proxy (tel que HAProxy), vous devez utiliser la terminaison SSL et disposer de votre propre certificat SSL sur le serveur proxy. La transmission SSL ne fonctionne pas, car les certificats SSL fournis ne correspondent au nom d'hôte du serveur proxy. Pour plus d'informations sur la connexion aux points de terminaison Neptune via SSL, voir Utilisation du point de terminaison HTTP REST pour se connecter à une instance de base de données Neptune.

Mettre en œuvre l'authentification et l'autorisation

Pour contrôler qui peut effectuer des actions de gestion Neptune sur les clusters et les instances de base de données Neptune, activez l'authentification de base de données IAM et utilisez les informations d'identification IAM. Lorsque vous vous connectez à AWS l'aide d'informations d'identification IAM, votre rôle IAM doit disposer de politiques IAM qui accordent les autorisations requises pour effectuer les opérations de gestion de Neptune. Assurez-vous de suivre le principe du moindre privilège, en n'accordant que les autorisations requises pour effectuer une tâche. Pour plus d'informations, consultez les sections Utilisation de différents types de politiques IAM pour contrôler l'accès à Neptune et Authentification IAM à l'aide d'informations d'identification temporaires.

Pour contrôler qui peut se connecter à un cluster Neptune et interroger les données, vous pouvez utiliser IAM pour vous authentifier auprès de votre instance ou de votre cluster de base de données Neptune. Si vous activez l'authentification IAM dans un cluster de base de données Neptune, toute personne accédant au cluster de base de données doit d'abord être authentifiée. Pour plus d'informations, voir Activation de l'authentification de base de données IAM dans Neptune pour connaître les étapes à suivre pour activer l'authentification IAM.

Lorsque l'authentification de base de données IAM est activée, chaque demande doit être signée à l'aide d' AWS Signature Version 4. Pour comprendre comment envoyer des demandes signées à tous les points de terminaison Neptune lorsque l'authentification IAM est activée, voir Connexion et signature avec AWS signature version 4. De nombreuses bibliothèques et outils, tels que awscurl, prennent déjà en charge la version 4 de AWS Signature.

 Pour interagir avec d'autres utilisateurs Services AWS, Amazon Neptune utilise des rôles liés au service IAM. Un rôle lié à un service est un type unique de rôle IAM lié directement à Neptune. Les rôles liés au service sont prédéfinis par Neptune et incluent toutes les autorisations dont le service a besoin pour appeler d'autres Services AWS personnes en votre nom. Pour plus d'informations, consultez la section Utilisation de rôles liés à un service pour Neptune.