
AWSのセキュリティ対策|権限・公開設定・鍵・ログの点検項目
AWSのセキュリティは、AWSが基盤を守り、利用者がアカウントと権限、公開と暗号化の設定、アクセスキー、操作ログと検知の4つを点検する分担で成り立つ。
| 範囲 | 最初に確かめる項目 | 見る場所 |
|---|---|---|
| アカウントと権限 | ルートのMFA、管理者権限のID | 認証情報レポート、IAMの許可ポリシー |
| 公開と暗号化の設定 | 外から読めるS3、全開放のポート | Security Hub CSPM |
| アクセスキー | 古いキー、使っていないキー | 認証情報レポート |
| 操作ログと検知 | CloudTrail・GuardDuty | 全リージョンの設定 |
AWSのセキュリティで利用者が担う範囲と対策の一覧
利用者が担うのは、基盤の上に置くID・設定・データの守りで、点検するのは権限、公開と暗号化の設定、アクセスキー、ログと検知の4つだ。
利用者が設定する範囲:アカウント・権限・データ・通信・ログ
AWSは『責任共有モデル』で、AWSの責任を「クラウドのセキュリティ」、利用者の責任を「クラウドにおけるセキュリティ」と分け、OSの更新、データの暗号化の選択、セキュリティグループの設定を利用者の担当としている。
総務省は2022年10月の『クラウドサービス利用・提供における適切な設定のためのガイドライン』で、IPAの2021年の届出では不正アクセスの原因のおよそ17.7%が設定不備だったと紹介している。
設定の誤りから入られる経路
次の3つは編集上の想定例だ。
| 経路 | 誤った設定 | 入られた後 |
|---|---|---|
| 1 公開したS3 | 検証用に誰でも読めるようにした | 本番データを読まれる |
| 2 長期のキー | 設定ファイルのキーを読まれた | キーの権限で持ち出される |
| 3 管理ポート | SSH・RDPを誰にでも開けた | ロールの権限でAPIを呼ばれる |
2のうち、キーを盗まれる被害は観測されている。FBIとCISAは2024年1月の共同勧告で、Androxgh0stを使う攻撃者が.envファイルから盗んだAWSの認証情報で、ユーザーやポリシー、スキャン用のインスタンスを作ろうとしたと報告した。
2と3では、キーやロールの権限の広さが、入られた後にできる操作を決める。
AWSのセキュリティ対策の基本:ルートユーザー・MFA・IAM権限の点検
基本の対策は、ルートユーザーにMFAを設定してアクセスキーを持たせず、管理者権限のIDと使っていない権限を洗い出すことだ。
ルートユーザーとMFAの点検
AWSは『ルートユーザーのベストプラクティス』で、ルートユーザーのアクセスキーを作らず、MFAを設定し、日常の作業には別の管理用ユーザーを使うよう勧めている。
IAMの認証情報レポートには、ルートユーザーの行もある。この行を次のように読む。
IAMの過剰な権限と未使用のID
AWSは『IAMのセキュリティのベストプラクティス』で、必要な権限だけを付け、使っていないID・権限・認証情報を定期的に見直して消すよう勧めている。管理者権限のポリシーが付いたユーザー・ロールを一覧にし、持ち主と用途を書き込む。
IAM Access Analyzerの未使用アクセスの分析は、指定した期間に使われていないロール・キー・パスワード・権限を検出する。ロールは、引き受けを許す相手に取引の終わった委託先が残っていないかも見る。
公開設定とセキュリティグループの点検:ストレージ・ポート・サーバー
AWSのS3とEC2のセキュリティ対策では、誰からでも読めるS3と全開放のポートを洗い出し、サーバーの設定と保存データの暗号化を確かめる。
S3の公開設定とパブリックアクセスのブロック
S3の新しいバケットは非公開で作られ、公開はバケットポリシー・ACL・アクセスポイントのポリシーで起きる。パブリックアクセスのブロックの4つの設定は、これらより優先して公開を止める。
AWSはアカウント単位で4つとも有効にするよう勧めている。公開や他のアカウントとの共有を許すバケットは、IAM Access Analyzer for S3で一覧にできる。
セキュリティグループで開いているポートと接続元
Security Hub CSPMのEC2の管理項目は、全ての接続元(0.0.0.0/0や::/0)からポート22・3389への受信を許すセキュリティグループを、重大度「高」で検出する。受信ルールの接続元が全開放のものを、ポートごとに一覧にする。
サーバーの管理は、Systems ManagerのSession Managerを使えば受信ポートを開けずにできる。データベースのポートは、Webアプリのサーバーのセキュリティグループからの接続だけに絞る。
EC2・コンテナの設定:IMDSv2・パッチ・実行ユーザー
EC2のインスタンスメタデータサービス(IMDS)からは、付けたIAMロールの一時的な認証情報を取り出せる。AWSのセキュリティブログ(2019年11月)によれば、トークンを先に取るIMDSv2は、設定の甘いWAFやSSRFの脆弱性を経由した読み出しの大半を防ぐ。Security Hub CSPMは、IMDSv2を必須にしていないインスタンスを検出する。コンテナでは、特権モードを使っていないか、Linuxのコンテナをroot以外で動かしているかがECSの管理項目にある。
Amazon Inspectorは、EC2・ECRのコンテナイメージ・Lambda関数の脆弱性を継続してスキャンする。スキャンから漏れたサーバーやイメージがないかを確かめる。Systems Managerで管理するEC2のパッチの適用状況は、Security Hub CSPMで見られる。
保存データの暗号化とKMSのキーポリシー
EBSの既定の暗号化はリージョンごとの設定で、有効にしても既存のボリュームは暗号化されない。RDSは作成時にしか暗号化できず、後からはスナップショットの暗号化したコピーから復元する。各リージョンの既定の暗号化と、暗号化されていないボリューム・DBを一覧にする。KMSのキーはキーポリシーで使える人と操作が決まる。IAMのポリシーで全てのキーに復号を許していないかも見る。
アクセスキーの管理と操作ログ・検知の点検
長期のアクセスキーは洗い出して一時的な認証情報に置き換え、漏れたときに気づけるようCloudTrailとGuardDutyを全リージョンで有効にする。
長期のアクセスキーの洗い出しと置き換え
IAMユーザーのアクセスキーは、消すまで有効な長期の認証情報で、キーIDがAKIAで始まる。認証情報レポートの作成・更新日と最終使用日で、作ってから長いキーと、使われていないキーを洗い出す。置き換えは次の順に進める。
AWSはキーをコードに埋め込まないよう勧めている。リポジトリや公開中の設定ファイルにキーがないかも確かめる。
操作ログと脅威検知の有効範囲
CloudTrailは、管理イベントの直近90日分をコンソールで見られるが、継続した記録には証跡が要る。AWSは、全リージョンを記録する証跡、ログの整合性の検証、ログを置くS3バケットの権限の絞り込みとMFA削除を勧めている。
GuardDutyはリージョン単位で、AWSは使っていないリージョンでも有効にするよう勧めている。全リージョンで有効にし、検出結果を担当者に通知する。漏れたキーが使われたと疑うときは、そのキーで呼ばれたAPI、時刻、接続元のIPアドレスをキーの持ち主に確かめる。
この記事の項目の多くは、Security Hub CSPMの『AWS基礎セキュリティのベストプラクティス』の標準で継続して評価できる。各リージョンでAWS Configの記録が前提になる。
点検の結果は4つの範囲ごとに「問題なし」「直す」「持ち主が分からない」で書き分ける。
クラウド・サーバーを個別に詳しく
IAM権限の棚卸し手順|未使用ID・最小権限・ロールの信頼条件
IAM権限の棚卸しの手順をAWSを例に説明する。最終利用日で未使用のIDとアクセスキーを洗い出す方法とその限界、ポリシーを使う操作と資源に絞る手順、ロールの信頼ポリシーと外部IDの確認、残す記録の項目を扱う。

