AWS Organizationsを活用したマルチアカウントのセキュリティサービス使用方法 ~6. IAM Access Analyzer~
Organizationsシリーズ第六弾、IAM Access Analyzer編です。
IAM Access Analyzerとは
IAMの画面からアナライザーを作成することで、AWSアカウント外と共有しているIAMロールやS3バケットを一覧で確認することができます。無料です。
マルチアカウント運用となると、他のアカウントにIAMやS3を公開して利用することも多くなってきます。誤って意図しないアカウントやパブリックに公開することはセキュリティリスクとなりますので、最低限の公開(共有)を行い、定期的に見直しをしていくことが重要です。
IAM Access Analyzerを使用することで、公開状態の確認をかんたんに実施できます。
Organizationsを使用したマルチアカウント設定
IAM Access Analyzerはアカウントの委任に対応しているため、マネジメント(親)アカウントではなくauditアカウントに集約する方針で設定していきます。
1点注意なのは、組織単位でIAM Access Analyzerを設定した場合、検知されるリソースは組織外に共有されたリソースのみとなります。
今回はManagement、audit、system01という3アカウントになりますが、この3アカウント同士で許可したリソースは表示されません。
これらの内容も表示したい場合は、アカウント単体でもアナライザーを作成する必要があります。
手順は以下のとおりです。
- メンバーアカウントへ委任(代表管理者を追加)
- アナライザー作成
- アカウント単体のアナライザー作成
設定手順
実際にやっていきます。なお、前提としてAccess Analyzerは全アカウントで無効状態(アナライザー未作成)から開始します。
1. メンバーアカウントへ委任(代表管理者を追加)
マネジメント(親)アカウントへログインし、IAM画面へ遷移します。
Access Analyzerをクリックすると、「代表管理者を追加」ボタンがあるのでそれをクリックします。
追加を押します。
委任するアカウントのIDを入力します。今回の例ではauditアカウントのIDです。
以下のように委任の設定が完了します。
委任完了時点では、各アカウントのアナライザーは自動作成されていませんでした。ここは個別に作成する必要があるようです。
2. アナライザー作成
アナライザーはauditアカウントに集約するため、auditアカウントにログインしてIAM Access Analyzerの画面へ遷移し、アナライザーの作成をクリックします。
作成時に、組織全体か、アカウント単体で作成するか選択できるので組織を選択します。
作成にはしばらく時間がかかるので待機します・・
作成が完了すると、以下のようにリソースの状況が表示されます。
今回は、意図的にアナライザーで検知させるために、全アカウントにアクセス許可を与えたS3バケットをsystem01アカウントに作成しておきました。 最初の2行がそのバケットになります。(なぜか同じリソースが2行表示されました、仕様?)
IAM Role2つは、AWS SSOの設定時に自動作成されたIAMロールです。
確認しているアカウントはauditなので以下のように複数のアカウントの状況を表示できていることになります。
3.アカウント単体のアナライザー作成
auditアカウント単体でもアナライザーを作成してみます。手順はさきほどと同様で、作成時に「現在のアカウント」を選べばOKです。
作成すると以下のように表示されます。1行目は組織のアナライザーに表示されていたものと同じです。
2つ目は、Organizationsの組織作成時に自動生成された、ManagementアカウントからスイッチできるIAMロールです。
3つ目は、CloudTrailを組織単位で設定したときに作成したS3バケットです。
組織のアナライザーでは、許可しているアカウントがOrganizationsの組織内であったため、表示されませんでした。 組織内のアカウント間許可を表示したいかは、利用状況により異なるかもしれませんが、アナライザーは無料なので、一律全アカウントで有効にしておいて良いと思います。(作業の自動化は検討)
設定作業はここまでです。
なお、IAM Access Analyzerはリージョンサービスです。IAMの情報は表示されますが、S3バケットなど別リージョンでも作成されるリソースを検知する場合は、すべてのリージョンで有効にする必要があります。
さいごに
マルチアカウント運用となると重要度が増してくるIAM Access Analyzerについて紹介しました。共有されたリソースを、どう運用の中で定期的に確認していくかが重要になりますね。
確認したリソースは確認済みとしてアーカイブする機能もあるので、定期的に確認を行い全てアーカイブされるようにするのが理想な運用かと思います。
次回はAWS Security Hubの予定です。