View a markdown version of this page

Contrôlez l'accès à AWS STS avec des politiques de point de terminaison VPC - 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.

Contrôlez l'accès à AWS STS avec des politiques de point de terminaison VPC

Lorsque vous créez un point de terminaison VPC d'interface pour AWS Security Token Service (AWS STS), vous pouvez y associer une politique de point de terminaison. La politique contrôle les principaux autorisés à utiliser le point de terminaison et les AWS STS actions qu'ils peuvent effectuer. Si vous n'attachez pas de politique, le point de terminaison utilise la politique par défaut qui autorise un accès illimité à toutes les AWS STS actions pour tous les principaux.

Les politiques relatives aux points de terminaison VPC n'accordent pas d'autorisations à elles seules. Ils constituent une limite supplémentaire qui fonctionne parallèlement aux autres politiques. La politique du point de terminaison et les politiques applicables de l'appelant doivent autoriser une demande pour qu'elle aboutisse.

Pour plus d'informations sur les politiques relatives aux points de terminaison VPC, consultez la section Contrôler l'accès aux points de terminaison VPC à l'aide des politiques relatives aux points de terminaison dans le guide de l'utilisateur Amazon VPC.

Politique de point de terminaison d'un VPC par défaut

Si vous n'attachez pas de politique personnalisée lorsque vous créez le point de terminaison, AWS associez la stratégie par défaut suivante. Cette politique permet un accès illimité au point de terminaison.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" } ] }

Pour limiter l'accès au point de terminaison, associez une politique de point de terminaison personnalisée.

Considérations importantes pour AWS STS Politiques de point de terminaison d’un VPC

AWS STS gère les demandes provenant de deux types d'appelants fondamentalement différents. Votre politique de point de terminaison VPC doit prendre en compte les deux types afin d'éviter de bloquer involontairement les demandes légitimes.

Principaux authentifiés AWS

Utilisateurs IAM et rôles IAM qui signent des demandes avec AWS Signature Version 4 (SigV4). Ces appelants disposent de clés de condition standard telles que aws:PrincipalOrgIDaws:PrincipalAccount, et aws:PrincipalArn disponibles dans le contexte de la demande.

Appelants fédérés

AssumeRoleWithSAMLPrincipaux SAML 2.0 et OpenID Connect (OIDC) qui appellent ou. AssumeRoleWithWebIdentity Ces appelants s'authentifient à l'aide d'assertions SAML ou de jetons Web JSON (JWT), et non de signatures Sigv4. Comme ils n'ont aucune AWS identité au moment de la demande, le contexte de la demande n'inclut pas les clés de condition basées sur le principal telles que aws:PrincipalOrgIDaws:PrincipalAccount, et. aws:PrincipalArn

Important

Si votre politique de point de terminaison VPC repose uniquement sur l'autorisation aws:PrincipalOrgID d'accès, les appels fédérés AssumeRoleWithSAML et les AssumeRoleWithWebIdentity appels sont implicitement refusés car la clé de condition est absente pour les non-principaux.AWS

Comment ? AWS STS évalue les politiques relatives aux points de terminaison VPC pour les appelants fédérés

Lorsqu'un appelant fédéré invoque AssumeRoleWithSAML ou via AssumeRoleWithWebIdentity un point de terminaison VPC, les règles suivantes s'appliquent :

  • L'appelant n'est pas un AWS mandant. Les clés de condition telles que aws:PrincipalOrgIDaws:PrincipalAccount, et ne aws:PrincipalArn sont pas disponibles dans le contexte de la demande.

  • Les appelants fédérés ne disposent pas de la clé de condition aws:PrincipalIsAWSService dans le contexte de la demande.

  • Le rôle assumé est une AWS ressource. Resource-based des clés de condition telles que aws:ResourceOrgID et aws:ResourceAccount sont disponibles et font référence au rôle cible.

  • La politique de confiance du rôle reste la principale porte d'autorisation pour l'accès fédéré. La politique de point de terminaison VPC fournit une limite supplémentaire au niveau du réseau.

Nous vous recommandons d'utiliser aws:ResourceOrgID ou aws:ResourceAccount de rédiger des déclarations de politique relatives aux points de terminaison VPC qui doivent s'appliquer aux appelants fédérés, car ces appelants ne disposent pas de clés de condition basées sur le principal.

Clés de condition disponibles pour AWS STS Politiques de point de terminaison d’un VPC

Le tableau suivant présente les clés de condition couramment utilisées et leur disponibilité dans le contexte des demandes pour chaque type d'appelant lors de l'envoi de demandes via un point de terminaison AWS STS VPC. Des clés de condition supplémentaires sont disponibles en plus de celles répertoriées ici.

Disponibilité de la clé de condition par type d'appelant

Clé de condition

Principaux authentifiés AWS

Appelants fédérés

Description

aws:PrincipalOrgID

Oui

Non

L'identifiant de l'organisation du principal appelant

aws:PrincipalAccount

Oui

Non

L'identifiant de compte du principal appelant

aws:PrincipalArn

Oui

Non

L'ARN du principal appelant

aws:PrincipalIsAWSService

Oui (valeur fausse)

Non (la clé est absente)

Si l'appelant est un directeur AWS de service

aws:ResourceOrgID

Oui

Oui

L'ID d'organisation du compte propriétaire de la ressource demandée

aws:ResourceAccount

Oui

Oui

