2017-12-27 10 views

Antwort

1

Sie sollten in der Lage sein, eine MFA-Bedingung zu den relevanten API-Aktionen hinzuzufügen. Zum Beispiel ist hier eine IAM-Richtlinie, die es dem Inhaber erlaubt, EC2-Aktionen frei aufzurufen, aber MFA erfordert, wenn StopInstances oder TerminateInstances aufgerufen werden.

{ 
    "Version": "2012-10-17", 
    "Statement": [{ 
    "Effect": "Allow", 
    "Action": ["ec2:*"], 
    "Resource": ["*"] 
    },{ 
    "Effect": "Deny", 
    "Action": ["ec2:StopInstances", "ec2:TerminateInstances"], 
    "Resource": ["*"], 
    "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": false}} 
    }] 
} 

Ein detaillierteres Beispiel finden Sie unter here.

1

Der genaue Anwendungsfall ist nicht möglich. Sie können jedoch die erforderliche Berechtigung z. StopInstances zu einer IAM-Rolle und geben Sie dem IAM-Benutzer nur die Berechtigung, die Rolle if and only if the user uses MFA anzunehmen. Das Vertrauen Politik der Rolle wird wie folgt sein:

{ 
    "Version": "2012-10-17", 
    "Statement": { 
    "Effect": "Allow", 
    "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, 
    "Action": "sts:AssumeRole", 
    "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "true" } } 
    } 
} 

Während also die Verwendung der Konsole IAM Benutzer mit Anmeldeinformationen und MFA-Token anmelden und in der Lage, die Rolle zu übernehmen Sie die Instanz zu stoppen.

Während der Verwendung von CLI können Sie die Variable named profiles with "mfa_serial" verwenden. Wenn der Benutzer versucht, die Instanz mit dem benannten Profilparameter zu stoppen, fragt das CLI nach dem MFA-Code (beachten Sie, dass die zurückgegebenen Anmeldeinformationen in CLI zwischengespeichert werden).

Alternativ können Sie den von jarmod bereitgestellten Vorschlag verwenden und benutzerdefiniertes Skript verwenden, da Sie GetSessionToken aufrufen und das MFA-Token übergeben müssen. Es gibt ein Beispiel für Python und C# Skript here.

Verwandte Themen