2017-12-27 28 views

답변

1

관련 API 작업에 MFA 조건을 추가 할 수 있어야합니다. 예를 들어 베어러가 EC2 작업을 자유롭게 호출 할 수 있도록하는 IAM 정책은 있지만 StopInstances 또는 TerminateInstances를 호출 할 때는 MFA가 필요합니다.

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

더 자세한 예는 here을 참조하십시오.

1

정확한 사용 사례는 불가능합니다. 그러나 필요한 권한을 부여 할 수 있습니다. IAM 역할에 대한 인스턴스 중지 및 IAM 사용자에게 역할이 부여되는 경우에만 if and only if the user uses MFA 권한을 부여합니다. 역할의 신뢰 정책은 다음과 같은 것입니다 :

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

그래서 콘솔을 사용하는 동안, IAM 사용자는 자격 증명 및 MFA 토큰에 로그인하고 인스턴스를 중지 할 수있는 역할을 할 수있을 것입니다.

CLI를 사용하는 동안 named profiles with "mfa_serial" 변수를 사용할 수 있으며 사용자가 명명 된 프로필 매개 변수로 인스턴스를 중지하려고하면 CLI에서 MFA 코드를 요청합니다 (반환 된 자격 증명은 CLI에 캐시됩니다).

또는 GetSessionToken을 호출하고 MFA 토큰을 전달해야하므로 jarmod가 제공 한 제안을 사용하고 사용자 정의 스크립트를 사용할 수 있습니다. 샘플 Python과 C# 스크립트 here이 있습니다.