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.
Prévention du problème de l’adjoint confus entre services
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 la confusion des adjoints. L’usurpation d’identité entre services 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é d’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 recommandons d'utiliser les clés de contexte de condition aws:SourceAccount
globale aws:SourceArn
et les clés contextuelles dans les politiques de ressources afin de limiter les autorisations qui AWS Amplify accordent un autre service à la ressource. Si vous utilisez les deux clés de contexte de condition globale, la valeur aws:SourceAccount
et le compte de la valeur aws:SourceArn
doit utiliser le même ID de compte lorsqu’il est utilisé dans la même déclaration de stratégie.
La valeur de aws:SourceArn
doit être la branche ARN de l'application Amplify. Spécifiez cette valeur dans le formatarn:
.Partition
:amplify:Region
:Account
:apps/AppId
/branches/BranchName
Le moyen le plus efficace de se prémunir contre le problème de confusion des adjoints consiste à utiliser la clé de contexte de la condition aws:SourceArn
globale avec l'intégralité ARN de la ressource. Si vous ne connaissez pas l'intégralité ARN de la ressource ou si vous spécifiez plusieurs ressources, utilisez la clé de condition contextuelle aws:SourceArn
globale avec des caractères génériques (*
) pour les parties inconnues duARN. Par exemple, arn:aws:
. servicename
::123456789012
:*
L'exemple suivant montre une politique de confiance dans les rôles que vous pouvez appliquer pour limiter l'accès à n'importe quelle application Amplify de votre compte et éviter le problème de confusion des adjoints. Pour utiliser cette politique, remplacez le texte en italique rouge dans l'exemple de politique par vos propres informations.
{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": [ "amplify.me-south-1.amazonaws.com", "amplify.eu-south-1.amazonaws.com", "amplify.ap-east-1.amazonaws.com", "amplifybackend.amazonaws.com", "amplify.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:amplify:
us-east-1
:123456789012
:apps/*" }, "StringEquals": { "aws:SourceAccount": "123456789012
" } } } }
L'exemple suivant montre une politique de confiance dans les rôles que vous pouvez appliquer pour limiter l'accès à une application Amplify spécifiée dans votre compte et éviter le problème de confusion des adjoints. Pour utiliser cette politique, remplacez le texte en italique rouge dans l'exemple de politique par vos propres informations.
{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": [ "amplify.me-south-1.amazonaws.com", "amplify.eu-south-1.amazonaws.com", "amplify.ap-east-1.amazonaws.com", "amplifybackend.amazonaws.com", "amplify.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:amplify:
us-east-1
:123456789012
:apps/d123456789
/branches/*" }, "StringEquals": { "aws:SourceAccount": "123456789012
" } } } }