AWS Organizations を使用した GuardDuty アカウントの管理
AWS Organizations 組織で GuardDuty を使用する場合、組織内で任意のアカウントを GuardDuty の委任された管理者に指定することができます。組織の管理者アカウントのみが、GuardDuty の委任された管理者を指定できます。
委任された管理者として指定されたアカウントは、管理者アカウントとして所定のリージョンで GuardDuty が自動的に有効になり、そのリージョン内の組織すべてのアカウントに対して GuardDuty を有効にし管理する許可が付与されます。組織内の他のアカウントは、委任された管理者アカウントに関連付けられた GuardDuty メンバーアカウントとして表示および追加することができます。
既に招待によって関連付けられたメンバーアカウントを持つ GuardDuty 管理者を設定されていて、メンバーアカウントが同じ組織に属している場合、組織に GuardDuty の委任された管理者を設定すると、その [Type] (タイプ) が [by Invitation] (招待による) から [via Organizations] (Organizations 経由) に変更されます。新しい委任された管理者が、以前に同じ組織に属していないメンバーを招待によって追加した場合、[Type] (タイプ) は [by Invitation] (招待による) となります。いずれの場合も、以前に追加されたアカウントは、組織の GuardDuty の委任された管理者のメンバーアカウントです。
組織外にいる場合でも、引き続きアカウントをメンバーとして追加できます。詳細については、「招待による管理者およびメンバーアカウントの指定 (コンソール)」および「招待による GuardDuty 管理者およびメンバーアカウントの指定 (API)」を参照してください。
GuardDuty の委任された管理者のための重要な考慮事項
GuardDuty の委任された管理者が行う操作方法を定義する、次の要素に注意してください。
- 委任された管理者は、最大 5000 のメンバーを管理することができます。
-
GuardDuty の委任された管理者 1 名あたりのメンバーアカウント数は 5000 件までとされています。ただし、組織内に 5,000 を超えるアカウントが存在する可能性があります。[All] (すべて) の組織内のアカウントの数は、GuardDuty コンソールの [Accounts] (アカウント) ページに表示されます。
メンバーアカウント数が 5000 アカウントを超えると、CloudWatch、AWS Health Dashboard、および委任された管理者アカウントにメールで通知が届きます。
- 委任された管理者はリージョンレベルです。
-
AWS Organizations とは異なり、GuardDuty はリージョンレベルのサービスです。これは、GuardDuty の委任された管理者とそのメンバーアカウントは、AWS Organizations によるアカウント管理をすべてのリージョンでアクティブにするために、希望のリージョンごとに追加する必要があるということを意味します。つまり、組織管理アカウントで米国東部 (バージニア北部) のみの GuardDuty の委任された管理者を指定した場合、その委任された管理者はそのリージョンに追加されたメンバーアカウントのみを管理します。GuardDuty のリージョンの詳細については、「リージョンとエンドポイント」を参照してください。
- 組織は、GuardDuty の委任された管理者を 1 名だけ指定できます。
-
組織は、GuardDuty の委任された管理者を 1 名だけ指定できます。あるリージョンでアカウントを委任された管理者に指定した場合、そのアカウントは他のすべてのリージョンで委任された管理者である必要があります。任意の時点で新しい委任された管理者を指定できます。詳細については、「GuardDuty の委任された管理者の登録解除」を参照してください。
- 組織の管理アカウントを委任された管理者として設定することは推奨されません。
-
組織の管理アカウントは委任された管理者になることはできますが、これは最小特権の原則に従う AWS セキュリティのベストプラクティスに基づいて推奨されません。
- 委任された管理者を変更しても、メンバーアカウントの GuardDuty は無効になりません。
-
委任された管理者を削除すると、関連するすべてのメンバー アカウントが GuardDuty のメンバーとして削除されますが、これらのアカウントで GuardDuty が無効になるわけではありません。
委任された管理者の指定に必要な許可
GuardDuty の委任された管理者を委任する場合、GuardDuty を有効にする許可だけでなく、次のポリシーステートメントに記載されている特定の AWS Organizations API アクションを有効にする許可も必要です。
IAM ポリシーの最後に次のステートメントを追加することで、これらの許可を付与できます。
{
"Sid": "PermissionsForGuardDutyAdmin",
"Effect": "Allow",
"Action": [
"guardduty:EnableOrganizationAdminAccount",
"organizations:EnableAWSServiceAccess",
"organizations:RegisterDelegatedAdministrator",
"organizations:ListDelegatedAdministrators",
"organizations:ListAWSServiceAccessForOrganization",
"organizations:DescribeOrganizationalUnit",
"organizations:DescribeAccount",
"organizations:DescribeOrganization"
],
"Resource": "*"
}
また、AWS Organizations 管理アカウントを GuardDuty の委任された管理者として指定する場合、そのエンティティには GuardDuty を初期化するための CreateServiceLinkedRole
許可が必要です。これは、次のステートメントを使用して IAM ポリシーに追加することができます (アカウント ID を組織の管理 ID に置き換えます)。
{
"Sid": "PermissionsToEnableGuardDuty"
"Effect": "Allow",
"Action": [
"iam:CreateServiceLinkedRole"
],
"Resource": "arn:aws:iam::111122223333
:role/aws-service-role/guardduty.amazonaws.com/AWSServiceRoleForAmazonGuardDuty",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "guardduty.amazonaws.com"
}
}
}
手動で有効にしたリージョンで GuardDuty を使用している場合は、「サービス」の値をそのリージョンのリージョンエンドポイントに置き換えます。例えば、中東 (バーレーン) (me-south-1) リージョンで GuardDuty を使用している場合は、"Service":
"guardduty.amazonaws.com"
を "Service":
"guardduty.me-south-1.amazonaws.com"
に置き換えます。
GuardDuty の委任された管理者の指定
アクセス方法を選択して、AWS 組織の委任された管理者を指定し、メンバーアカウントを追加します。
- Console
-
ステップ 1 - 組織の GuardDuty の委任された管理者を登録する
https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。
ログインするには、AWS Organizations 組織の管理者アカウントを使用します。
-
アカウント内で GuardDuty が既に有効になっていますか?
-
GuardDuty がまだ有効になっていない場合は、[Get Started] (今すぐ始める) を選択し、[Welcome to GuardDuty] (GuardDuty にようこそ) ページで GuardDuty の委任された管理者を指定します。
委任された管理者がそのアカウントで GuardDuty を有効にして管理できるようにするには、管理アカウントに GuardDuty サービスにリンクされたロールが必要です。任意のリージョンで管理アカウントの GuardDuty を有効にすると、このロールが自動的に作成されます。
-
GuardDuty が既に有効になっている場合、[Settings] (設定) ページで GuardDuty の委任された管理者を指定することができます。
-
組織の GuardDuty の委任された管理者として指定するアカウントの 12 桁の AWS account ID
を入力します。
-
[Delegate] (委任) を選択します。GuardDuty がまだ有効になっていない場合、委任された管理者を指定すると、そのアカウントに対し現在のリージョンで GuardDuty が有効になります。
-
委任された管理者が関連する許可をメンバーアカウントに割り当てて Malware Protection を有効にすることを許可する場合は、[Permissions] (許可) 設定をオンにします。
-
(推奨) 各 AWS リージョン毎に前のステップを繰り返します。
委任された管理者を指定した後、委任された管理者アカウントを変更または削除するには、組織管理アカウントを使用するだけです。
アカウントをメンバーとして追加すると、そのアカウントの現在のリージョンで GuardDuty が自動的に有効になります。 この動作は、アカウントをメンバーとして追加する前に GuardDuty を有効にする必要がある招待方法とは異なります。
各リージョンで GuardDuty を有効にするには、それらのリージョンに組織メンバーを追加する必要があります。
ステップ 2 - 既存の組織アカウントをメンバーとして追加する
https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。
-
ナビゲーションパネルで [Settings] (設定) を選択してから、[Accounts] (アカウント) を選択します。
アカウントの一覧に組織内のすべてのアカウントが表示されます。これらのアカウントの [Type] (タイプ) は、[via organizations] (Organizations 経由) です。組織の GuardDuty の委任された管理者に関連付けられたメンバーアカウントではないアカウントのステータスは、[Not a member] (メンバーではない) です。
-
アカウント ID の横にあるチェックボックスをオンにして、メンバーとして追加するアカウントを選択します。
ページ上部のバナーで [enable] (有効) を選択することで、すべての組織アカウントの現在のリージョンで GuardDuty を有効にできます。このアクションにより、[Auto-Enable] (自動有効化) 機能がオンになり、組織に今後追加するすべてのアカウントで GuardDuty が有効になります。
または、[filter] (フィルター) フィールドを使用して [Relationship status: Not a member] (関係ステータス:メンバーではない) でフィルター処理し、現在のリージョンで GuardDuty が有効になっていないすべてのアカウントを選択することもできます。
-
[Actions] (アクション)、[Add member] (メンバーの追加) の順に選択します。
-
選択したアカウントをメンバーとして追加することを [Confirm] (確認) します。アカウントの [Status] (ステータス) が [Enabled] (有効) に変わります。
-
(推奨) 委任された管理者が全リージョンのメンバーアカウントの検出結果を管理できるように、各 AWS リージョンでこのステップを繰り返してください。
ステップ 3 - メンバーとしての新しい組織アカウントの追加を自動化する
https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。
委任された管理者の認証情報を使用してログインします。
-
ナビゲーションペインの [Settings] (設定) で [Accounts] (アカウント) を選択し、[Auto-enable] (自動有効化) をオンにします。
-
GuardDuty に加えて、新しいアカウントでオプションの検出機能を有効にしたい場合は、[Actions] (アクション) を選択後、[Enable S3 Protection] (S3 Protection を有効にする)、[Enable Kubernetes Audit Logs Monitoring] (Kubernetes Audit Logs Monitoring を有効にする)、または [Enable Malware Protection] (Malware Protection を有効にする) を選択します。これらの機能の詳細については、「マルチアカウント環境での S3 Protection の設定」、「マルチアカウント環境での EKS Protection の設定」、または「マルチアカウント環境での Malware Protection の設定」を参照してください。
-
(推奨) 各 AWS リージョンでこれらのステップを繰り返し、すべてのリージョンの新規アカウントで GuardDuty が自動的に有効化されるようにします。
自動有効化機能は、組織の将来のメンバー全員に対して GuardDuty を有効にします。これにより、GuardDuty の委任された管理者は、組織内で作成された、または組織に追加された新しいメンバーを管理できます。メンバーアカウント数が 5,000 の上限に達すると、自動有効化機能は自動的にオフになります。アカウントが削除され、メンバーの総数が 5000 未満になると、自動有効化機能が再度オンになります。
- API
-
委任された管理者を指定して、メンバーアカウントを追加する (API)
-
Organizations 管理アカウントの AWS アカウント の認証情報を使用して、enableOrganizationAdminAccount API オペレーションを実行します。
これは、次の CLI コマンドを実行することで、AWS Command Line を使用して実行することもできます。GuardDuty の委任された管理者にしたいアカウントのアカウント ID を必ず指定してください。
aws guardduty enable-organization-admin-account --admin-account-id 11111111111
このコマンドは、現在のリージョンに対してのみ、委任された管理者を設定します。現在のリージョンで、そのアカウントに対して GuardDuty がまだ有効になっていない場合、自動的に有効になります。
他のリージョンの委任された管理者を設定するには、委任された管理者に管理させたいリージョンを指定する必要があります。詳細については、「GuardDuty エンドポイントとクォータ」を参照してください。次の例では、米国西部 (オレゴン) で委任された管理者を有効にする方法を示します。
aws guardduty enable-organization-admin-account --admin-account-id 11111111111
--region us-west-2
-
前のステップで GuardDuty の委任された管理者として指定した AWS アカウント の認証情報を使用して、CreateMembers API オペレーションを実行します。
委任された管理者の AWS アカウントのリージョンレベルのディテクター ID、および GuardDuty メンバーになるアカウントのアカウント ID や E メールアドレスなどのアカウント詳細を指定する必要があります。この API オペレーションを使用して 1 名以上のメンバーを作成できます。
メンバーとして追加されたアカウントでは、組織管理アカウントを除き、そのリージョンで GuardDuty が有効になります。組織管理アカウントでは、メンバーアカウントとして追加する前にまず GuardDuty を有効にする必要があります。
この操作は、次の CLI コマンドを実行することで、AWS Command Line Tools を使用して行うこともできます。自身の有効なディテクター ID、アカウント ID、E メールを使用してください。
https://console.aws.amazon.com/guardduty/ コンソールの [Settings] (設定) ページで、または ListDetectors API を使用して、現在のリージョンの detectorId を確認できます。
aws guardduty create-members --detector-id 12abc34d567e8fa901bc2d34e56789f0
--account-details AccountId=123456789012
,Email=guarddutymember@amazon.com
ListAccounts API オペレーションを使用するか、次の CLI コマンドを実行することで、すべての組織メンバーのリストを表示できます。
aws organizations list-accounts
-
GuardDuty の委任された管理者のアカウントの認証情報を使用して updateOrganizationConfiguration API オペレーションを実行し、新しいメンバーアカウントに対してそのリージョンで GuardDuty を自動的に有効にします。
委任された管理者の AWS アカウントのディテクター ID を指定する必要があります。
この操作は、次の CLI コマンドを実行することで、AWS Command Line Tools を使用して行うこともできます。必ずご自身の有効な ディテクター ID を使用してください。
https://console.aws.amazon.com/guardduty/ コンソールの [Settings] (設定) ページで、または ListDetectors API を使用して、現在のリージョンの detectorId を確認できます。
aws guardduty update-organization-configuration --detector-id 12abc34d567e8fa901bc2d34e56789f0
--auto-enable
describeOrganizationConfiguration API オペレーションを実行するか、委任された管理者のディテクター ID を使用して次の CLI コマンドを実行することで、目的のリージョンの GuardDuty の自動有効化機能がオンになっているかを確認できます。
https://console.aws.amazon.com/guardduty/ コンソールの [Settings] (設定) ページで、または ListDetectors API を使用して、現在のリージョンの detectorId を確認できます。
aws guardduty describe-organization-configuration —-detector-id 12abc34d567e8fa901bc2d34e56789f0
-
(推奨) 各リージョンにて、固有のディテクター ID を使用してこれらのステップを繰り返し、すべての AWS リージョン のすべてのメンバーの GuardDuty モニタリングカバレッジを有効にします。
GuardDuty 管理者アカウントの単一の組織の委任された管理者への統合
GuardDuty では、委任された管理者のアカウントでメンバーアカウントを管理するために、AWS Organizations を通じて関連付けを使用することを推奨しています。以下に示すプロセスの例を使用して、組織内の招待によって関連付けられた管理者とメンバーを、1 名の GuardDuty の委任された管理者の下に統合することができます。
既に GuardDuty の委任された管理者が管理しているアカウントや、アクティブなメンバーがいる委任された管理者のアカウントを、別の GuardDuty の委任された管理者のアカウントに追加することはできません。各組織は、リージョンごとに 1 つのみ GuardDuty の委任された管理者のアカウントを持つことができ、各メンバーアカウントは 1 名の委任された管理者のみを持つことができます。
-
GuardDuty を管理するすべてのアカウントが組織に属していることを確認します。組織にアカウントを追加する方法については、「AWS アカウント を組織に招待する」を参照してください。
-
組織の GuardDuty の委任された管理者として指定したいアカウントを除き、既存の管理者アカウントからすべてのメンバーアカウントの関連付けを解除します。
-
[Settings] (設定) ページから、組織の GuardDuty の委任された管理者を指定します。
-
指定された委任管理者アカウントにログインします。
-
組織からメンバーの追加に進みます。
GuardDuty はリージョンレベルのサービスであるという点にご注意ください。GuardDuty の効果を最大限にするために、委任された管理者のアカウントを指定し、各リージョンのメンバー全員を追加することをお勧めします。
GuardDuty の委任された管理者の登録解除
委任された管理者の登録を解除できるのは、Organizations 管理アカウントのみです。
コンソールまたは API を選択し、表示されるステップに従って、委任された管理者の登録を解除します。登録解除が完了すると、新しい委任された管理者を指定することができます。
- Console
-
コンソールから委任された管理者の登録を解除する場合に、アカウントが Organizations 管理アカウントでもある場合は、委任された管理者として指定された各リージョンでこのプロセスを繰り返す必要があります。
Organizations 管理アカウントで、別のアカウントを委任された管理者に指定した場合、そのアカウントはすべてのリージョンで登録が解除されます。
https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。
-
[Settings] (設定) を選択します。
-
設定ページから、[Delegated Administrator] (委任された管理者) で [Remove] (削除) を選択します。
-
[Remove Administrator] (管理者の削除) を選択して変更を確定します。
- API
-
API から委任された管理者の登録を解除する場合は、新しく委任された管理者を指定する前に、すべてのリージョンで登録を解除する必要があります。
-
Organizations 管理アカウントの認証情報を使用して、DisableOrganizationAdminAccount API オペレーションを実行します。
aws guardduty disable-organization-admin-account --admin-account-id "123456789012
"
-
その委任された管理者が管理する各リージョンで繰り返します。