

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é
<a name="reference_sts_vpc_condition_keys_federated"></a>

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.

**Topics**
+ [Comment fonctionnent les clés de condition VPC pour les demandes fédérées](#reference_sts_vpc_condition_keys_federated_how)
+ [Exemple : Restreindre la fédération OIDC à un VPC spécifique](#reference_sts_vpc_condition_keys_federated_example_oidc_vpc)
+ [Exemple : restreindre la fédération SAML à un point de terminaison VPC spécifique](#reference_sts_vpc_condition_keys_federated_example_saml_vpce)
+ [Exemple : Restreindre la fédération OIDC par plage d'adresses IP privées au sein d'un VPC](#reference_sts_vpc_condition_keys_federated_example_ip)
+ [Exemple : Restreindre la fédération SAML à plusieurs VPC](#reference_sts_vpc_condition_keys_federated_example_saml_multi_vpc)
+ [Exemple : combinaison de conditions spécifiques au VPC et au fournisseur](#reference_sts_vpc_condition_keys_federated_example_combined)
+ [Exemple : utiliser un RCP pour restreindre l'accès fédéré à un VPC spécifique](#reference_sts_vpc_condition_keys_federated_example_rcp)

## Comment fonctionnent les clés de condition VPC pour les demandes fédérées
<a name="reference_sts_vpc_condition_keys_federated_how"></a>

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:SourceIp`est 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`) utilise`sts.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
<a name="reference_sts_vpc_condition_keys_federated_example_oidc_vpc"></a>

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
<a name="reference_sts_vpc_condition_keys_federated_example_saml_vpce"></a>

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
<a name="reference_sts_vpc_condition_keys_federated_example_ip"></a>

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
<a name="reference_sts_vpc_condition_keys_federated_example_saml_multi_vpc"></a>

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
<a name="reference_sts_vpc_condition_keys_federated_example_combined"></a>

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
<a name="reference_sts_vpc_condition_keys_federated_example_rcp"></a>

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 par`StringNotEquals`. 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'`Null`enregistrement dans les environnements de production.