AWS CLIでMFA認証を必須にする
AWS CLIはアクセスキーを使用して認証するのでアクセスキーが流出してしまうと
そのユーザの権限でなんでもできてしまう。権限を絞ることで被害を抑えることもできるが
AWS CLIでもMFAの認証を行うこともできる。
明示的な拒否のポリシーの方が強いのでMFA認証されるまでは全てのアクションが拒否されるが
認証後は全てのアクションが許可される。
AWS CLIでMFA認証するためのaws sts get-session-tokenを実行するのに必要な権限はない
policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": false
}
}
}
]
}
###認証方法
MFA認証するにはget-session-tokenでセッショントークンを取得して環境変数に入れる必要がある。
console
aws sts get-session-token --serial-number arn:aws:iam::アカウントID:mfa/ユーザ名 --token-code ワンタイムパスワード
{
"Credentials": {
"AccessKeyId": "xxxxxxxxxxxxxxxxxx",
"SecretAccessKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"SessionToken": "xxxxxxxxxxxxxxxxxxxxxxxx",
"Expiration": "yyyy-mm-ddThh:MM:ssZ"
}
}