SEC03-BP04 アクセス許可を継続的に削減する
必要とするアクセスをチームで決定したら、不要になったアクセス許可を削除し、最小特権のアクセス許可を達成するためのレビュープロセスを確立します。人間とマシンアクセス両方について使用しないアイデンティティとアクセス許可を継続的にモニタリングして削除します。
期待される成果: アクセス許可ポリシーは、最小特権の原則に従う必要があります。職務やロールの定義がはっきりしてくるにつれ、アクセス許可ポリシーを見直し、必要でないアクセス許可を削除する必要があります。このアプローチにより、認証情報が誤って公開された場合や、許可なくアクセスされた場合の影響範囲が小さく抑えられます。
一般的なアンチパターン:
-
デフォルトでユーザーに管理者アクセス許可を付与する。
-
過度に寛容でありながら、完全な管理者権限がないポリシーを作成する。
-
不要になった後もアクセス許可ポリシーを保持する。
このベストプラクティスを活用しない場合のリスクレベル: 中
実装のガイダンス
チームやプロジェクトが始まったばかりの場合、革新とアジリティを刺激するために、寛容な許可ポリシーが使われる可能性があります。例えば、開発またはテスト環境であれば、開発者にはさまざまな AWS サービスへのアクセスを付与できます。継続的にアクセスを評価し、アクセスを、現在のジョブを完了するために必要なサービスおよびサービスアクションのみに制限することが推奨されます。この評価は、人的およびマシン ID 両方にお薦めします。マシン ID は、システムまたはサービスアカウントと呼ばれることもありますが、AWS にアプリケーションまたはサービスへのアクセスを付与するアイデンティティです。このアクセスは、本稼働環境で特に重要です。過剰に寛容なアクセス許可を使うと影響が大きく、顧客データを開示してしまう可能性があるためです。
AWS は、使用されていないユーザー、ロール、アクセス許可、および認証情報を特定するための方法を複数提供しています。AWS は、Amazon S3 バケットのオブジェクトなど AWS リソースへの関連付けられたアクセスキー、およびアクセスを含む、IAM ユーザーとロールのアクセス活動を分析するのにも役立ちます。AWS Identity and Access Management Access Analyzer ポリシー生成により、プリンシパルが実際にやりとりするサービスやアクションに基づいて、限定的な許可ポリシーを作成することができます。属性ベースのアクセスコントロール (ABAC) は、アクセス許可ポリシーを各ユーザーに直接アタッチするのではなく、属性を使用してユーザーにアクセス許可を付与できるため、アクセス許可の管理を簡素化するのに役立ちます。
実装手順
-
AWS Identity and Access Management Access Analyzer を使用する: IAM Access Analyzer の機能は、外部エンティティと共有されている Amazon Simple Storage Service (Amazon S3) バケットや IAM ロールなど、組織とアカウントのリソースを識別するのに役立ちます。
-
IAM Access Analyzer ポリシー生成を使用する: IAM Access Analyzer ポリシー生成は、IAM ユーザーまたはロールのアクセスアクティビティに基づいてきめ細かなアクセス許可ポリシーを作成するのに役立ちます。
-
本番稼働前に下位環境全体のアクセス許可をテストする: まず、重要度の低いサンドボックス環境と開発環境で、IAM Access Analyzer を使用してさまざまなジョブ機能に必要なアクセス許可をテストします。その後、本番環境に適用する前に、これらのアクセス許可をテスト環境、品質保証環境、ステージング環境で段階的に強化して検証します。サービスコントロールポリシー (SCP) は、付与される最大アクセス許可を制限することによってガードレールを適用するため、環境が低いほど、最初はアクセス許可がより緩和されます。
-
IAM ユーザーおよびロールの許容時間枠と使用ポリシーを決定する: 最後にアクセスされたタイムスタンプを使用して、未使用のユーザーとロールを特定
し、削除します。サービスとアクションの最終アクセス時間情報を確認して、特定のユーザーとロールのアクセス許可を特定して範囲を設定します。例えば、最終アクセス時間情報を使用して、アプリケーションロールが必要とする特定の Amazon S3 アクションを特定し、それらのアクションのみにアクセスを制限できます。最終アクセス時間情報は、AWS Management Consoleおよびプログラムで使用でき、インフラストラクチャワークフローや自動化ツールに組み込むことができます。 -
AWS CloudTrail でのデータイベントのログ記録を検討する: デフォルトでは、CloudTrail は Amazon S3 オブジェクトレベルのアクティビティ (
GetObject
や などDeleteObject
) や Amazon DynamoDB テーブルアクティビティ (PutItem
やDeleteItem
など) などのデータイベントをログに記録しません。これらのイベントのログ記録を有効にして、特定の Amazon S3 オブジェクトまたは DynamoDB テーブルアイテムにアクティビティする必要があるユーザーとロールを決定します。
リソース
関連ドキュメント:
関連動画: