AWSのIAMをユーザに割り振ったけど、セキュリティ強化のためにMFA(多要素認証)を強制にしたい場合ってありますよね?
MFAとは
セキュリティを向上させるには、多要素認証(MFA)を設定して AWS リソースを保護することを推奨します。MFA は、AWS ウェブサイトまたはサービスへのアクセス時に承認済みの認証デバイスまたは SMS テキストメッセージから取得した一意の認証コードを入力するようユーザーに要求することで、セキュリティをさらに高めます。
(AWS公式より)
手順
MFAによるアクセスでなければ何もさせたくない場合は
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BlockAnyAccessOtherThanAboveUnlessSignedInWithMFA",
"Effect": "Deny",
"NotAction": "iam:*",
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "false"
}
}
}
]
}
としてIAMのポシリーを作成し、IAMユーザにアタッチすれば良いようです。
NotActionの部分でiamのアクションを許可しているのは、ログインした後、iamの設定画面でmfaを有効化してもらうためです。
厳密にはiamのmfa有効化のアクションのみに絞るべきですね。
(ただ、ユーザにMFAを有効化するにはどうするかを教えなければいけません。。MFA有効化を管理者が行い、初期ログイン時に設定フローが出てくる、とかしてほしいです。。。)
上記ポリシーをアタッチしたユーザでMFAを使わずログインすると、IAM以外はエラーとなり、見えないはずです。
THHacker
10Contribution