自動的に作成されたロールに最小特権のアクセス許可を適用する
サービスコンソールでリソースを作成する場合、ロールマネージャーはリソースに必要な IAM ロールを提供します。独自のコードの実行などの一部のタスクについては、AWS は必要なアクセス許可を事前に判断することができません。その結果、ロールはリソースが必要とするよりも多くのアクセス許可を付与する場合があります。リソースに本当に必要なアクセス許可を確認できたら、ロールのアクセス許可をそれに合わせて縮小することができます。
ロールマネージャーを無効にしても、ロールマネージャーが以前に作成したロールには影響しません。アクセス許可を縮小することなくロールマネージャーを無効にすることができます。また、ロールマネージャーを無効にせずにロールのアクセス許可を縮小することもできます。
最小特権アクセス許可を適用すべき状況
リソースに本当に必要なアクセス許可のみをロールに付与することは、最小特権の原則に沿ったセキュリティのベストプラクティスです。ほとんどのロールでは、ロールマネージャーは適切なアクセス許可範囲を持つロールを作成します。しかし、コンピューティングリソースやクラウドインフラストラクチャ管理などの一部のロールについては、ロールマネージャーがアクセス許可範囲を広めに設定したロールを作成することがあります。
ロールマネージャーによって作成されたロールの範囲を絞り込む準備ができたら、PII や本番稼働用データの処理など、最も機密性の高いワークロードやリソースに関連付けられたロールから絞り込みを始めることをお勧めします。詳細については最小特権アクセス許可に備えるを参照してください。
使用されていないアクセスを分析する方法
ロールマネージャーを無効にする前に、AWS では、IAM Access Analyzer を使用して、お使いのアカウントで使用されていないアクセスをチェックするアナライザーの作成を推奨しています。このアナライザーは、各ロールで実行可能なアクションと実際に実行されたアクションを比較し、使用されていないアクセス許可を検出して報告します。アナライザーは、ユーザーが作成したロールを含めた、アカウント内の IAM ロールを確認します。
検出結果が表示される場所は、アナライザーがどのように提供されたかによって異なります。
-
ロールマネージャーが提供するアナライザー: AWS がアカウントの未使用のアクセスアナライザーを提供する場合 (このセクションの注記を参照)、検出結果は IAM コンソールのロールページに表示されます。ロールごとに、使用されていないアクセス許可の数を確認し、推奨事項を開くことができます。次の手順に従って、ロールページからロールのアクセス許可を縮小します。ロールマネージャーを無効にすると、アカウント設定ページにロールを表示ボタンが表示されます。このボタンを選択するとロールページが開き、各ロールの検出結果が表示されます。
-
自分で作成したアナライザー: 独自の未使用アクセスアナライザーを作成した場合、検出結果と推奨事項が IAM Access Analyzer コンソールに表示されます。この点は、ロールマネージャーを使用しても変わりません。未使用アクセスの検出結果を確認して対処するには、IAM Access Analyzer の検出結果を参照してください。
注記
新しい AWS エクスペリエンスを使用して作成されたアカウントで AWS によりロールマネージャーが有効化されていた場合、ロールマネージャーを最初に無効にしたときにアナライザーを作成する必要はありません。高度な機能をアクティブ化してロールマネージャーを無効にすると、AWS は使用されていないアクセスのアナライザー機能を 90 日間追加料金なしで提供します。このアナライザーを使用すると、使用されていないロールのアクセス許可を把握し、ポリシーの範囲を縮小するための推奨事項を確認できるため、ロールマネージャーが作成したロールを含むアカウント内のロールを、最小特権の原則に沿って更新できます。
前提条件
アクセスアナライザーの検出結果を確認するには、access-analyzer:ListFindings アクションを実行するためのアクセス許可が必要です。推奨事項を適用するには、そのロールで iam:CreatePolicy、iam:AttachRolePolicy、および iam:DetachRolePolicy を実行するアクセス許可が必要です。
コンソールでロールのアクセス許可を縮小する方法 (ロールマネージャーが提供するアナライザー)
これらの手順は、AWS がアカウントの未使用アクセスアナライザーを提供する場合に適用されます。独自のアナライザーを作成した場合は、代わりに IAM Access Analyzer コンソールで推奨事項を確認して適用してください。IAM Access Analyzer の検出結果を参照してください。
-
AWS マネジメントコンソール にサインインし、IAM コンソール を開きます。
-
ナビゲーションペインで Roles (ロール) を選択してください。
-
ロールページの検出結果列で、アクセス許可を縮小するロールの未使用のアクセス許可リンクを選択します。
-
ロールのアクセス許可を縮小するページで、そのロールについて報告された未使用のアクセス許可を確認します。
-
推奨されるアクセス許可範囲をロールの現在のアクセス許可範囲と比較し、推奨事項に提示された削除アクションを確認します。
-
変更するを選択します。
推奨されるアクセス許可の仕組み
使用されていないアクセスのアナライザーの検出結果に基づいて、IAM は推奨されるアクセス許可を含む 1 つ以上のカスタマー管理ポリシーを作成します。IAM は古いポリシーをデタッチする前に新しいポリシーをアタッチするため、ロールは変更全体を通してアクセス許可を保持します。
例えば、AWS Lambda 実行ロールについて考えてみましょう。IAM アクセスアナライザーは、どのロールのアクセス許可が使用されていないかをレポートし、Amazon CloudWatch Logs へのログの書き込みなど、ロールが実際に実行しているアクションを対象とするポリシーを推奨します。関数の機能に照らして推奨事項を確認し、関数が必要とするすべてのアクセスをカバーできていることを確認できたら、推奨事項を適用します。その後、ロールは関数に必要なアクションのみを許可するようになります。
重要
推奨事項は、過去 30 日間のアクティビティに基づいて提示されます。四半期ジョブのように長期的に使用頻度が低いアクセス許可は、未使用として表示される場合があります。適用する前に、ワークロードの実際のニーズに照らして推奨事項を確認してください。
ロールのポリシーまたは信頼ポリシーを変更すると、ロールマネージャーはそのロールを管理しなくなります。ロールは、最初にロールの作成に使用されたロールテンプレートのバージョン変更を取得しなくなります。
IAM は、ユーザーがロールにアタッチできるマネージドポリシーの数を制限します。推奨事項を適用するとその制限を超える場合には、コンソールからその旨の通知が提供され、変更は適用されません。このクォータの詳細については、「IAM と AWS STSクォータ」を参照してください。