Prévention du problème de l’adjoint confus entre services - AWS Transfer Family

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 d'appel peut être manipulé pour utiliser ses autorisations afin d'agir sur les ressources d'un autre client d'une manière à laquelle il ne devrait pas être 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. Pour une description détaillée de ce problème, voir le problème de confusion des adjoints dans le guide de l'utilisateur IAM.

Nous recommandons d'utiliser les clés contextuelles de condition aws:SourceAccountglobale aws:SourceArnet les clés contextuelles dans les politiques de ressources afin de limiter les autorisations accordées à AWS Transfer Family pour 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.

Le moyen le plus efficace de se protéger contre le problème de l'adjoint confus consiste à utiliser l'Amazon Resource Name (ARN) exact de la ressource que vous souhaitez autoriser. 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 de l'ARN. Par exemple, arn:aws:transfer::region::account-id:server/*.

AWS Transfer Family utilise les types de rôles suivants :

  • Rôle utilisateur — Permet aux utilisateurs gérés par le service d'accéder aux ressources Transfer Family nécessaires. AWS Transfer Family assume ce rôle dans le contexte d'un ARN utilisateur de Transfer Family.

  • Rôle d'accès — Permet d'accéder uniquement aux fichiers Amazon S3 en cours de transfert. Pour les transferts AS2 entrants, le rôle d'accès utilise l'Amazon Resource Name (ARN) pour l'accord. Pour les transferts AS2 sortants, le rôle d'accès utilise l'ARN du connecteur.

  • Rôle d'invocation : à utiliser avec Amazon API Gateway en tant que fournisseur d'identité personnalisé du serveur. Transfer Family assume ce rôle dans le contexte d'un ARN de serveur Transfer Family.

  • Rôle de journalisation : utilisé pour enregistrer les entrées sur Amazon CloudWatch. Transfer Family utilise ce rôle pour enregistrer les informations relatives aux réussites et aux échecs, ainsi que les informations relatives aux transferts de fichiers. Transfer Family assume ce rôle dans le contexte d'un ARN de serveur Transfer Family. Pour les transferts AS2 sortants, le rôle de journalisation utilise l'ARN du connecteur.

  • Rôle d'exécution — Permet à un utilisateur de Transfer Family d'appeler et de lancer des flux de travail. Transfer Family assume ce rôle dans le contexte d'un flux de travail (ARN) Transfer Family.

Pour de plus amples informations, veuillez consulter Policies and permissions in IAM (Stratégies et autorisations dans IAM) dans le IAM Guide de l’utilisateur.

Note

Dans les exemples suivants, remplacez chaque user input placeholder (espace réservé pour l’entrée utilisateur) avec vos propres informations.

Note

Dans nos exemples, nous utilisons à la fois ArnLike etArnEquals. Ils sont fonctionnellement identiques, et vous pouvez donc utiliser l'un ou l'autre lorsque vous élaborez vos politiques. La documentation Transfer Family ArnLike est utilisée lorsque la condition contient un caractère générique et ArnEquals pour indiquer une condition de correspondance exacte.

AWS Transfer Family : rôle d'utilisateur, interservices, prévention des adjoints confus

L'exemple de politique suivant permet à n'importe quel utilisateur de n'importe quel serveur du compte d'assumer le rôle.

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

L'exemple de politique suivant permet à n'importe quel utilisateur d'un serveur spécifique d'assumer le rôle.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnEquals": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/*" } } } ] }

L'exemple de politique suivant permet à un utilisateur spécifique d'un serveur spécifique d'assumer le rôle.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/user-name" } } } ] }

AWS Transfer Family : flux de travail, rôle, interservices, prévention des adjoints confus

L'exemple de politique suivant permet à n'importe quel flux de travail du compte d'assumer le rôle.

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

L'exemple de politique suivant permet à un flux de travail spécifique d'assumer le rôle.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:workflow/workflow-id" } } } ] }

AWS Transfer Family : enregistrement et rôle d'invocation, interservices, prévention des adjoints confus

Note

Les exemples suivants peuvent être utilisés à la fois dans les rôles de journalisation et d'invocation.

Dans ces exemples, vous pouvez supprimer les détails de l'ARN d'un flux de travail si aucun flux de travail n'est associé à votre serveur.

L'exemple de politique de journalisation et d'appel suivant permet à n'importe quel serveur (et flux de travail) du compte d'assumer le rôle.

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

L'exemple de politique de journalisation et d'appel suivant permet à un serveur (et à un flux de travail) spécifiques d'assumer le rôle.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSpecificServerWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnEquals": { "aws:SourceArn": [ "arn:aws:transfer:region:account-id:server/server-id", "arn:aws:transfer:region:account-id:workflow/workflow-id" ] } } } ] }