Amazon Web Services ブログ

IAM Access Analyzer の最新情報: 未使用のアクセスを検出し、デプロイ前にポリシーを確認する

11月26日、AWS Identity and Access Management (IAM) Access Analyzer の 2 つの新機能をリリースしました。

未使用のアクセス権用のアナライザー – 付与されているが実際には使用されていない許可を探しているロールとユーザーを継続的に監視する新しいアナライザーです。中央セキュリティチームはダッシュボードビューを活用して、未使用の許可、ロール、IAM ユーザーを確認することで最大限のメリットが得られるアカウントを見つけることができます。

カスタムポリシーチェック – 新しく作成されたポリシーがその他の (そしておそらく意図しない) 許可を付与していないことを検証します。CI/CD パイプラインとカスタムポリシーツールに自動ポリシーレビューを追加することで、IAM ポリシーをより厳密に管理し、AWS アプリケーションを開発から本番環境に移行するプロセスを加速できます。

それでは本日のローンチを見てみましょう。

未使用のアクセス権用のアナライザー
外部アクセスを監視するアナライザーは既に作成できます。本日のリリースにより、過度に寛大すぎるアクセス許可や使われなくなったアクセス許可を探すためのアナライザーを作成できます。これには、未使用の IAM ロール、IAM ユーザーの未使用のアクセスキー、IAM ユーザーの未使用のパスワード、アクティブな IAM ロールとユーザーの未使用のサービスとアクションが含まれます。

組織全体またはアカウント固有のアナライザーによって生成された検出結果を確認したら、不要な許可を削除してアクションを実行できます。AWS マネジメントコンソール、CLI、または API からアナライザーを作成し、検出結果を分析できます。IAM コンソールから始めましょう。左側のナビゲーションで [Analyzers and settings] (アナライザーと設定) をクリックします。

現在使用しているアナライザー (この場合はなし) が表示されます。[Create analyzer] (アナライザーを作成) をクリックして続行します。

未使用のアクセス分析を指定し、デフォルトの追跡期間である 90 日間のままにして、Organizations ではなく自分のアカウントを確認することを選択したら、[Create analyzer] (アナライザーを作成) をクリックします。

アナライザーが作成されたので、しばらくしてからもう一度確認して、何が検出されたかを確認します。このデモの検出結果は 1 分以内にわかりましたが、これはケースにより異なります。検出結果の一部は次のとおりです。

ご覧のとおり、このデモには未使用の IAM ロールと許可がたくさんあります (明らかに私は悪いロールモデルです)。調査結果をクリックすると詳細が表示されます。

このロールが必要な場合、[Archive] (アーカイブ) をクリックしてアクティブな検出結果のリストから削除できます。似たような検出結果に対して同じことをするアーカイブルールを作成することもできます。

外部アクセスアナライザーも同様に機能します。これは、Access Analyzer を初めて使用し、余分な許可を見つけて削除する準備ができている場合に最適な出発点になります。

ダッシュボードには、すべてのアクティブな検出結果の概要が表示されます。

アナライザーを作成し、自分の Organizations を信頼ゾーンとして指定すると、アクティブな検出結果の数が最も多いアカウントを示すリストも表示できます。

この機能はコマンドラインからも利用できます。次のような新しいアナライザーを作成できます。

$ aws access-analyzer create-analyzer --type ACCOUNT_UNUSED_ACCESS \
  --analyzer-name OneWeek \
  --configuration '{"unusedAccess" : {"unusedAccessAge" : 90}}'
----------------------------------------------------------------------------
|                              CreateAnalyzer                              |
+-----+--------------------------------------------------------------------+
|  arn|  arn:aws:access-analyzer:us-east-1:348414629041:analyzer/OneWeek   |
+-----+--------------------------------------------------------------------+

検出結果を一覧表示できますが、おそらく必要なのは、開始する実際のリソース ID だけです。

$  aws access-analyzer list-findings-v2 \
  --analyzer-arn  arn:aws:access-analyzer:us-east-1:123456789012:analyzer/OneWeek 
  --output json |
 jq -r '.findings[] | .resource'

arn:aws:iam::123456789012:role/MobileHub_Service_Role
arn:aws:iam::123456789012:role/EKSClusterRole
arn:aws:iam::123456789012:role/service-role/AWSDataSyncS3BucketAccess-jbarr-data
arn:aws:iam::123456789012:role/rds-monitoring-role
arn:aws:iam::123456789012:role/IsengardRoleForDependencyAssuranceIamAnalyzer
arn:aws:iam::123456789012:role/service-role/s3crr_role_for_rep-src_to_rep-dest
arn:aws:iam::123456789012:role/service-role/AWSDeepRacerServiceRole
...

検出結果を ID でアーカイブできます。

$ aws access-analyzer update-findings  \
  --analyzer-arn arn:aws:access-analyzer:us-east-1:123456789012:analyzer/OneWeek 
  --status ARCHIVED --ids "f0492061-8638-48ac-b91a-f0583cc839bf"

また、IAM Access Analyzer API を使用して同じ操作を実行できます。

この機能は、毎月分析した IAM ロールの数に基づいて料金が発生し、IAM が利用できるすべての AWS リージョンでご利用いただけます。

カスタムポリシーチェック
デプロイ前に IAM ポリシーがセキュリティ標準に準拠していることを確認し、ポリシーへの不適合な更新を事前に検出できるようになりました。これにより、イノベーションをより迅速に進め、アプリケーションを開発から本番環境に効率的に移行でき、加えた変更が意図したとおりであることを確信できます。

まずは、allow-all-ssm ポリシーから始めましょう。

わかりやすくするために、S3 アクセス権を追加するように編集します。

次に、[Check for new access] (新規アクセスを確認) をクリックし、料金が発生することを理解したことを確認して、[Check policy] (ポリシーを確認) をクリックします。

自動推論によってポリシーが検証され、新しいアクセスを有効にしたことが通知されます。それが自分の意図であれば、[Next] (次へ) をクリックして次に進みます。そうでない場合は、ポリシーを変更することを再検討します。

これは非常に単純で工夫された例ですが、これがセキュリティ対策にどれほど役立ち、価値があるかがお分かりいただけると思います。CLI (check-no-new-access) および API (CheckNoNewAccess) からもアクセスできます。

CI/CD パイプライン、AWS CloudFormation Hooks、カスタムポリシーツールで使用するように設計された別のコマンドと関数もあります。check-access-not-grantCheckAccessNotGranted はポリシードキュメントと s3:Get* などの許可を受け入れ、ポリシーが許可を付与していないことを確認します。例えば、これを使用して、Security Hub を無効にするように指定するポリシーをデプロイできないようにすることができます。これにより、ポリシーが組織のセキュリティ標準に準拠しているという確信を持って、開発から本番環境に移行できます。

この機能は、毎月行ったチェックの数に基づいて料金が決まり、すべての AWS 商用リージョンと AWS GovCloud リージョンでご利用いただけます。

詳細はこちら
AWS Identity and Access Management (IAM) Access Analyzer

Jeff;

原文はこちらです。