0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

サイバーセキュリティクラウドAdvent Calendar 2024

Day 1

AWS Organizationの新機能 Root access managementで、root権限を保護する

Last updated at Posted at 2024-11-30

Root access management

2024/11/15に、AWS Organizationでのroot権限の管理を楽にするサービスがリリースされました。
https://aws.amazon.com/jp/blogs/aws/centrally-managing-root-access-for-customers-using-aws-organizations/

簡単に有効化できますので、このサービスでできることと有効化手順を紹介します。

Root access management概要

AssumeRootというAPIを使用して、各アカウントのroot権限で操作を行います。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_root-user-privileged-task.html#root-user-privileged-task_action-cli

解決できる課題

Organization内の子アカウントで、rootユーザーへログインできないように設定可能

Organization内に子アカウントを作成する際は、通常のサインアップ手順と異なり、rootユーザーのパスワードは設定しません。
しかしメールアドレスにアクセスできるユーザーは、パスワードリセットによりroot権限を取得できてしまいます。
パスワードリセットを防ぎたい場合は、AWS作成後にパスワードリセットしてrootユーザーにログインした上で、MFAを設定する必要があります。

AWSアカウントのメールアドレスには、個人のアドレスではなくメーリングリストを設定している組織が多いと思います。
その場合にMFAを設定していないと、メーリングリストにアクセスできるメンバー全員がroot権限を持っているも同然です。

メーリングリストに追加されているメンバーは制限されているでしょうが、それでも内部不正や乗っ取りなどのリスクは存在します。
また、rootユーザーに直接ログインしてしまうと、誰が実際にログインしたのかの追跡が困難です。

Root access managementを使用すると、子アカウントのrootユーザーへログインできないように設定できます。

  • パスワードリセットの拒否
  • 設定されているパスワードを削除
  • MFA設定の解除

意図せず誰かにrootユーザーにログインされてしまうのは非常に危険なので、ログインを禁止できると管理がとても楽になります。

rootユーザーにログインせず、一部のroot権限での操作を実行可能

AWSが定義したポリシーの範囲内で、一部の操作をroot権限で行えます。
記事投稿時点(2024/12/01)では、以下の5つのポリシーが存在します。

  • IAMAuditRootUserCredentials
  • IAMCreateRootUserPassword
  • IAMDeleteRootUserCredentials
  • S3UnlockBucketPolicy
  • SQSUnlockQueuePolicy

上三つは、前述のrootユーザーへのログインを禁止する操作に必要なポリシーです。
下二つは、root権限が必要な操作として、誤った設定をしてロックされてしまったS3とSQSのリソースポリシーを削除する権限が定義されています。

詳細は後述しますが、管理アカウントもしくはRoot access managementの権限を委譲されたAWSアカウントで、上記の操作を行えます。
Organization内の各AWSアカウントは、委譲アカウントでない限り自身のroot権限での操作はできなくなります。

最新のポリシー一覧(操作可能な権限の一覧)は、AWSのドキュメントをご覧ください。
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user-privileged-task.html#root-user-privileged-task_action-cli

また、AWS CLIの--task-policy-arnのヘルプにも、一覧が記載されているようです。
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-root.html

解決できない課題

管理アカウントのrootユーザーへのログイン

解決できる課題で軽く触れましたが、Organizationの管理アカウントのroot権限だけは、この機能で管理できません。
管理アカウントのroot権限を取得されてしまうと、組織内の全てのAWSアカウントを乗っ取られる危険があります。
管理アカウントのrootユーザーへのログイン情報は、引き続き厳重に管理しましょう。

ポリシーが定義されていない操作

root権限で行える作業は、AWSが定義しているポリシーの範囲に限られます。
最新のポリシー一覧はこちらのURLで確認可能ですが、記載されていない操作を行いたい場合は、rootユーザーへログインできるよう再設定を行う必要があります。
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user-privileged-task.html#root-user-privileged-task_action-cli

有効化手順(Organization管理アカウント)

有効化作業は全て、Organizationの管理アカウントで行います。

0. 移譲先の新規AWSアカウントを作成する

Root access managementは、移譲先のAWSアカウントを設定可能です。
AWS Organizationの管理アカウントの権限は強力ですので、特別な事情がない限りは移譲先のAWSアカウントを用意しましょう。

1. IAMの画面から、有効化画面を開く

IAMのメニュー内にRoot access managementが追加されています。
メニューからページを開き、右下のEnableをクリックします。
スクリーンショット 2024-11-19 10.43.34.png

2. 有効化する項目と、移譲アカウントを設定する

遷移先のページでは、有効化する機能と、移譲先アカウントの設定が行えます。
基本的には、Capabilitiesは両方ともチェック入れたままでOKです。
また、後から片方だけ無効化することも可能です。
スクリーンショット 2024-11-19 10.43.53.jpg

Root credentials management

rootユーザーでのログインを無効化できるようにします。

Privileged root actions in member accounts

root権限での一部作業を、管理アカウントもしくは移譲先アカウントで行えるようにします。

3. 有効化完了

有効化が完了したら、設定内容がIAMのAccount settings画面に表示されます。
各機能の無効化や、移譲先アカウントの変更などもここから行えます。
スクリーンショット 2024-11-27 15.47.06.png

Root access managementの機能を使用する

APIとしては、AssumeRootを使用しています。
この記事では、コンソール画面からの操作を説明します。
AWS CLIやAWS SDKでの操作を行う場合は、ドキュメントをご覧ください。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_root-user-privileged-task.html#root-user-privileged-task_action-cli

rootユーザーへログインできないように設定する

機能の有効化が完了した後、IAMのRoot access managementメニューを再度開くと、Organization内のAWSアカウント一覧が表示されます。
各アカウントの情報として、rootユーザーへのログイン可否が表示されています。

  • アクセスキー
  • MFAの設定
  • パスワード
  • 署名証明書
    スクリーンショット 2024-11-19 10.58.37.jpg
  1. 対象のAWSアカウントのラジオボタンを選択して、右上のTake privileged actionをクリック
  2. 次の画面でDelete root user credentialsを選択し、右下のDisable root user credentialsをクリック
    スクリーンショット 2024-11-19 11.01.14.jpg

以上の手順を完了後、rootユーザーにアクセスしようとしたり、パスワードリセットを試みると、無事にエラーになってくれます。
スクリーンショット 2024-11-19 11.04.21.png

まとめ

AWSのrootユーザーが必要になる状況は少なく、ログイン情報の管理に苦労されている方も多いのではないでしょうか。
今回のリリースにより、rootユーザーを乗っ取られるリスクが大きく低減されました。
Organizationの管理アカウントだけは対象外ですので、引き続き管理アカウントのroot権限の管理・使用にはご注意ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?