IAMユーザ毎にMFAを適用して、セキュアな利用にする
AWSの運用では、ルートアカウントは最初の作成時以外は、利用せず、Administrator権限を持つIAMユーザを一つ作成したら、Administrator権限を持つIAMユーザで、個々のポリシーを持つIAMユーザを作っていくことになります。
今回は、個々のポリシーを持つIAMユーザを作成時にMFAを導入して、なりすまし防止に向けたサインインのセキュリティ対策を強化について紹介します。
MFAの設定ができるポリシーを作成
IAMダッシュボードの「ポリシー」を押し、「ポリシーの作成」を押します。
以下の画面が出るので、JSONタブを選択し、ポリシーを記述します。
ポリシーを記述したら、「ポリシーの確認」を押します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListActions",
"Effect": "Allow",
"Action": [
"iam:ListUsers",
"iam:ListVirtualMFADevices"
],
"Resource": "*"
},
{
"Sid": "AllowIndividualUserToListOnlyTheirOwnMFA",
"Effect": "Allow",
"Action": [
"iam:ListMFADevices"
],
"Resource": [
"arn:aws:iam::*:mfa/*",
"arn:aws:iam::*:user/${aws:username}"
]
},
{
"Sid": "AllowIndividualUserToManageTheirOwnMFA",
"Effect": "Allow",
"Action": [
"iam:CreateVirtualMFADevice",
"iam:DeleteVirtualMFADevice",
"iam:EnableMFADevice",
"iam:ResyncMFADevice"
],
"Resource": [
"arn:aws:iam::*:mfa/${aws:username}",
"arn:aws:iam::*:user/${aws:username}"
]
},
{
"Sid": "AllowIndividualUserToDeactivateOnlyTheirOwnMFAOnlyWhenUsingMFA",
"Effect": "Allow",
"Action": [
"iam:DeactivateMFADevice"
],
"Resource": [
"arn:aws:iam::*:mfa/${aws:username}",
"arn:aws:iam::*:user/${aws:username}"
],
"Condition": {
"Bool": {
"aws:MultiFactorAuthPresent": "true"
}
}
},
{
"Sid": "BlockMostAccessUnlessSignedInWithMFA",
"Effect": "Deny",
"NotAction": [
"iam:CreateVirtualMFADevice",
"iam:EnableMFADevice",
"iam:ListMFADevices",
"iam:ListUsers",
"iam:ListVirtualMFADevices",
"iam:ResyncMFADevice"
],
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "false"
}
}
}
]
}
AWSのユーザガイドのドキュメントでも上記ポリシーの記述が解説されています。
IAM: IAM ユーザにMFAデバイスの自己管理を許可する
上記コードを、そのままコピペしてポリシーを作成します。
以下の画面が出るので、ポリシーの名前とポリシーの説明を入力します。
ポリシーの名前「MfaDeviceEnable」
ポリシーの説明「Iam account can use mfa-device management」
※説明欄は、英数字のみです。後で振り返っても、分かれば何でも良いです。
入力を終えたら、「ポリシーの作成」を押します。
MFAの設定ができるポリシーをIAMユーザに適用
次に作成したポリシーをIAMユーザに適用します。
IAMダッシュボードの「ユーザ」を押し、IAMユーザを選択します。
今回は、画面に見えるIAMユーザの「iam-test2」を押します。
以下の画面が出るので、アクセス権限のタブの「アクセス権限の追加」を押します。
以下の画面が出るので、「既存のポリシーを直接アタッチ」を選択し、フィルタ欄で「Mfa」と入力すると、先ほど作成したポリシー「MfaDeviceEnable」が表示されます。
「MfaDeviceEnable」にチェックをつけ、「次のステップ:確認」を押します。
IAMダッシュボードのユーザ画面になり、IAMユーザ「iam-test2」にMFA管理を行うことができるポリシー「MfaDeviceEnable」が付与されていることが確認できます。
それでは現在のIAMユーザからサインアウトして、「iam-test2」でサインインします。
IAMユーザのMFA管理を開始する(ワンタイムパスワード)
「iam-test2」でサインインし、IAMダッシュボードの画面行くと、以下のように様々なエラーが発生していますが、気にせず、IAMダッシュボードの左の欄の「ユーザ」を押します。
以下の画面が出るので、認証情報タブを選択し、MFAデバイスの割り当ての「管理」を押します。
MFAの設定を最後まで確認したい方は、以下のリンク先にてIAMユーザの作成とセキュリティ対策で紹介しているので、こちらをご覧ください。
まとめ
・IAMユーザ個々でMFAの設定を行うには、MFAの管理設定が可能なポリシーを作成し、IAMユーザに適用する必要がある。
オススメ参考書籍
AWSを初めて学ぶ人、操作する人は以下の書籍が、とっかかり(最初の第一歩)としてお勧めです。
① コンソール操作画面付きで、基礎知識と合わせて、丁寧に設定方法を解説
② AWSシステムを構築する上で基礎となる概念「VPC」、「AZ」、「パブリック/プライベートサブネット」、「ネットワークACL」、「セキュリティグループ」等の解説もある
③ パターン別の設計として、Wordpress(Webサーバ)、MySQL(DBサーバ)を使ったシステム構築等も解説している
初心者には非常に役に立つ解説本となっていますので、一番お勧めします。
以下の書籍もAWSシステムの基礎概念や様々なサービスを紹介しています。
資格取得に向けた問題も掲載されています。
AWSのことはあまり知らない & 資格も取りたいって人向けです
コメント