View a markdown version of this page

Cross-service prévention confuse des adjoints - Amazon Aurora DSQL

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.

Cross-service prévention confuse des adjoints

Le problème de député confus est un problème de sécurité dans lequel une entité qui n’est pas autorisée à effectuer une action peut contraindre une entité plus privilégiée à le faire. En AWS, l'usurpation d'identité interservices peut entraîner un problème de confusion chez les adjoints. Cross-service l'usurpation d'identité peut se produire lorsqu'un service (le service appelant) appelle un autre service (le service appelé). Le service appelant peut être manipulé et ses autorisations utilisées pour agir sur les ressources d’un autre client auxquelles on ne serait pas autorisé à accéder autrement. Pour éviter cela, AWS fournit des outils qui vous aident à protéger vos données pour tous les services avec des principaux de service qui ont eu accès aux ressources de votre compte.

Nous vous recommandons d’utiliser les clés de contexte de condition globale aws:SourceArn et aws:SourceAccount dans les politiques de ressources afin de limiter les autorisations à la ressource octroyées par Amazon Aurora DSQL à un autre service. Utilisez aws:SourceArn si vous souhaitez qu’une seule ressource soit associée à l’accès entre services. Utilisez aws:SourceAccount si vous souhaitez autoriser l’association d’une ressource de ce compte à l’utilisation interservices.

Le moyen le plus efficace de se protéger contre le problème de député confus consiste à utiliser la clé de contexte de condition globale aws:SourceArn avec l’ARN complet de la ressource. Si vous ne connaissez pas l’ARN complet de la ressource ou si vous spécifiez plusieurs ressources, utilisez la clé de contexte de condition globale aws:SourceArn avec des caractères génériques (*) pour les parties inconnues de l’ARN. Par exemple, arn:aws:dsql:*:123456789012:*.

Si la valeur aws:SourceArn ne contient pas l’ID du compte, tel qu’un ARN de compartiment Amazon S3, vous devez utiliser les deux clés de contexte de condition globale pour limiter les autorisations.

La valeur de aws:SourceArn doit être l'ARN de la ressource Aurora DSQL pour le compte de laquelle le rôle de service agit.

L’exemple suivant montre comment utiliser les clés de contexte de condition globale aws:SourceArn et aws:SourceAccount dans Aurora DSQL afin d’éviter le problème de l’adjoint confus.

JSON
{ "Version":"2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "backup.amazonaws.com" }, "Action": "dsql:GetCluster", "Resource": [ "arn:aws:dsql:*:123456789012:cluster/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:backup:*:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }

Rôle du service de streaming CDC

Les flux de capture des données de modification (CDC) nécessitent un rôle de service IAM qu'Aurora DSQL assume pour écrire des enregistrements CDC sur votre cible. Lorsque vous créez ce rôle, utilisez aws:SourceAccount et aws:SourceArn conditionnez la politique de confiance afin de garantir que seuls les flux CDC de votre compte puissent assumer le rôle.

aws:SourceArnDéfini sur le modèle d'ARN du flux pour le cluster qui utilise le rôle. Dans la mesure où Aurora DSQL n'a pas attribué d'identifiant de flux lorsque vous créez le flux, utilisez un caractère générique pour la partie flux de l'ARN :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DSQLAssumeRole", "Effect": "Allow", "Principal": { "Service": "dsql.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:dsql:region:your-account-id:cluster/cluster-id/stream/*" } } } ] }

Après avoir créé un flux, vous pouvez vous limiter aws:SourceArn à l'ARN exact du flux si le rôle dessert un seul flux. Pour une explication complète de la politique de confiance et de la politique d'autorisation pour les rôles de service CDC, voirConfiguration d'IAM.