TOP>コラム一覧>rootアカウントの保護と一元管理

rootアカウントの保護と一元管理

はじめに

こんにちは、高橋です。
AWSアカウントのrootアカウントは何でもできるアカウントであるため、その管理はAWSのセキュリティ対策の中でも最も重要なポイントと言えます。今回は11月にrootアカウントの究極の保護機能と言ってもいいrootアカウントの一元管理機能がリリースされましたので、その機能を含めて、rootアカウントの保護についてご紹介したいと思います。

1.rootアカウント保護のベストプラクティス

rootアカウントの最も基本的な保護の方法は誰にも使わせないことです。これはほとんどの方が実践されているかと思いますが、利用している方は利用を止めて、IAMでAWSアカウントの操作をするようにしましょう。ただ利用しないだけでは十分な対策とは言えません。一般的にrootアカウントを保護するには下記の内容を実施することを推奨します。

  • 複雑なパスワードを設定する
  • MFAを設定する
  • アクセスキーを作成しない
  • CloudTrailを設定し、監査ログを取得する

これらの対応はどのAWSアカウントでも実施可能な対策ですので、まだこれらの対応を行っていない場合は、必ず実施するようにしましょう。

2.Organizations環境でのrootアカウントへの制限方法

先程はどのAWSアカウントに対しても実施しておくべきrootアカウントを守るための対策方法についてご紹介しました。ここからはそもそもrootアカウントでできることを制限する方法についてご紹介いたします。これが可能なのはOrganizationsに所属するメンバーアカウントに対してのみです。
Organizations環境でメンバーアカウントにrootアカウントに対して制限を掛ける方法は大きく以下の2つの方法があります。

  1. 1. SCPで制限を行う
  2. 2. Control Towerのコントロール機能で制限を行う

SCPで制限を行う場合は、以下のポリシーを制限したいアカウントまたはアカウントが所属するOUにアタッチすることで、rootアカウントを実質的に利用できないようにすることができます。


  {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Sid": "DenyRootUser",
        "Effect": "Deny",
        "Action": "*",
        "Resource": "*",
        "Condition": {
          "StringLike": {
            "aws:PrincipalARN": "arn:aws:iam::*:root"
          }
        }
      }
    ]
  }  

Control Towerを利用している場合は、下記のコントロールをアタッチすることで同様の効果があります。

ここまで対応すれば、rootアカウントの保護は十分といえると思います。
とはいえ、それでもrootアカウントは残っているわけで、存在自体がリスクであり、また存在している以上管理する必要もあります。そこで次は最近できるようになったrootアカウントの無効化について、試して、色々と考察してみたいと思います。

3.rootアカウントの無効化

2024/11/21よりrootアカウントの一元管理が可能となりました。

https://aws.amazon.com/jp/blogs/news/centrally-managing-root-access-for-customers-using-aws-organizations/

この機能では以下のことが可能となります。

  • rootアカウントのパスワードの削除
  • rootアカウントのパスワード再設定の無効化
  • 新規アカウント作成時に認証情報(パスワード/MFA)の設定が不要となる

この機能を有効化するには下記の手順を実施する必要があります。

この機能を有効化するためにはAWSアカウント管理用の信頼されたアクセスが有効化されていなければなりません。設定はOrganizationsのサービスのページの「AWS Account Management」を確認し、これが有効化になっていない場合は、「AWS Account Management」をクリックします。

開いたページで「信頼されたアクセスを有効にする」をクリックします。

ボックスに「有効化」と入力し、「信頼されたアクセスを有効にする」をクリックします。これで信頼されたアクセスが有効化されます。

信頼されたアクセスが有効化されたら、rootアカウントの一元管理を有効にするために、IAMのページに移動し、ルートアカウントアクセス管理のページに移動し、「有効化」をクリックします。

「ルート認証情報管理」と「メンバーアカウントでの特権管理アクション」にチェックが入っているのを確認し「有効化」をクリックします。

ここまで設定が完了するとルート管理の一元化機能が有効になります。画面には下記の通りにOUのツリーが表示され、メンバーアカウントの状態を確認することができます。設定直後はルートアカウントのパスワードは存在するため、下記の通りにパスワードが存在することが確認できます。

次にメンバーアカウントのパスワードを削除したいと思います。先程の画面でパスワードを削除したメンバーアカウントを選択して、「組織的なアクションを実行する」をクリックします。

「ルートユーザ認証情報を削除」を選択し、画面下に現れる「ルートユーザ認証情報を削除」ボタンをクリックします。

ボックスに「確認」と入力し、削除をクリックしてパスワードを削除します。

元の画面に戻るとルート認証情報が「存在しない」になっていることが確認できます。

実際にrootアカウントでログインしてみようとすると下記の通りにログインに失敗します。

さらにパスワードの再設定をしようとしたところ、下記の様にパスワードの再設定ができないことも確認できます。

この様にメンバーアカウントにてrootアカウントを利用できなくすることができました。
この機能の恩恵としては、メンバーアカウント毎のパスワード管理が不要になることは勿論ですが、最初にご紹介したrootアカウント保護のベストプラクティスである、複雑なパスワードの設定、MFAの設定が不要となり、アクセスキーも作成できず、そもそもアクセスできないのでCloudTrailにログが残るようなイベントも発生しなくなるので、rootアカウント保護に関するタスクがなくなります。これは特に数十、数百のAWSアカウントを管理しなければならない管理者には大きなメリットとなる機能ですので、管理対象が増えてきたら是非とも導入したい機能と言えます。

最後に、この環境でメンバーアカウントを作成すると認証情報はどうなるでしょうか?
答えは既に記載していますが、パスワードが設定されていないアカウントが作成されます。実際にアカウント作成後のrootアカウントの一元管理の画面は以下の通りです。

では、このアカウントに対してアクセスするにはどのようにすればいいでしょうか?
答えはアカウント作成時にAWSアカウント内に指定した名前のIAMロールを作成することができるので、そのIAMロールで作成されたアカウントにアクセスし、追加のIAMユーザロールを作成して、以降はそのIAMで操作を行います。



6.さいごに

今回はAWSアカウントのセキュリティで最も重要なrootアカウントの保護の方法と新たにリリースされたrootアカウントの一元管理機能をご紹介いたしました。rootアカウントの管理は非常に重要な管理タスクとなりますので、管理アカウントで統合管理が可能ならrootアカウントの一元管理機能の利用を、単一アカウントやこの機能が利用できない場合は、最低限今回記載したベストプラクティスに則った管理を行う様にしましょう。

CTCは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。

お問い合わせ

【著者プロフィール】

高橋 繁義(たかはし しげよし)

伊藤忠テクノソリューションズ株式会社 クラウドアーキテクト

インフラ全般のエンジニアとして20年以上活動し、現在AWS専任の技術担当兼サービス企画担当として活動中
2022年から3年連続でAPN Ambassadorに選任

高橋 繁義(たかはし しげよし)

TOP>コラム一覧>rootアカウントの保護と一元管理

pagetop