0Pricing
AWS Security Academy · レッスン

EC2ワークロード向けインスタンスプロファイル

認証情報を埋め込む代わりに、コンピューティングリソースに独自のアイデンティティを与えます。

「EC2ワークロード向けインスタンスプロファイル」はCoddyKit上の無料AWS Security Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Security Academyコースには全4レッスンが含まれています。

コンピューティングに ID を与える

EC2上のアプリケーションでは AWS API の呼び出しが必要になることがよくありますが、アクセスキーを埋め込むのは危険です。解決策は、インスタンスプロファイルを通じてインスタンス自体に ID を与え、一時的なロール認証情報を自動的に提供することです。これは、ワークロードから長期的な秘密情報を排除するパターンとして、試験で特によく問われます。

インスタンスプロファイルとは

インスタンスプロファイルは、EC2 インスタンスにアタッチする IAM ロールのコンテナです。概念上はロールを割り当てますが、EC2 が実際にアタッチするのは、そのロールをラップしたインスタンスプロファイルです。コンソールで EC2 用のロールを作成すると、同じ名前のインスタンスプロファイルが自動的に作成されます。CLI や API を使用する場合は、明示的な作成が必要になることがあります。

認証情報が届く仕組み

インスタンスプロファイルをアタッチすると、インスタンスはInstance Metadata Service (IMDS)から一時的な認証情報を取得できます。IMDS は 169.254.169.254 にある特殊なリンクローカルエンドポイントです。AWS SDK と CLI が認証情報の取得と更新を透過的に行うため、アプリケーションコードがキーを扱う必要はありません。

メタデータエンドポイント

認証情報は、ロール名に関連付けられたメタデータパスに格納されています。SDK はこのパスを自動的に参照しますが、インスタンスに想定外の権限がある理由をトラブルシューティングする際には、パスを理解しておくと役立ちます。以下のコマンドは、インスタンス上で認証情報が公開されている場所を示します。

http://169.254.169.254/latest/meta-data/iam/security-credentials/

自動ローテーション

大きなメリットは、IMDS の認証情報が有効期限のかなり前に自動的にローテーションされることです。保存するものも、恒久的に漏洩するキーも、構築が必要なローテーション処理もありません。そのため AWS は、静的キーをサーバー上に配置する方式よりもインスタンスプロファイルを推奨しています。

IMDSv2 の重要性

元のメタデータサービス(IMDSv1)は、SSRF(Server-Side Request Forgery)攻撃によって悪用され、ロールの認証情報を盗まれる可能性がありました。IMDSv2では、まず PUT リクエストで取得したセッショントークンが必要になるため、ほとんどの SSRF エクスプロイトを防げます。試験では IMDSv2 を強制し、コンテナからのアクセスを防ぐために、ホップ制限を 1 に設定することが理想的だと想定されています。

ロールの最小権限

インスタンスプロファイルのロールには、最小権限の原則を適用する必要があります。ワークロードに必要な特定のアクションとリソースだけを許可してください。EC2 ロールの権限が広すぎると、SSRF などによってインスタンスが侵害された場合に、その権限がすべて露出するため危険です。ポリシーの範囲を厳密に限定し、条件を使用して被害範囲を抑えてください。

埋め込みキーの置き換え

アプリケーションに静的アクセスキーがハードコードされていたり、インスタンス上の認証情報ファイルに保存されていたりする場合は、インスタンスプロファイルをアタッチしてキーを削除するのが対処方法です。試験では、この対応を検出結果の修正として問うことがよくあります。正解は、長期的なシークレットを削除し、IMDS から取得するロールベースの認証情報に依存するものです。

インスタンスごとに 1 つのロール

EC2 インスタンスに同時にアタッチできるインスタンスプロファイルは 1 つだけであり、したがってロールも 1 つだけです。ワークロードに異なる権限セットが必要な場合は、単一のアタッチ済みロールの権限を過度に広げるのではなく、別々のロールを設計し、インスタンスを分けるか、必要に応じてアプリケーションから STS を使用して追加のロールを引き受けてください。

インスタンスのアクセス監査

ロールの認証情報を使用した操作は、CloudTrail に引き受けたロールのセッションによるアクションとして記録されるため、インスタンスが何を実行したかを正確に監査できます。インスタンスが侵害された場合は、スナップショットを取得し、そのロールのセッションについて CloudTrail を確認することで、攻撃者がアクセスした対象を把握できます。厳密に限定したロールの範囲と CloudTrail の可視性を組み合わせることが、安全性の高い、試験で推奨される方法です。

全体のまとめ

EC2 へのアクセスを保護するには、最小権限のロールを内包するインスタンスプロファイルをアタッチし、IMDSv2 を強制し、メタデータのホップ制限を 1 に設定して、静的キーをすべて削除します。インスタンスは IMDS から一時的な認証情報を取得して自動的にローテーションするため、管理が必要なシークレットなしで、コンピューティングリソースに安全なアイデンティティを与えられます。

理解度チェック

インスタンスプロファイルに関する知識を確認しましょう。

まとめ

インスタンスプロファイルは IAM ロールを内包して EC2 にアタッチし、Instance Metadata Service を通じて自動ローテーションされる一時的な認証情報を提供します。これにより静的キーを完全に排除できます。IMDSv2とホップ制限 1 を強制して SSRF による認証情報の窃取を防ぎ、最小権限でロールの範囲を限定し、CloudTrail でそのセッションを監査してください。

よくある質問

「EC2ワークロード向けインスタンスプロファイル」レッスンは無料ですか?

はい。「EC2ワークロード向けインスタンスプロファイル」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Security Academyコースには全4レッスンが含まれています。

「EC2ワークロード向けインスタンスプロファイル」で何を学びますか?

認証情報を埋め込む代わりに、コンピューティングリソースに独自のアイデンティティを与えます。 ブラウザで直接実行するハンズオンコードでAWS Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AWS Security Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAWS Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「EC2ワークロード向けインスタンスプロファイル」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAWS Security Academyレッスンでコードを書いて実行できますか?

はい。すべてのAWS Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. IAMユーザーとグループの比較
  2. IAMロールの本当の仕組み
  3. 信頼ポリシーとロールを引き受けられる主体
  4. EC2ワークロード向けインスタンスプロファイル
← AWS Security Academyに戻る