View a markdown version of this page

Utiliser les clés de condition VPC pour contrôler l'accès fédéré - AWS Gestion de l’identité et des accès

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.

Utiliser les clés de condition VPC pour contrôler l'accès fédéré

Les utilisateurs fédérés peuvent assumer des rôles en utilisant AssumeRoleWithSAML ou AssumeRoleWithWebIdentity via un point de terminaison VPC. Dans ce cas, vous pouvez utiliser des clés de VPC-specific condition dans la politique de confiance du rôle ou dans les politiques de contrôle des ressources (RCP) pour limiter l'origine de ces demandes. Cela fournit une limite au niveau du réseau en plus des contrôles au niveau de l'identité dans la politique de confiance.

Comment fonctionnent les clés de condition VPC pour les demandes fédérées

Les clés de condition disponibles dans le contexte de la demande dépendent du chemin réseau de la demande fédérée.

Disponibilité de la clé de condition VPC par chemin réseau

Clé de condition

Par le biais d'un point de terminaison VPC

Sur Internet public

Description

aws:SourceVpc

Oui

Non

ID VPC que traverse la demande

aws:SourceVpcArn

Oui

Non

ARN du VPC que traverse la demande

aws:SourceVpce

Oui

Non

ID de point de terminaison VPC traversé par la demande

aws:VpcSourceIp

Oui

Non

Adresse IP privée de l'appelant au sein du VPC

aws:SourceIp

Non

Oui

Adresse IP publique de l'appelant

Si votre politique de confiance utilise aws:SourceVpc ou aws:SourceVpcArn figure aws:SourceVpce dans une Allow instruction et que la demande ne passe pas par un point de terminaison VPC, la condition ne correspond pas et refuse AWS implicitement la demande. Cela nécessite en fait que des demandes fédérées traversent le point de terminaison du VPC pour réussir.

Important

Pour les demandes effectuées via un point de terminaison VPC, n'aws:SourceIpest pas renseigné. Utilisez-le plutôt aws:VpcSourceIp pour IP-based les restrictions.

Nous vous recommandons d'utiliser des politiques aws:SourceVpcArn plutôt que aws:SourceVpc des politiques de confiance. Les identifiants VPC sont uniques au niveau régional mais pas uniques au niveau mondial. Ils aws:SourceVpcArn incluent la région et le compte, fournissant ainsi une identification unique du VPC au niveau mondial.

Note

Dans les exemples OIDC suivants, la valeur audience (aud) utilisests.amazonaws.com, qui est la valeur par défaut pour Amazon EKS. Pour les autres fournisseurs OIDC, remplacez-la par la valeur d'audience configurée pour votre application (par exemple, un ID client ou un URI d'application).

Exemple : Restreindre la fédération OIDC à un VPC spécifique

La politique de confiance suivante permet à un fournisseur OIDC d'assumer le rôle uniquement lorsque la demande provient d'un VPC spécifique via un point de terminaison VPC.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOIDCFromVpc", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/idp.example.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idp.example.com:aud": "sts.amazonaws.com", "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" } } } ] }

AWS refuse implicitement les demandes provenant de l'extérieur du VPC spécifié car aws:SourceVpcArn la condition ne correspond pas. Aucune déclaration de refus explicite n'est nécessaire.

Exemple : restreindre la fédération SAML à un point de terminaison VPC spécifique

La politique de confiance suivante permet à un fournisseur SAML d'assumer le rôle uniquement lorsque la demande passe par un point de terminaison VPC spécifique.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSAMLFromVpce", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:saml-provider/ExampleProvider" }, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml", "aws:SourceVpce": "vpce-0abcdef1234567890" } } } ] }

L'utilisation aws:SourceVpce au lieu de aws:SourceVpc permet un contrôle plus précis lorsque vous avez plusieurs points de terminaison VPC dans le même VPC et que vous souhaitez restreindre l'accès à un point de terminaison spécifique.

Exemple : Restreindre la fédération OIDC par plage d'adresses IP privées au sein d'un VPC

La politique de confiance suivante limite la fédération aux demandes provenant d'un sous-réseau spécifique au sein du VPC. aws:VpcSourceIpÀ utiliser pour les IP-based restrictions sur les demandes effectuées via un point de terminaison VPC.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOIDCFromSubnet", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/idp.example.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idp.example.com:aud": "sts.amazonaws.com", "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" }, "IpAddress": { "aws:VpcSourceIp": "10.0.1.0/24" } } } ] }
Important

Ne pas utiliser aws:SourceIp avec des plages d'adresses IP privées pour les demandes via un point de terminaison VPC. La aws:SourceIp clé n'est pas disponible pour les demandes de point de terminaison VPC. Utilisez aws:VpcSourceIp à la place.

Exemple : Restreindre la fédération SAML à plusieurs VPC

La politique de confiance suivante permet à un fournisseur SAML d'assumer le rôle depuis n'importe lequel des nombreux VPC. Cela est utile lorsque votre organisation possède plusieurs VPC dans différents environnements ou régions qui nécessitent un accès fédéré au même rôle.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSAMLFromMultipleVpcs", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:saml-provider/ExampleProvider" }, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "SAML:aud": "https://signin.aws.amazon.com/saml", "aws:SourceVpcArn": [ "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111aaa11", "arn:aws:ec2:us-east-1:111122223333:vpc/vpc-222bbb22" ] } } } ] }

Exemple : combinaison de conditions spécifiques au VPC et au fournisseur

Vous pouvez combiner les clés de condition VPC avec des conditions spécifiques au fournisseur, telles que l'audience (aud) et le sujet (sub) pour un contrôle d'accès précis. La politique de confiance suivante limite l'attribution des rôles à un utilisateur fédéré spécifique et exige que la demande provienne d'un VPC spécifique.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOIDCUserFromVpc", "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/idp.example.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "idp.example.com:aud": "sts.amazonaws.com", "idp.example.com:sub": "user123", "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" } } } ] }

Cela combine des contrôles au niveau de l'identité (limités à un utilisateur fédéré spécifique) avec des contrôles au niveau du réseau (limités à un VPC spécifique), offrant ainsi une défense approfondie.

Exemple : utiliser un RCP pour restreindre l'accès fédéré à un VPC spécifique

La politique de contrôle des ressources (RCP) suivante refuse AssumeRoleWithSAML et AssumeRoleWithWebIdentity demande, sauf si elles proviennent d'un VPC spécifique. Contrairement aux politiques de confiance qui s'appliquent par rôle, une politique de contrôle des ressources (RCP) s'applique à tous les rôles des comptes cibles. Cela fournit une limite de réseau centralisée.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyFederatedAccessOutsideVpc", "Effect": "Deny", "Principal": "*", "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:AssumeRoleWithSAML" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:SourceVpcArn": "arn:aws:ec2:us-west-2:111122223333:vpc/vpc-111bbb22" }, "Null": { "aws:SourceVpcArn": "false" } } } ] }

Cette Null condition garantit que le refus ne s'applique que s'il aws:SourceVpcArn est présent dans le contexte de la demande (c'est-à-dire si la demande est passée par un point de terminaison VPC mais provient du mauvais VPC). Sans cela, les demandes sur l'Internet public (où il aws:SourceVpcArn n'y en a pas) seraient également refusées parStringNotEquals. Si vous supprimez la Null vérification, le refus s'applique également aux demandes qui ne transitent par aucun point de terminaison VPC, y compris les demandes via Internet public. Nous vous recommandons de procéder à des tests approfondis avant de supprimer l'Nullenregistrement dans les environnements de production.