2016-01-14 59 views
1

我知道可以通過將另一層(虛擬/硬件)MFA放在密碼上來增強安全性。我可以通過MFA保護訪問密鑰嗎?如何使用MFA保護IAM訪問密鑰?

我想解決的問題是,我會有一段時間不小心將我的訪問密鑰提交到github中。所以我需要一個MFA的東西,

回答

4

是的,你可以通過添加一個條件到你的IAM策略,需要最近的MFA認證。例如,

{ 
    "Version": "2012-10-17", 
    "Statement": [{ 
    "Effect": "Allow", 
    "Action": ["ec2:*"], 
    "Resource": ["*"], 
    "Condition": {"NumericLessThan":  {"aws:MultiFactorAuthAge": "3600"}} 
    }] 
} 

如果您在過去一小時內使用MFA進行了身份驗證,則允許訪問ec2 Apis。文檔中有more examples

這要求您使用您的憑證和MFA代碼調用GetSessionToken api,然後使用返回的臨時憑證來進行實際的api調用。

如果您的代碼在EC2上運行,那麼您應該改爲使用IAM角色 - 這會在每隔幾小時輪換一次的實例上設置可用憑據。

+0

感謝您的答案,只是好奇,然後我怎麼能在多因素密鑰例如使用aws-cli,或應用程序開始持有這個訪問鍵連接到其他應用程序。 –

+0

對於在ec2實例上運行的代碼,您應該將IAM角色分配給實例。 Aws cli允許您獲取臨時證書(http://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html),然後您可以將其導出爲環境變量,以便將來調用aws CLI –