IAM のベストプラクティスと MFA
MFA を有効にし、アクセスキーをローテーションし、IAM 認証情報レポートを使用して、監査で見つかりやすい一般的な IAM の設定ミスを確認します。
「IAM のベストプラクティスと MFA」はCoddyKit上の無料AWS Solutions Architectレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Solutions Architect学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Solutions Architectコースには全4レッスンが含まれています。
IAM ベストプラクティスの概要
AWS には、試験で頻繁に問われる公式の IAM チェックリストがあります。ルートユーザーを厳重に保護し、MFA を有効にし、アクセスキーよりロールを使用し、最小権限を付与し、認証情報をローテーションします。
rootユーザーを厳重に保護する
rootユーザーはどのポリシーでも制限できないため、MFAを有効にし、アクセスキーを削除して、どうしても必要なまれな作業に限って使用するなど、厳重に保護してください。
# Check if root account has MFA enabled (from Security Hub or Trusted Advisor)
aws securityhub get-findings \
--filters '{"RecordState":[{"Value":"ACTIVE","Comparison":"EQUALS"}],"Title":[{"Value":"MFA should be enabled for the root account","Comparison":"CONTAINS"}]}' \
--query 'Findings[].Title'多要素認証(MFA)
MFAは、パスワードに加えて、アプリから取得するコードやハードウェアキーなど、2つ目の認証要素を追加します。すべての人間ユーザー、特に管理者では必ず有効にしてください。
# Enable a virtual MFA device for a user
aws iam enable-mfa-device \
--user-name alice \
--serial-number arn:aws:iam::123456789012:mfa/alice \
--authentication-code1 123456 \
--authentication-code2 789012MFAデバイスの種類
AWSはMFAデバイスとして、認証アプリ、ハードウェアトークン、FIDOセキュリティキー(最も安全な方式)、SMS(最も安全性が低いため、管理者には避けるべき方式)の4種類をサポートしています。
アクセスキーのローテーション
長期アクセスキーには有効期限がないため、約90日ごとにアクセスキーをローテーションしてください。同時に2つのキーを使用できるため、ダウンタイムなしで切り替えられます。
# Step 1: Create new access key
aws iam create-access-key --user-name alice
# Step 2: After updating all apps to new key, deactivate old key
aws iam update-access-key \
--user-name alice \
--access-key-id AKIAIOSFODNN7EXAMPLE \
--status Inactive
# Step 3: Delete old key
aws iam delete-access-key \
--user-name alice \
--access-key-id AKIAIOSFODNN7EXAMPLEIAM認証情報レポート
IAM認証情報レポートは、各ユーザーのパスワードの経過日数、キーのローテーション状況、MFAの状態を一覧にしたCSVファイルです。毎月取得して、古い認証情報やリスクのある認証情報を見つけてください。
# Generate and download the credential report
aws iam generate-credential-report
aws iam get-credential-report \
--query 'Content' \
--output text | base64 --decode > iam-credential-report.csvアプリケーションでは長期アクセスキーよりロールを優先する
AWS上で実行するもの(EC2、Lambda、ECSなど)には、長期アクセスキーではなくIAMロールを使用してください。ロールを使えば認証情報が自動的に更新され、コード内に認証情報を保存せずに済みます。
IAMパスワードポリシー
アカウントのパスワードポリシーを設定して、コンソール用の強固なパスワードを必須にしてください。十分な最小文字数、文字種の組み合わせ、定期的な有効期限、過去のパスワードの再利用禁止などを設定します。
# Set a strong password policy
aws iam update-account-password-policy \
--minimum-password-length 14 \
--require-uppercase-characters \
--require-lowercase-characters \
--require-numbers \
--require-symbols \
--max-password-age 90 \
--password-reuse-prevention 5分離のためにアカウントを分ける
最も強固に分離するには、本番環境と開発環境で別々のアカウントを使用します。異なるアカウントに分けておけば、開発環境の誤ったポリシーが本番環境に影響することはありません。
CloudTrailでIAMアクティビティを監視する
すべてのIAM操作はCloudTrailに記録されます。rootユーザーによるログインやポリシーの変更などに対するアラームを設定すれば、不正利用を早期に検知できます。
# Create a CloudWatch metric filter for root account usage
aws logs put-metric-filter \
--log-group-name CloudTrail/MainTrail \
--filter-name RootAccountUsage \
--filter-pattern '{$.userIdentity.type="Root"}' \
--metric-transformations metricName=RootAccountUsageCount,metricNamespace=IAMSecurity,metricValue=1AWS Trusted AdvisorのIAMチェック
Trusted Advisorは簡単なセキュリティチェックを実行し、MFAが設定されていないrootアカウント、rootアクセスキー、さらには公開コードリポジトリに漏洩したキーまで検出します。
クイックチェック
このレッスンで学んだAWS Solutions Architect(SAA-C03)の概念について、理解度を確認しましょう。
レッスンのまとめ
簡単にまとめると、MFAでrootを保護し、キーをローテーションしてロールを優先し、認証情報レポート、CloudTrail、Trusted Advisorを使ってIAMを監視します。次はEC2の基本事項です。
よくある質問
「IAM のベストプラクティスと MFA」レッスンは無料ですか?
はい。「IAM のベストプラクティスと MFA」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Solutions Architectコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Solutions Architectコースには全4レッスンが含まれています。
「IAM のベストプラクティスと MFA」で何を学びますか?
MFA を有効にし、アクセスキーをローテーションし、IAM 認証情報レポートを使用して、監査で見つかりやすい一般的な IAM の設定ミスを確認します。 ブラウザで直接実行するハンズオンコードでAWS Solutions Architectを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AWS Solutions Architectを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAWS Solutions Architectは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「IAM のベストプラクティスと MFA」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAWS Solutions Architectレッスンでコードを書いて実行できますか?
はい。すべてのAWS Solutions Architectレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- IAM ユーザーとグループ
- IAM ロールとポリシー
- 最小権限の原則
- IAM のベストプラクティスと MFA