MFA: Sicher ist sicher! (2/2)

Anfragen, die über einen Access Key authentifiziert werden (z.B. aws-cli) sind nach Aktivierung der MFA auch weiterhin ohne MFA möglich. Es ist allerdings möglich auch für diese Anfragen eine Authentifizierung über MFA zu erzwingen.

IAM konfigurieren

Über die Policy einer IAM Gruppe/eines IAM Benutzers kann man den Zugriff nur dann erlauben, wenn der Benutzer mittels MFA authentifiziert wurde.

{
    "Version": "2012-10-17",
    "Statement": [{
    "Effect": "Allow",
    "Action": ["*"],
    "Resource": ["*"],
    "Condition": {"Bool":{"aws:MultiFactorAuthPresent": "true"}}
    }]
}

aws-cli verwenden

Mit den oben gemachten Einschränkungen hat ein Benutzer allein mit seinem Access Key keinen Zugriff mehr. Mit seinem Access Key (ID und Secret) und einem MFA-Token kann der Benutzer allerdings temporär einen neuen Access Key ID und ein neues Access Key Secret anfordern. So bekommt der Benutzer dann wieder vollen Zugriff.

Mit folgendem Shell-Script können solche temporären Zugangsdaten erzeugt werden.

#!/bin/bash

# create temporary credentials to use with aws cli and aws sdk js. input params acciunt number, IAM username and MFA token.
# Run with . ./aws-mfa.sh <AWS ACCOUNT NUMBER> <IAM USERNAME> <MFA TOKEN> to export env variables to current shell.

unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
unset AWS_SESSION_TOKEN
unset AWS_SECURITY_TOKEN

CRED=$(aws sts get-session-token --serial-number "arn:aws:iam::$1:mfa/$2" --output text --token-code $3)

AWS_ACCESS_KEY_ID=$(echo $CRED | cut -d ' ' -f 2)
AWS_SECRET_ACCESS_KEY=$(echo $CRED | cut -d ' ' -f 4)
AWS_SESSION_TOKEN=$(echo $CRED | cut -d ' ' -f 5)
AWS_SECURITY_TOKEN=$(echo $CRED | cut -d ' ' -f 5)

export AWS_ACCESS_KEY_ID
export AWS_SECRET_ACCESS_KEY
export AWS_SESSION_TOKEN
export AWS_SECURITY_TOKEN

AWS stellt zu diesem Thema eine vollständige Dokumentation bereit.

Ähnliche Tags

CLI Sicherheit aws

Teilen

           

RSS

  RSS

Newsletter


Andreas Wittig

Andreas Wittig

Ich bin Autor von Author of Amazon Web Services in Action. Ich arbeite als Software Engineer und unabhängiger Berater mit dem Fokus auf AWS und DevOps. Engagiere mich!

Fehlt etwas in meinem Artikel? Ich freue mich auf dein Feedback! @andreaswittig oder andreas@widdix.de.


Veröffentlicht am
Tags aws, CLI, Sicherheit,