Frank vous montre comment
protéger vos compartiments S3 AWS
à l'aide d'un appareil MFA

frank_enforce_mfa_other_account_access_bucket

Pour une sécurité supplémentaire, je souhaite demander aux utilisateurs d'autres comptes AWS d'utiliser un appareil MFA (authentification multi-facteurs) pour accéder à mes compartiments Amazon Simple Storage Service (Amazon S3). Quelle est la marche à suivre ?

Ajoutez à votre stratégie de compartiment des conditions liées à MFA exigeant que les utilisateurs d'autres comptes AWS s'authentifient à l'aide d'un appareil MFA.

Avant de commencer, les utilisateurs d'autres comptes AWS doivent respecter les conditions requises suivantes :

  • Ils doivent disposer des autorisations pour accéder à Amazon S3. Par exemple, les utilisateurs respectent cette condition si la stratégie gérée par AWS AmazonS3FullAccess est incluse dans leurs stratégies AWS Identity and Access Management (IAM).
  • Ils doivent disposer d'une stratégie IAM attachée qui les autorise à appeler GetSessionToken.
  • Ils doivent avoir un appareil MFA configuré pour être utilisé avec leur identité IAM.

Ensuite, créez une stratégie de compartiment qui utilise les conditions aws:MultiFactorAuthPresent ou aws:MultiFactorAuthAge. Ces conditions déterminent si l'utilisateur s'est authentifié à l'aide d'un appareil MFA.

Par exemple, supposons que vous souhaitiez refuser à un utilisateur d'un autre compte l'autorisation d'exécuter des actions s3:PutObject, s3:PutObjectAcl ou s3:DeleteObject, sauf s'il s'authentifie à l'aide d'un appareil MFA. Vous pouvez écrire une stratégie de compartiment en deux parties :

1.    La première partie peut refuser explicitement ces actions lorsque l'utilisateur n'est pas authentifié à l'aide d'un appareil MFA (la condition "aws:MultiFactorAuthPresent": "false" est remplie), comme suit :

{
    "Version": "2012-10-17",
    "Id": "Policy201612130001aa",
    "Statement": [
        {
            "Sid": "Stmt201612130001ab",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::example.accounta.bucket/*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        },
...

2.    La deuxième partie de la stratégie peut autoriser explicitement ces actions lorsque l'utilisateur s'est authentifié à l'aide d'un appareil MFA (la condition "aws:MultiFactorAuthPresent": "false" n'est pas remplie), comme suit :

...
        {
            "Sid": "Stmt201612130001ac",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::example.accounta.bucket",
                "arn:aws:s3:::example.accounta.bucket/*"
            ]
        }
    ]
}

Lorsque vous ajoutez une stratégie de compartiment de ce type à votre compartiment, les utilisateurs peuvent exécuter la commande de l'interface de ligne de commande AWS get-session-token afin d'obtenir les informations d'identification requises pour accéder aux ressources de votre compartiment. Cette commande nécessite que l'utilisateur fournisse :

  • Le code temporaire généré par l'appareil MFA
  • Le numéro de série de l'appareil s’il s’agit d’un appareil MFA matériel, ou l’Amazon Resource Name (ARN) s’il s’agit d’un appareil MFA virtuel

Remarque : Pour obtenir les informations d'identification, les utilisateurs peuvent choisir d'exporter les informations d'identification temporaires en tant que variables d'environnement.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 27/1/2016

Date de mise à jour : 25/10/2018