Prévention interservices confuse des adjoints dans Stacks AWS OpsWorks - AWS OpsWorks

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 interservices confuse des adjoints dans Stacks AWS OpsWorks

Important

Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur AWS Re:Post ou via le AWS Support Premium.

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:SourceAccountglobale aws:SourceArnet les clés de contexte dans les politiques d'accès aux piles afin de limiter les autorisations que AWS OpsWorks Stacks accorde à un autre service aux piles. 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. Si vous utilisez les deux clés de contexte de condition globale et que la valeur aws:SourceArn contient l'ID de compte, la valeur aws:SourceAccount et le compte dans la valeur aws:SourceArn doivent utiliser le même ID de compte lorsqu'ils sont utilisés dans la même instruction de politique. À utiliser aws:SourceArn si vous souhaitez qu'une seule pile soit associée à l'accès multiservice. À utiliser aws:SourceAccount si vous souhaitez autoriser toute pile de ce compte à être associée à l'utilisation interservices.

La valeur de aws:SourceArn doit être l'ARN d'une AWS OpsWorks pile.

Le moyen le plus efficace de se protéger contre le problème de confusion des adjoints consiste à utiliser la clé de contexte de condition aws:SourceArn globale avec l'ARN complet de la pile AWS OpsWorks Stacks. Si vous ne connaissez pas l'ARN complet ou si vous spécifiez plusieurs ARN de pile, utilisez la clé de condition de contexte aws:SourceArn global avec des caractères génériques (*) pour les parties inconnues de l'ARN. Par exemple, arn:aws:servicename:*:123456789012:*.

La section suivante explique comment utiliser les clés contextuelles aws:SourceArn et les clés de contexte de condition aws:SourceAccount globale dans AWS OpsWorks Stacks pour éviter le problème de confusion des adjoints.

Empêchez les exploits secondaires confus dans AWS OpsWorks Stacks

Cette section décrit comment vous pouvez empêcher les exploits secondaires confus dans AWS OpsWorks Stacks et inclut des exemples de politiques d'autorisation que vous pouvez associer au rôle IAM que vous utilisez pour accéder AWS OpsWorks à Stacks. Pour des raisons de sécurité, nous vous recommandons d'ajouter les clés de aws:SourceAccount condition aws:SourceArn et aux relations de confiance que votre rôle IAM entretient avec d'autres services. Les relations de confiance permettent à AWS OpsWorks Stacks d'assumer un rôle pour effectuer des actions dans d'autres services nécessaires à la création ou à la gestion de vos AWS OpsWorks stacks Stacks.

Pour modifier les relations de confiance afin d'ajouter aws:SourceArn et de aws:SourceAccount conditionner des clés
  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation de gauche, choisissez Rôles.

  3. Dans la zone de recherche, recherchez le rôle que vous utilisez pour accéder à AWS OpsWorks Stacks. Le rôle AWS géré estaws-opsworks-service-role.

  4. Sur la page Résumé du rôle, choisissez l'onglet Relations de confiance.

  5. Dans l'onglet Relations de confiance, choisissez Modifier la politique de confiance.

  6. Sur la page Modifier la politique de confiance, ajoutez au moins l'une des clés de aws:SourceAccount condition aws:SourceArn ou à la politique. aws:SourceArnÀ utiliser pour restreindre la relation de confiance entre les services croisés (tels qu'Amazon EC2) et AWS OpsWorks Stacks à des piles Stacks spécifiques AWS OpsWorks , ce qui est plus restrictif. Ajoutez aws:SourceAccount pour limiter la relation de confiance entre cross services et AWS OpsWorks Stacks aux piles d'un compte spécifique, ce qui est moins restrictif. Voici un exemple. Notez que si vous utilisez les deux clés de condition, les identifiants de compte doivent être identiques.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "arn:aws:opsworks:us-east-2:123456789012:stack/EXAMPLEd-5699-40a3-80c3-22c32EXAMPLE/" } } } ] }
  7. Lorsque vous avez terminé d'ajouter des clés de condition, choisissez Mettre à jour la politique.

Vous trouverez ci-dessous d'autres exemples de rôles qui limitent l'accès aux piles en utilisant aws:SourceArn etaws:SourceAccount.

Exemple : accès aux piles dans une région spécifique

La déclaration de relation de confiance suivante permet d'accéder à toutes les AWS OpsWorks piles Stacks de la région USA Est (Ohio) (). us-east-2 Notez que la région est spécifiée dans la valeur ARN deaws:SourceArn, mais que la valeur de l'ID de pile est un caractère générique (*).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:opsworks:us-east-2:123456789012:stack/*" } } } ] }

Exemple : ajout de plusieurs ARN de pile à aws:SourceArn

L'exemple suivant limite l'accès à un tableau de deux AWS OpsWorks piles Stacks dans l'ID de compte 123456789012.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "opsworks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": [ "arn:aws:opsworks:us-east-2:123456789012:stack/unique_ID1", "arn:aws:opsworks:us-east-2:123456789012:stack/unique_ID2" ] } } } ] }