如何使用 MFA 保护 IAM 访问密钥?
How to secure IAM access key with MFA?
我知道可以通过在密码上放置另一层 (virtual/hardware) MFA 来增强安全性。我可以通过 MFA 保护访问密钥吗?
我试图解决的问题是,有时我会不小心将访问密钥提交到 github。所以我需要一个 MFA 的东西,
是的,您可以通过在 IAM 策略中添加一个要求最近进行 MFA 身份验证的条件来实现。例如,
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["ec2:*"],
"Resource": ["*"],
"Condition": {"NumericLessThan": {"aws:MultiFactorAuthAge": "3600"}}
}]
}
如果您在过去一小时内通过 MFA 进行身份验证,则允许访问 ec2 API。文档中有more examples。
这需要您使用您的凭据和 MFA 代码调用 GetSessionToken api,然后将返回的临时凭据用于您的实际 api 调用。
如果您的代码是 运行 在 EC2 上,那么您应该改用 IAM 角色 - 这会设置实例上可用的凭据,每隔几个小时轮换一次。
我知道可以通过在密码上放置另一层 (virtual/hardware) MFA 来增强安全性。我可以通过 MFA 保护访问密钥吗?
我试图解决的问题是,有时我会不小心将访问密钥提交到 github。所以我需要一个 MFA 的东西,
是的,您可以通过在 IAM 策略中添加一个要求最近进行 MFA 身份验证的条件来实现。例如,
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["ec2:*"],
"Resource": ["*"],
"Condition": {"NumericLessThan": {"aws:MultiFactorAuthAge": "3600"}}
}]
}
如果您在过去一小时内通过 MFA 进行身份验证,则允许访问 ec2 API。文档中有more examples。
这需要您使用您的凭据和 MFA 代码调用 GetSessionToken api,然后将返回的临时凭据用于您的实际 api 调用。
如果您的代码是 运行 在 EC2 上,那么您应该改用 IAM 角色 - 这会设置实例上可用的凭据,每隔几个小时轮换一次。