Prévention des conflits entre services dans Amazon EKS - Amazon EKS

Aidez à améliorer cette page

Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.

Prévention des conflits entre services dans Amazon EKS

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. Dans AWS, l’emprunt d’identité entre services peut entraîner le problème de député confus. 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 vous recommandons d’utiliser les clés de contexte de condition globale aws:SourceArn, aws:SourceAccount dans les politiques de ressources afin de limiter les autorisations accordées par Amazon Elastic Kubernetes Service (Amazon EKS) à un autre service pour la ressource.

aws:SourceArn

Utilisez aws:SourceArn pour associer une seule ressource à l’accès interservice.

aws:SourceAccount

Utilisez aws:SourceAccount pour permettre à n’importe quelle ressource de ce compte d’être associée à l’utilisation interservice.

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 condition de contexte global aws:SourceArn avec des caractères génériques (*) pour les parties inconnues de l’ARN. Par exemple, arn:aws:<servicename>:*:<123456789012>:*.

Si la valeur aws:SourceArn ne contient pas l'ID du compte, tel qu'un ARN de compartiment Amazon S3, vous devez utiliser à la fois aws:SourceAccount et aws:SourceArn pour limiter les autorisations.

Prévention des conflits entre services dans les rôles de cluster Amazon EKS

Un rôle IAM du cluster Amazon EKS est requis pour chaque cluster. Les clusters Kubernetes gérés par Amazon EKS utilisent ce rôle pour gérer les nœuds, tandis que l’ancien fournisseur de cloud utilise ce rôle pour créer des équilibreurs de charge avec Elastic Load Balancing pour les services. Ces actions de cluster ne peuvent affecter que le même compte. Nous vous recommandons donc de limiter chaque rôle de cluster à ce cluster et à ce compte. Il s’agit d’une application spécifique de la recommandation AWS visant à respecter le principe du moindre privilège dans votre compte.

Format source ARN

La valeur de aws:SourceArn doit être l’ARN d’un cluster EKS au format arn:aws:eks:region:account:cluster/cluster-name . Par exemple, arn:aws:eks:us-west-2:123456789012:cluster/my-cluster.

Format de stratégie de confiance pour les rôles de cluster EKS

L’exemple suivant montre comment vous pouvez utiliser les clés de contexte de condition globale aws:SourceArn et aws:SourceAccount dans Amazon EKS pour éviter le problème de l’adjoint confus.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:us-west-2:123456789012:cluster/my-cluster" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }