AWS IAM ベストプラクティス

AWS リソースを保護するために、AWS は以下の AWS Identity and Access Management(IAM)サービスを推奨します – IAMベストプラクティス

Root アカウント – 利用禁止 & アクセスキーを仕舞う

  • 請求情報を含むすべての AWS リソースおよびサービスへのフルアクセス権を持つ AWS ルートアカウントは使用しないでください。
  • AWS ルートアカウントに関連付けられているアクセス許可を制限することはできません。
  • 必要でない場合はアクセスキーを生成しない。
  • 既に生成され、必要でない場合は、アクセスキーを削除します。
  • アクセスキーが必要な場合は、アクセスキーを定期的に回転 (変更) します。
  • ルートアカウントの資格情報またはアクセスキーを共有するのではなく、IAM ユーザーまたはロールを作成して、きめ細かいアクセスを許可する。
  • AWS アカウントで AWS マルチファクタ認証 (MFA) を有効にする。

ユーザー – 個々の IAM ユーザーを作成する

  • AWS ルートアカウントの資格情報を使用して AWS にアクセスするのではなく、他のユーザーと資格情報を共有しないでください。
  • まず、アカウントのセキュリティ資格情報以外のルートユーザーとしてすべてのリソースにアクセスできる管理者ロールを持つ IAM ユーザーを作成します。
  • AWS アカウントへのアクセスを必要とするすべてのユーザーに対して個々のユーザーを作成し、各ユーザに固有の資格情報を付与し、異なるアクセス許可を与える。

アクセス許可 – 最小特権の付与

  • デフォルトでは、IAM ユーザーはアクセス許可なしで作成されます。
  • タスクを実行するために必要な最小限の特権をユーザーに付与する必要があります。
  • 最小限のアクセス許可で開始し、ジョブ関数を実行するために必要なアクセス許可に追加すると、アクセス権をすべて付与してから、それを引き締めようとしている方がはるかに優れています。

パスワード – ユーザーに対して強力なパスワードポリシーを適用する

  • ユーザーに強力なパスワードを作成させ、パスワードを定期的にローテーションするように強制する。
  • 強力なパスワードポリシーを有効にして、ユーザーが少なくとも1つの大文字、1つの数字、どのくらいの頻度でローテーションする必要があるかなどの要件でパスワードを作成するように、パスワード要件を定義します。

MFA – 特権ユーザーの MFA を有効にする

  • セキュリティを強化するために、機密性の高いリソースまたは API へのアクセスが許可されている特権 IAM ユーザーの多要素認証 (MFA) を有効にします。

ロール – EC2 インスタンスで実行されるアプリケーションにロールを使用

  • IAM ユーザーを作成し、そのアプリケーション内で資格情報をハードコードする代わりに、EC2 インスタンスで実行されているアプリケーションにロールを使用します。
  • ロールには永続的な資格情報セットが関連付けられていませんが、自動的にローテーションされる一時的な資格情報を動的に提供します。
  • 資格情報のハードコーディングはアクセスを危険にさらし、また回転させるのが難しい。また、使用して新しい EC2 インスタンスを作成し、資格情報のローテーションを処理する際に問題が発生することがあります。

共有 – ロールを使用した委任

  • IAM ロールを使用して、同じ AWS アカウント、別の AWS アカウント、または外部から認証されたユーザー (企業認証サービスまたは Google、Facebook などを通じて) のユーザーに対して、それらによって想定できるアクセス許可を指定できるようにします。
  • 他のアカウントの IAM ユーザーが許可する権限と、IAM ユーザーがロールを引き受けることが許可されている AWS アカウントを指定するロールを定義できます。

トラック – 不要な資格情報を削除する

  • 必要のない IAM ユーザーと資格情報 (つまり、パスワードとアクセスキー) を削除する。
  • アカウント内のすべての IAM ユーザーと、パスワード、アクセスキー、MFA デバイス、および使用パターンを含むさまざまな資格情報のステータスを一覧表示する資格情報レポートを使用して、削除できる内容を把握する。
  • 最近使用されていないパスワードとアクセスキーは、削除の候補として適している可能性があります。

