SCPでリージョン制限する時にIAM Access Analyzerとかは止めたほうがいいか検証してみた

IAM Access Analyzerなどの全リージョンに展開するサービスをSCPで制限するとどうなるのか検証して考察してみました。
2024.05.21

こんにちは、臼田です。

みなさん、SCPでリージョン制限してますか?(挨拶

AWS Organizationsを利用してリージョンを制限する場合には、全リージョンに展開しているIAM Access Analyzerなどについて停止したほうがいいのか、確認して検証してみました。

3行まとめ

  • SCPはサービスリンクドロールは制限しない
  • 全リージョンに展開するIAM Access Analyzerなどは利用料金などかからなければそのままでもいい
  • CloudTrailのログなどの余分なものが出ることを気にするなら外してもいい

背景

AWS Organizationsを利用している時に、ガバナンスのために利用できるリージョンを制限することがあります。

例えば日本向けにサービスを提供するAWSアカウントであれば、東京と大阪に、念の為バージニアだけ許可しておけば、他は利用しないということはよくあります。

AWS OrganizationsのSCPでは一般的な例 - AWS Organizations、AWS Control TowerではRegion deny control applied to the OU - AWS Control Towerがあり、AWSアカウント単体では制限できないリージョンを制限できます。

上記のSCPを見ていただくとわかりますが、グローバルサービスなどは除外されますし、例外扱いにする管理用のIAM Roleの指定などが可能です。

しかし、この制限をかけていく場合には既存の環境やサービスの状態を気にする必要があります。今回はIAM Access Analyzerなどの全リージョンに展開していく必要がある機能についてどう扱えばいいか調査しました。

検証

まずリージョン制限を有効化する前に、IAM Access Analyzerを有効化してみます。今回は東京・大阪・バージニアのみ許可するため、オレゴンに展開してみます。

その後、SCPを適用して1日くらい放置します。

時間が経ったらCloudTrailで動作結果を見てみます。IAM Access Analyzerの履歴はユーザー名access-analyzerで指定すると確認できます。以下にあるように、ほとんど許可されています。S3系のAPIはSCPで許可されているものですが、DynamoDBやLambdaなども正常にアクセスできているため、SCPで止められていないことが確認できます。

SCPの仕様

SCPで制限されている動作をIAM Access Analyzerは実施することができました。これはどのような理由でしょうか?

SCPには以下の仕様があります。

SCP によって制限されないタスクおよびエンティティ SCP を使用して次のタスクを制限することはできません

  • 管理アカウントによって実行されるすべてのアクション
  • サービスにリンクされたロールにアタッチされたアクセス許可を使用して実行されるすべてのアクション。
  • root ユーザーとして Enterprise サポートプランに登録する
  • root AWS ユーザーとしてサポートレベルを変更します。
  • CloudFront プライベートコンテンツに信頼された署名者機能を提供する。
  • Amazon Lightsail メールサーバーおよび Amazon EC2 インスタンスの逆引き DNS をルートユーザーとして設定する
  • AWS一部の関連サービスのタスク:
    • Alexa Top Sites
    • Alexa Web Information Service
    • Amazon Mechanical Turk
    • Amazon Product Marketing API

サービスコントロールポリシー (SCP) - AWS Organizations

大事なのは以下の部分です。

  • サービスにリンクされたロールにアタッチされたアクセス許可を使用して実行されるすべてのアクション。

IAM Access Analyzerを始め、各種サービスが動作する場合にはサービスリンクドロールを利用するため、この対象になるということですね。

考察

というわけで、IAM Access AnalyzerなどのサービスはSCPによる制限は受けないので、何もせず気にしなくてもいいでしょう。

ただ、SCPで制限されているリージョンのため、必要のあまりないサービス設定はオンにしておく必要は必ずしもありません。更に、SCPで制限がされませんが動作し続けるためCloudTrailにログは出続けます。

これらは捉え方によっては余計なものであるため、停止しておくのも戦略の1つです。

もちろん例外にしているIAM Roleにより制限しているリージョン上にリソースが作成されたりするかもしれませんので残しておくのも戦略です。

ガバナンスをしっかりしていくぞ、という気持ちならとりあえず残しておく、でよさそうですね。お金もほぼかからないですし。

まとめ

IAM Access Analyzerなどのサービスリンクドロールで動作するサービスはSCPの制限を受けません。

リージョン制限する場合にそれらを停止するかどうかは、どちらでもいいですが、ガバナンスを気にするならそのままでいきましょう。