【AWS】複数のAWSアカウントにAmazon GuardDutyを開始させる2つの方法（AWS Organizations, Invitation）



今日はAmazon GuardDuty設定のファストステップとして、複数のAWSアカウントに対してAmazon GuardDutyを開始させる2つの方法をご紹介したいと思います。


事前に区別しておきたいことは、
- **単一AWSアカウント**であれば、[こちらのAWSドキュメント](https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_settingup.html#guardduty_enable-gd)通りGuardDutyコンソールを開き開始ボタンを押すことでGuardDutyが開始できます。
- **複数のAWSアカウント**に対してGuardDutyを開始させたいってことであれば、[こちらのAWSドキュメント](https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_accounts.html)の2つの方法を利用し開始することができます。

こちらの投稿は**後者**のお話なのでご了承ください。

## 0. 複数のAWSアカウントに対してAmazon GuardDutyを開始させる2つの方法


組織内・外の複数のAWSアカウントに対してAmazon GuardDutyを開始する方法は以下のように2つのやり方があります。

**1. AWS Organizations（組織）を利用**
**2. 招待（Invitation）を送付**

Amazon GuardDuty以外にも、AWS Security Hubなどの機能もこのようなやり方で開始することができます。
詳しい内容は[こちらのAWSドキュメント](https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_accounts.html)をご参考ください。
こちらの記事では、**注意すべきこと・知っておくべきことを中心に**お話します。

## 1. AWS Organizations（組織）を利用

1. 「AWS Organizations（組織）を利用」のやり方を利用すれば、組織の全てのAWSアカウントに対してGuardDutyを開始できます。**OU単位の開始はできないらしいのでご注意ください。**
1. GuardDutyコンソールの設定画面より「委任された管理者」のAWSアカウントを1つ設定する必要があります。この際、最小特権の原則により**組織の管理アカウントを委任された管理者として設定することは推奨されません。** また、一回「委任された管理者」として登録されたAWSアカウントは同じ設定画面で**いつでも削除することができます。**
1. ↑で「委員された管理者」を設定したら、組織の全てのアカウントがGuardDutyの設定画面のアカウントっていうメニューの下に表示されます。しかし、すぐにGuardDutyが開始されることではなく、**自動有効化がONになっている場合開始される**のでご注意ください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2203079/83536b7e-4a87-7832-905c-53167ce9771b.png)

上記スクショのご覧の通り、**自動有効化がOFF**になっている場合、組織の全てのアカウント（34個）がリストに追加されても、**すべてがアクティブになってない（手動設定で2つのみアクティブになっている）** ことが確認できます。
自動有効化をONにしたい場合は、スクショの右上の有効化ボタンを押すことで設定変更ができますのでご参考ください。

[（参考：AWSドキュメント）](https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_organizations.html)


## 2. 招待（Invitation）を送付


1. こちらのやり方は、以下の場合のご利用が適切です。
- 組織内の一部のAWSアカウントにGuardDutyを開始させたい場合（組織を利用する方法はOU単位の設定も不可の為）
- **組織外**のAWSアカウントをメンバーとして追加してGuardDutyを開始させたい場合
- 一部のAWSアカウントに対して**GuardDuty開始を自動化させたい場合**（[AWS CloudFormation TemplateによるGuardDuty自動化ドキュメント](https://aws.amazon.com/jp/about-aws/whats-new/2018/07/automate-amazon-guardduty-provisioning-over-multiple-accounts-and-regions-with-aws-cloudformation-stacksets-integration/?nc1=h_ls)）

2..招待状はGuardDutyコンソールの設定＞アカウント画面より送付できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2203079/ad6fbf43-0c40-d4d7-a6f3-6c8f4e3a5ea5.png)
「アカウントの入力」のところに、招待したいAWSアカウントIDとEメールアドレスを入力して「次へ」ボタンを押したら招待状が送付されます。
招待されたアカウントが招待を承諾すると、そのアカウントはGuardDutyのメンバーアカウントになる形になります。


[（参考：AWSドキュメント）](https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_invitations.html)


## 最後に

本日の投稿では、複数のAWSアカウントに対してAmazon GuardDutyを開始させる2つのやり方をご紹介しました。

ちなみに私は [AWS CloudFormation TemplateによるGuardDuty開始自動化](https://aws.amazon.com/jp/about-aws/whats-new/2018/07/automate-amazon-guardduty-provisioning-over-multiple-accounts-and-regions-with-aws-cloudformation-stacksets-integration/?nc1=h_ls) がしたくてGuardDutyを調査し始め、関連ドキュメントを色々調べる過程中にGuardDutyの開始方法をより詳しく把握することができました。

現在個人的なTodoで、**GuardDutyのInvitation送付・承諾を自動化する方法は無いのか？** って課題がありまして現在調査中です。
既にやり方があるか関連ドキュメントがあるかそれともやり方がないのかまだ知りませんが、もしご存知の方いれば是非教えてください！
また、私もこちらの課題解決したらアップデート投稿いたします。


本日も記事をご覧いただきありがとうございます。