条件 – 余分なセキュリティのためのポリシー条件を使用する

  • IAM ポリシーがリソースへのアクセスを許可する条件を定義します。
  • 条件は、特定の IP 範囲に限定されたアクセスや、S3 バケットへのアップロードに対する暗号化要求のみを許可するなど、AWS サービスおよびリソースへのよりきめ細かいアクセス制御を提供するのに役立ちます。

監査 – AWS アカウントでのアクティビティの監視

  • AWS の CloudTrail、S3、CloudFront を通じて提供されるロギング機能を有効にして、ユーザーがアカウントで実行したアクションと使用されたリソースを確認します。
  • ログファイルには、操作の時刻と日付、アクションの送信元 IP、不適切なアクセス許可のために失敗したアクションなどが表示されます。

AWS認定試験の練習問題

  • 質問はインターネットから収集され、答えは自分の知識と理解に基づいてマークされます(これはあなたと異なる場合があります)。
  • AWSサービスは毎日更新され、回答と質問はすぐに時代遅れになる可能性がありますので、それに応じて調査してください。
  • AWSのアップデートのペースを追うためにAWS試験の質問は更新されないため、基礎となる機能が変更されても質問が更新されないことがあります。
  • さらなるフィードバック、ディスカッション、修正を可能にします。
  1. 組織では、AWS の使用に関するセキュリティ評価を準備しています。この評価に備えて、2つの IAM ベストプラクティスを実装することを検討してください。2つの回答を選択
    1. 組織内の全員に対して個別の IAM ユーザーを作成する (ロールを使用できるようにする必要がない場合もあります)
    2. ルートアカウントと特権 IAM ユーザーの MFA を構成する
    3. 最小特権アクセスを許可するポリシーで設定された IAM ユーザーとグループを割り当てる
    4. すべてのユーザーが割り当てられ、パスワード、アクセス ID/シークレットキー、および x.509 証明書を頻繁にローテーションしていることを確認します (コンソールまたはコマンドラインを使用している場合にのみ割り当てられる必要があります)。
  2. IAM の推奨されるベストプラクティスを教えてください。(3 つの回答を選択)
    1. 最小特権の付与
    2. 通常ユーザーとして AWS アカウント (ルート) を使用する
    3. マルチファクタ認証を使用する (MFA)
    4. git でアクセスキー/秘密キーを保存する
    5. 資格情報を定期的にローテーションする
  3. AWS のアクセス資格情報を安全に管理するためのベストプラクティスではないものはどれですか?
    1. 権限のあるユーザーに対して MFA を有効にする
    2. 個々の IAM ユーザーを作成する
    3. セキュリティで保護されたアクセス資格情報を一定の間隔でローテーションしておく
    4. 強力なアクセスキーとシークレットアクセスキーを作成し、root アカウントに接続する
  4. あなたの CTO は、AWS アカウントのセキュリティについて非常に心配しています。アカウントを完全に乗っ取るハッカーから、どのように防ぐことができますか?
    1. root アカウントと管理者には、短いが複雑なパスワードを使用します。
    2. AWS IAM Geo ロックを使用し、お客様の市区町村以外のログインを禁止します。
    3. 特に root アカウントでは、すべてのユーザーとアカウントで MFA を使用します。(セキュリティを強化するために、AWS リソースを保護するために MFA を構成することをお勧めします)
    4. AWS アカウントの作成後に、root アカウントのパスワードを書き留めたり覚えたりしないでください。
  5. 空欄を埋める: ____ は、AWS API の呼び出しとトランジションを追跡し、____ が今持っているリソースを理解するのに役立ち、____ は監査の資格情報とログインを許可します。
    1. AWS Config、CloudTrail、IAM Credential Reports
    2. CloudTrail、IAM Credential Reports,AWS Config
    3. CloudTrail、AWS Config、IAM Credential Reports
    4. AWS Config、IAM Credential Reports、CloudTrail

リファレンス


Jayendra’s Blog

この記事は自己学習用に「AWS RDS Monitoring & Notification – Certification(Jayendra’s Blogより)」を日本語に訳した記事です。