前記事を読んでいない方はこちらを参照。
-
-
AWS - 不正利用事例の確認と考え方
AWSはAzureと比べてインターネット上に情報が沢山存在する。市場シェアが高く、ユーザが多いためである。そのため、このサイトではよくあるEC2の立て方、使い方といった内容を説明するのではなく、現場が ...
続きを見る
このページはAWSを始めるにあたって、初めに実施すべきセキュリティ対策について説明している。
このページの対策を上から実施していけば、AWSへの不正アクセス対策となるように記事を構成している。EC2やs3へのアクセス対策はまた別の機会に説明する予定だ。
ポイント
- rootユーザのMFA登録
- 裁判所変更
- IAMユーザのグローバルIP 制限ロール作成
- IAMユーザで請求書を確認する方法(オプション)
- サポート契約
- 管理者用IAMユーザ作成
ルートユーザのMFA登録
これは必須。一番最初に必ず設定する対策だ。逆にいうと、どの端末をMFAの端末とするか、決めてないうちにAWSと契約しない方が良いくらいである。MFAを設定することでログインが二段階認証になるため、rootユーザが乗っ取られるリスクを大幅に減らせることができる。
手順は以下の通り。
step
1rootユーザでログインした後、サービスからIAMに移動。
step
2画面の通り、MFAを選択し、指示通りに設定。
step
3一度rootユーザでログインを試す。
AWSの資料にも以下の通り強くお勧めと記載がある。
引用:強くお勧めしているのは、日常的なタスクには、それが管理者タスクであっても、root ユーザーを使用しないことです。
参考:https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_root-user.html
なぜrootユーザで作業をしてはいけないのか
ポイント
AWSのすべてのリソースに無制限でアクセスできてしまうから。
このアカウントを乗っ取られたらすべてが終わりである。rootユーザは、AWSのすべての作業が行える。このrootアカウントのみが請求書や連絡先メールアドレスまで変更可能である。
日常的にrootユーザを使うとさまざま弊害が出てきてしまう。例えば、わずらわしさからパスワードを簡単にする、ログイン方法を一段階認証にする等である。セキュリティ意識が低くならないようにrootユーザは通常使うべきではないのだ。人間めんどくさいと感じたら、どんどん簡略省略してしまうのが性だ。
裁判所変更
ポイント
AWSのアカウントを作った時点のデフォルト設定では、紛争の裁判所は海外の裁判所となっている。
手順は以下の通り。
step
1rootユーザでログインした後、サービスからartifactに移動。
step
2画面の通り、カスタマーアグリーメントを選択。
step
3指示通りに内容を確認して、承諾する。
参考:https://aws.amazon.com/jp/blogs/news/how-to-change-aws-ca-by-artifact/
IAMユーザのグローバルIP 制限ロール作成
ポイント
この設定を行うことで、AWSコンソールにログインすることができるユーザの、接続元グローバルIPを制限することができる。
AWSコンソールへの接続元IP制限ロールを設定する。このロールというものを作成することで、ユーザに権限を付与したり、権限を外したりできる。
この設定をする時点では、ロールって何?って人がいるかもしれないが、詳しい理解は後にして、とりあえず手順通りに設定しておこう。
ポイント
この接続元IP制限は、悪意ある外部の第三者からのアクセスを防ぐと同時に社員からの情報流出を防ぐことにもなる。
設定手順は以下の通り。
step
1rootユーザでログイン(権限あれば他ユーザも可)
step
2サービスからIAMに移動
step
3左側のポリシー → ポリシーの作成を選択
step
4下記の通り作成し、名前を決めて保存
制限の記述は以下の通り。IPアドレスはCMAN等で調べてから書き換えてください。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"10.0.2.0/24",←ここにIP指定
"172.50.1.2/32"←ここにIP指定
]
}
}
}
}
step
5作成したポリシーを再度選択し、ポリシーのアクション → アタッチを選択
step
6画面の通り、ポリシーの使用状況からグループを選択し、アタッチ
step
7例)試しにスマートフォン等職場のIP以外からコンソールログインできないことを確認する。
参考:https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html
参考:https://aws.amazon.com/jp/premiumsupport/knowledge-center/iam-restrict-calls-ip-addresses/
IAMユーザで請求書を確認する方法(オプション)
デフォルト設定では、請求情報はrootユーザでしか確認できない。しかし、実はこれ運用上不便である。そのため、画像の通り特別なロールを有効化する。
step
1rootユーザでログイン(権限あれば他ユーザも可)
step
2画面右上のアカウントからマイアカウントに移動
step
3画面を下にスクロールし、IAMユーザによる請求情報へのアクセスの編集→有効化する
注意ポイント
IAMロールを編集できるIAMユーザやグループが存在する場合、ロールを設定し、他ユーザも請求情報が閲覧可能となる。それはつまり、AWSのサービスを会社間で共有している場合は、設定次第では会社間で請求情報を閲覧可能となるため注意が必要。社外に請求情報を開示したくない場合は、このロールは有効化しない方がよい。
参考:https://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html
サポート契約
「AWSはインターネットに情報が沢山あるからサポート契約なんていらないじゃん。」という声があることに驚きだ。
開発を行う上でインターネットなどの誰が書いたかわからい情報を頼りにするべきではない。このサイトも、ノウハウを提供しているに過ぎない。開発の責任はとれないのだ。
そして、サポートもある程度のレベルの契約(ビジネスだったかと。)になると、個別設定まで見てくれるようになる。これは便利だ。
どういうことか。例えばEC2に接続できない。といった問い合わせに対して、EC2のIDをサポートに連携すると、そのIDを確認して、EC2周りの設定まで見てくれるのだ。「そして、どこどこの設定が違います。」といった回答をサポートはくれる。
サポート契約の設定手順は以下の通りだ。
step
1rootユーザでログイン(権限あれば他ユーザも可)
step
2サービスからサポートに移動
step
3画面の通り、サポートプランを変更し、有効化する。
参考:https://aws.amazon.com/jp/premiumsupport/business-support/
管理者用IAMユーザ作成
この作業が終わったらrootユーザを使うことが、ほぼなくなる。
IAMサービスからユーザを作成し、さきほどの接続元IP制限のロールをアタッチして完了だ。(ロールをアタッチしたグループにユーザを所属させることでも可)ここまで設定してきた方なら、IAMユーザの作成方法は直感的に理解できていると思われるため割愛する。
なお、作成したIAMユーザにも、同様にMFAを設定することでセキュリティリスクを大幅に減らすことができる。
注意ポイント
ユーザ作成後の、アクセスURLやパスワードが記載してあるcsvは必ずダウンロードして保管すること。そして、コンソールログインはそのURLで行うこと。
参考:https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/getting-started_create-admin-group.html
今回はここまで。次回は別の話題を記事化予定。