Firewall Managerに必要な権限を調べて適切な権限管理方法を考えてみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、臼田です。

今回はFirewall Managerの権限周りの調査を行ったので、必要な権限の情報と、適切な権限管理の方法について考察した内容をまとめたいと思います。

Firewall Managerの利用等については下記をご参照ください。

【新機能】AWS Firewall Managerを使ってみた

Firewall Managerに必要な権限

Firewall Managerには2018/07/30現在以下のAPIがあります。

  • AssociateAdminAccount
  • DeleteNotificationChannel
  • DeletePolicy
  • DisassociateAdminAccount
  • GetAdminAccount
  • GetComplianceDetail
  • GetNotificationChannel
  • GetPolicy
  • ListComplianceStatus
  • ListPolicies
  • PutNotificationChannel
  • PutPolicy

基本的には全てFirewall Managerを管理するためのものですが、例外としてAssociateAdminAccountがあります。

これは、Firewall Managerを最初に利用する時に、AWS Organizations配下のFirewall Manager管理者となるAWSアカウントを設定するAPIです。Firewall Managerの管理者については先述のブログを参照してください。

AssociateAdminAccountを行う際にはこの権限の他に、Organizationsの全権限が必要となり、ドキュメント的には「アカウントのルートユーザーを使用したり (推奨しません)、別の同等の権限を持つアカウント内の IAM ユーザーまたは IAM ロールを使用」すると記載があります。

ステップ 2: AWS Firewall Manager 管理者アカウントの設定 - AWS WAF、AWS Firewall Manager、および AWS Shield アドバンスド

適切な権限管理方法の考察

Firewall Managerを運用する人がOrganizationsや全てのAdministrator権限を持つことはあまりよろしくないため、下記のような役割分担を考えてみました。

  • Firewall Manager管理者の設定: アカウント管理者
  • Firewall Managerの管理: Firewall Managerの運用者

Firewall Manager管理者となるAWSアカウントの設定は、初期に1度設定すれば運用上変更することはほとんど考えられないため、アカウント管理者によって設定を行います。

その後、Organizations配下の複数のアカウントにまたがってAWS WAF等のセキュリティ機能を展開・運用するFirewall Managerの運用者が、Organizationsの権限を持たずにFirewall ManagerのAssociateAdminAccount以外のすべての権限(もしくはFirewall Managerの全権限)を持って運用することにより適切な権限範囲で管理することが可能です。

Firewall Managerの運用者はセキュリティ周りの設定を行うと考えた場合、Firewall Manager自体の権限以外にもAWS WAFやAWS Config、追加で管理対象のALBやCloudFront等の権限も持っていることが好ましいです。

まとめ

Firewall Managerを利用する時に、Firewall Manager以外にOrganizationsの権限も必要になったため内容をまとめ、適切な管理方法を考察してみました。

管理している複数のアカウントに対してガバナンスを聞かせることがFirewall Managerの目的なので、Organizationsの権限を併せ持つことはちょっと広すぎると感じました。

Firewall Manager運用にあたって参考になれば幸いです。