よくある質問
AWSの責任共有モデルで、利用者が守るのはどこまで?
AWSが守るのは基盤で、その上に置くID・設定・データは利用者が守る。OSの更新、データの暗号化の選択、セキュリティグループの設定も利用者の担当だ。
AWSのセキュリティ対策は何から始めればよい?
全ての操作ができるIDから始める。認証情報レポートでルートユーザーにMFAがありアクセスキーがないことを確かめ、管理者権限のユーザー・ロールに持ち主と用途を書く。次に公開設定、古いアクセスキー、ログと検知を見る。
Security HubやGuardDutyを有効にすれば、点検は要らない?
どちらも設定の不備や不審な操作を検出する仕組みで、見つかった権限やキーを残すか消すかは、持ち主と用途を確かめて決める。持ち主の分からないものが多いときは、IAMのユーザー・ロールの棚卸しから始める。
同じカテゴリーの記事
記事一覧を見るIAM権限の棚卸し手順|未使用ID・最小権限・ロールの信頼条件
IAM権限の棚卸しの手順をAWSを例に説明する。最終利用日で未使用のIDとアクセスキーを洗い出す方法とその限界、ポリシーを使う操作と資源に絞る手順、ロールの信頼ポリシーと外部IDの確認、残す記録の項目を扱う。