L'ID du compte propriétaire de la ressource demandée

Note

Pour les AWS principaux authentifiés (utilisateurs et rôles IAM), aws:PrincipalIsAWSService est présent dans le contexte de la demande et est évalué à faux. Pour les appelants fédérés, cette clé est totalement absente du contexte de demande. Une condition qui vérifie "Bool": {"aws:PrincipalIsAWSService": "false"} ne correspond pas aux appelants fédérés car la clé n'est pas présente.

Exemple : Tout autoriser AWS STS actions pour votre organisation

La politique de point de terminaison suivante limite votre point de terminaison AWS STS VPC à votre organisation tout en prenant en charge l'accès fédéré. Il autorise toutes les AWS STS actions pour les principaux authentifiés de votre organisation et permet séparément aux appelants fédérés d'assumer des rôles au sein de votre organisation. Les appelants fédérés (AssumeRoleWithSAMLetAssumeRoleWithWebIdentity) ont besoin d'une déclaration distincte car ils n'en ont pas aws:PrincipalOrgID dans le contexte de la demande.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOrganizationPrincipals", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "sts:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-exampleorgid" } } }, { "Sid": "AllowFederatedAssumeRole", "Effect": "Allow", "Principal": "*", "Action": [ "sts:AssumeRoleWithSAML", "sts:AssumeRoleWithWebIdentity" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceOrgID": "o-exampleorgid" } } } ] }

La première instruction utilise "Principal": {"AWS": "*"} with aws:PrincipalOrgID pour autoriser l'authentification AWS des principaux de votre organisation. La deuxième instruction est utilisée "Principal": "*" pour faire correspondre les appelants fédérés et limite le rôle cible à l'utilisation de votre organisation. aws:ResourceOrgID La politique de confiance du rôle reste le principal critère permettant de déterminer quelles identités fédérées peuvent assumer quels rôles.

Pour plus d'informations sur la mise en œuvre de contrôles de périmètre réseau, consultez la section Création d'un périmètre de données sur AWS et les exemples de politique de périmètre de données sur le GitHub site Web.

Exemple : Tout autoriser AWS STS actions pour des comptes spécifiques

La politique de point de terminaison suivante autorise toutes les AWS STS actions pour les principaux sur des comptes spécifiques. Utilisez cette politique lorsque vos comptes ne font pas partie d'une organisation. Les appelants fédérés sont autorisés dans une déclaration séparée car ils n'en ont pas aws:PrincipalAccount dans le contexte de la demande.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSpecificAccountPrincipals", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "sts:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalAccount": [ "111122223333", "444455556666" ] } } }, { "Sid": "AllowFederatedAssumeRole", "Effect": "Allow", "Principal": "*", "Action": [ "sts:AssumeRoleWithSAML", "sts:AssumeRoleWithWebIdentity" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": [ "111122223333", "444455556666" ] } } } ] }

La première instruction utilise "Principal": {"AWS": "*"} with aws:PrincipalAccount pour autoriser les AWS principaux authentifiés à partir des comptes spécifiés. La deuxième instruction est utilisée "Principal": "*" pour faire correspondre les appelants fédérés et limite le rôle cible aux mêmes comptes utilisant. aws:ResourceAccount La politique de confiance du rôle reste le principal critère permettant de déterminer quelles identités fédérées peuvent assumer quels rôles.

Exemple : Restreindre à un élément spécifique AWS STS actions

La politique de point de terminaison suivante n'autorise que AssumeRole les principaux authentifiés et AssumeRoleWithSAML les appelants fédérés, tous deux limités à des rôles au sein de votre organisation.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAssumeRoleByOrgPrincipals", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "sts:AssumeRole", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-exampleorgid" } } }, { "Sid": "AllowSAMLFederation", "Effect": "Allow", "Principal": "*", "Action": "sts:AssumeRoleWithSAML", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceOrgID": "o-exampleorgid" } } } ] }

Cette politique bloque d'autres AWS STS actions telles que GetCallerIdentityGetSessionToken, et AssumeRoleWithWebIdentity via ce point de terminaison. Ajustez les Action éléments en fonction de vos besoins.

Exemple : refuser l'accès à une organisation non organisationnelle tout en autorisant la fédération

La politique de point de terminaison suivante utilise un refus explicite pour bloquer les principaux authentifiés extérieurs à votre organisation, tout en préservant l'accès pour les appelants fédérés. Cette approche commence par une autorisation générale et ajoute une déclaration de refus ciblée.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAll", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" }, { "Sid": "DenyNonOrgPrincipals", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "sts:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalOrgID": "o-exampleorgid" } } } ] }

L'instruction deny utilise"Principal": {"AWS": "*"}, ce qui l'étend aux AWS principaux authentifiés uniquement. Les appelants fédérés (SAML et OIDC) ne sont pas AWS des principaux et ne sont pas concernés par cet Principal élément. Le refus ne s'applique donc pas à eux. Cette approche évite d'avoir à recourir à des conditions complexes Null ou à Bool des conditions pour définir des exceptions pour les appelants fédérés.

Note

La première instruction autorise toutes les actions pour tous les principaux. Le refus indiqué dans la deuxième déclaration a priorité pour les AWS principaux authentifiés extérieurs à votre organisation. Les appelants fédérés sont autorisés par la première instruction et ne sont pas affectés par le refus car l'Principalélément de l'instruction de refus ne correspond pas à eux.