コンソールとAWS CLIからAWS Security Hubのメンバーアカウントを追加・招待してみた

コンソールとAWS CLIからAWS Security Hubのメンバアカウントの関連付けをやってみた
2021.10.25

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

AWS Security HubはAWS Organizationsの利用に関係なく、 セキュリティ管理者アカウントと監視されるメンバアカウントを関連付けることができます。

今回は、コンソールとAWS CLIから手動で関連付ける方法を紹介します。

AWS Organizationsを利用していてシームレスに関連付けたい場合は、次の記事を参照ください。

スクリプトでマルチアカウント・マルチリージョンに一括で関連付けたい場合は、次の記事を参照ください。

関連付けのフロー

管理者・メンバアカウントそれぞれで作業が必要です。

AWS Security Hubの有効化

管理者・メンバーアカウントそれぞれでAWS Security Hubを有効化してください。

管理者アカウント:メンバアカウントを追加

作業アカウント : 管理者アカウント

コンソール

設定→アカウントから、メンバアカウントを追加します。

アカウントID,Eメールアドレス フォーマットのCSVファイルを指定し、メンバアカウントを一括登録することもできます。

CLI

CreateMembers API を実行します。

$ aws securityhub create-members \
  --account-details '[{"AccountId": "123"}, {"AccountId": "789"}]'
{
    "UnprocessedAccounts": []
}

この時点で、メンバーアカウントのステータスは Created になります。

関連付けが完了していないため、 メンバ一覧の表示には --no-only-associated オプションを渡します。

$ aws securityhub list-members
{
    "Members": []
}
$ aws securityhub list-members --no-only-associated
{
    "Members": [
        {
            "AccountId": "123",
            "MasterId": "456",
            "AdministratorId": "456",
            "MemberStatus": "Created",
            "UpdatedAt": "2021-10-22T11:31:48.385000+00:00"
        }
    ]
}

管理者アカウント:メンバアカウントを招待

作業アカウント : 管理者アカウント

コンソール

設定→アカウントのメンバアカウント一覧で、Status:Created なアカウントに存在する Invite リンクをクリックし、招待します。

CLI

InviteMembers API を実行します。

$ aws securityhub invite-members \
  --account-ids 123 789
{
    "UnprocessedAccounts": []
}

この時点で、メンバーアカウントのステータスは Invited になります。

メンバアカウント:招待を受諾

作業アカウント : メンバアカウント

コンソール

設定→アカウントで管理者アカウントからの招待を確認できます。

Accept ボタンから承諾します。

CLI

メンバアカウントからは、招待した管理者カウントIDと招待IDを確認できます。

$ aws securityhub list-invitations
{
    "Invitations": [
        {
            "AccountId": "456",
            "InvitationId": "b4be53e50b7f5c61b79e7a39d9c7a1ee",
            "InvitedAt": "2021-10-22T11:36:51.710000+00:00",
            "MemberStatus": "Invited"
        }
    ]
}

これらの情報を渡して、招待を受諾します。

$ aws securityhub accept-administrator-invitation \
  --administrator-id 456 \
  --invitation-id  b4be53e50b7f5c61b79e7a39d9c7a1ee

招待を受諾後、メンバーアカウントのステータスは Invited から Enabled になりました。

$ aws securityhub get-administrator-account
{
    "Administrator": {
        "AccountId": "456",
        "InvitationId": "b4be53e50b7f5c61b79e7a39d9c7a1ee",
        "InvitedAt": "2021-10-22T11:36:51.710000+00:00",
        "MemberStatus": "Enabled"
    }
}

管理者アカウント:メンバアカウントを確認

作業アカウント : 管理者アカウント

コンソール

設定→アカウントで管理者アカウントから、 Enabled になったメンバアカウントを確認できます。

CLI

関連付けが完了しているため、--no-only-associated オプション無しにメンバアカウントを確認できます。

$ aws securityhub list-members
{
    "Members": [
        {
            "AccountId": "123",
            "MasterId": "456",
            "AdministratorId": "456",
            "MemberStatus": "Enabled",
            "InvitedAt": "...",
            "UpdatedAt": "..."
        }
    ]
}

参考