Detective Python スクリプトを使用してアカウントを管理する - Amazon Detective

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Detective Python スクリプトを使用してアカウントを管理する

Amazon Detective は、GitHub リポジトリで一連のオープンソース Python スクリプトを提供します (amazon-detective-multiaccount-scripts)。スクリプトには Python 3 が必要です。

これらを使用して、次のタスクを実行できます。

  • リージョン全体で管理者アカウントのために Detective を有効にします。

    Detective を有効にすると、動作グラフにタグ値を割り当てることができます。

  • リージョン全体で管理者アカウントの動作グラフにメンバーアカウントを追加します。

  • オプションで、メンバーアカウントに招待メールを送信します。招待メールを送信しないようにリクエストを設定することもできます。

  • リージョン全体で管理者アカウントの動作グラフからメンバーアカウントを削除します。

  • リージョン全体で管理者アカウントのために Detective を無効にします。管理者アカウントが Detective を無効にすると、各リージョンでの管理者アカウントの動作グラフが無効になります。

enableDetective.py スクリプトの概要

enableDetective.py スクリプトは次のことを実行します。

  1. 指定された各リージョンで管理者アカウントが Detective をまだ有効にしていない場合は、そのリージョンで管理者アカウントのために Detective を有効にします。

    スクリプトを使用して Detective を有効にすると、動作グラフにタグ値を割り当てることができます。

  2. オプションで、各動作グラフについて、管理者アカウントから指定されたメンバーアカウントに招待を送信します。

    招待メールのメッセージはデフォルトのメッセージコンテンツを使用するため、カスタマイズすることはできません。

    招待メールを送信しないようにリクエストを設定することもできます。

  3. メンバーアカウントになるための招待を自動的に承諾します。

    スクリプトは自動的に招待を承諾するため、メンバーアカウントはこれらのメッセージを無視できます。

    メンバーアカウントに直接連絡して、招待が自動的に承諾されることを通知することをお勧めします。

disableDetective.py スクリプトの概要

disableDetective.py スクリプトは、指定されたリージョン全体で、管理者アカウントの動作グラフから、指定されたメンバーアカウントを削除します。

また、指定されたリージョン全体で、管理者アカウントのために Detective を無効にするオプションも提供します。

スクリプトに必要な許可

スクリプトには、管理者アカウントと、追加または削除したすべてのメンバーアカウントに既存の AWS ロールが必要です。

注記

ロール名は、すべてのアカウントで同じである必要があります。

IAM ポリシーについて推奨されているベストプラクティスは、適用範囲を最も絞り込んだロールを使用することです。グラフの作成メンバーの作成グラフへのメンバーの追加というスクリプトワークフローを実行するために必要なアクセス許可は、次のとおりです。

  • detective:CreateGraph

  • detective:CreateMembers

  • detective:DeleteGraph

  • detective:DeleteMembers

  • detective:ListGraphs

  • detective:ListMembers

  • detective:AcceptInvitation

ロールの信頼関係

ロールの信頼関係は、インスタンスまたはローカルの認証情報がロールを引き受けることを許可する必要があります。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/john_doe" }, "Action": "sts:AssumeRole" } ] }

必要な許可が付与されている共通のロールがない場合、少なくともそれらの許可が付与されているロールを各メンバーアカウントに作成する必要があります。管理者アカウントでもロールを作成する必要があります。

ロールを作成する場合は、必ず次を実行してください。

  • すべてのアカウントで同じロール名を使用します。

  • 上記の必要なアクセス許可を追加する (推奨) か、AmazonDetectiveFullAccess マネージドポリシーを選択します。

  • 前述のようにロールの信頼関係ブロックを追加します。

このプロセスを自動化するには、 EnableDetective.yaml AWS CloudFormation テンプレートを使用できます。テンプレートはグローバルリソースのみを作成するため、どのリージョンでも実行できます。

Python スクリプトの実行環境の設定

スクリプトは EC2 インスタンスまたはローカルマシンのいずれかから実行できます。

EC2 インスタンスの起動と設定

スクリプトを実行するための 1 つのオプションは、EC2 インスタンスからスクリプトを実行することです。

EC2 インスタンスを起動して設定するには
  1. 管理者アカウントで EC2 インスタンスを起動します。EC2 インスタンスの起動方法の詳細については、Amazon EC2 ユーザーガイド」の「Amazon EC2 Linux インスタンスの開始方法」を参照してください。 Amazon EC2

  2. インスタンスが管理者アカウント内で AssumeRole を呼び出せるようにするための許可が付与されている IAM ロールをインスタンスにアタッチします。

    EnableDetective.yaml AWS CloudFormation テンプレートを使用した場合、 という名前のプロファイルを持つインスタンスロールが作成されEnableDetectiveました。

    それ以外の場合、インスタンスロールの作成については、ブログ投稿の Easily Replace or Attach an IAM Role to an Existing EC2 Instance by Using the EC2 Console を参照してください。

  3. 必要なソフトウェアをインストールします。

    • APT: sudo apt-get -y install python3-pip python3 git

    • RPM: sudo yum -y install python3-pip python3 git

    • Boto (最小バージョン 1.15): sudo pip install boto3

  4. リポジトリのクローンを EC2 インスタンスに作成します。

    git clone https://github.com/aws-samples/amazon-detective-multiaccount-scripts.git

スクリプトを実行するためのローカルマシンの設定

スクリプトはローカルマシンからも実行できます。

スクリプトを実行するようにローカルマシンを設定するには
  1. AssumeRole を呼び出す許可を持つ管理者アカウントについて、ローカルマシンの認証情報を設定していることを確認してください。

  2. 必要なソフトウェアをインストールします。

    • Python 3

    • Boto (最小バージョン 1.15)

    • GitHub スクリプト

    プラットフォーム

    セットアップ手順

    Windows

    1. Python 3 をインストールします (https://www.python.org/downloads/windows/)。

    2. コマンドプロントを開きます。

    3. Boto をインストールするには、pip install boto3 を実行します。

    4. スクリプトのソースコードを GitHub (https://github.com/aws-samples/amazon-detective-multiaccount-scripts) からダウンロードします。

    Mac

    1. Python 3 をインストールします (https://www.python.org/downloads/mac-osx/)。

    2. コマンドプロントを開きます。

    3. Boto をインストールするには、pip install boto3 を実行します。

    4. スクリプトのソースコードを GitHub (https://github.com/aws-samples/amazon-detective-multiaccount-scripts) からダウンロードします。

    リナックス

    1. Python 3 をインストールするには、次のいずれかを実行します。

      • sudo apt-get -y install install python3-pip python3 git

      • sudo yum install git python

    2. Boto をインストールするには、sudo pip install boto3 を実行します。

    3. https://github.com/aws-samples/amazon-detective-multiaccount-scripts からスクリプトのソースコードのクローンを作成します。

追加または削除するメンバーアカウントの .csv リストの作成

動作グラフに追加したり、動作グラフから削除したりするメンバーアカウントを特定するには、アカウントのリストを含む .csv ファイルを提供します。

各アカウントを別々の行に一覧表示します。各メンバーアカウントエントリには、 AWS アカウント ID とアカウントのルートユーザーの E メールアドレスが含まれます。

次の例を参照してください。

111122223333,srodriguez@example.com 444455556666,rroe@example.com

enableDetective.py の実行

enableDetective.py スクリプトは、EC2 インスタンスまたはローカルマシンから実行できます。

Mac で enableDetective.py
  1. .csv ファイルを EC2 インスタンスまたはローカルマシンの amazon-detective-multiaccount-scripts ディレクトリにコピーします。

  2. amazon-detective-multiaccount-scripts ディレクトリを変更します。

  3. enableDetective.py スクリプトを実行します。

    enableDetective.py --master_account administratorAccountID --assume_role roleName --input_file inputFileName --tags tagValueList --enabled_regions regionList --disable_email

スクリプトを実行すると、次の値を置き換えます。

administratorAccountID

管理者 AWS アカウントのアカウント ID。

roleName

管理者アカウントと各メンバーアカウントで引き受ける AWS ロールの名前。

inputFileName

管理者アカウントの動作グラフに追加するメンバーアカウントのリストを含む .csv ファイルの名前。

tagValueList

(オプション) 新しい動作グラフに割り当てるタグ値のコンマ区切りのリスト。

各タグ値の形式は key=value です。例:

--tags Department=Finance,Geo=Americas
regionList

(オプション) メンバーアカウントを管理者アカウントの動作グラフに追加するリージョンのコンマ区切りのリスト。例:

--enabled_regions us-east-1,us-east-2,us-west-2

管理者アカウントは、リージョンで Detective をまだ有効にしていない可能性があります。その場合、スクリプトは Detective を有効にして、管理者アカウント用に新しい動作グラフを作成します。

リージョンのリストを提供しない場合、スクリプトは Detective がサポートするすべてのリージョンで機能します。

--disable_email

(オプション) 含まれている場合、Detective はメンバーアカウントに招待メールを送信しません。

disableDetective.py の実行

disableDetective.py スクリプトは、EC2 インスタンスまたはローカルマシンから実行できます。

Mac で disableDetective.py
  1. .csv ファイルを amazon-detective-multiaccount-scripts ディレクトリへコピーします。

  2. この .csv ファイルを使用して、指定されたリージョンのリスト全体で、管理者アカウントの動作グラフからリストされたメンバーアカウントを削除するには、次のように disableDetective.py スクリプトを実行します。

    disabledetective.py --master_account administratorAccountID --assume_role roleName --input_file inputFileName --disabled_regions regionList
  3. すべてのリージョンで管理者アカウントのために Detective を無効にするには、--delete-master フラグを併用して disableDetective.py スクリプトを実行します。

    disabledetective.py --master_account administratorAccountID --assume_role roleName --input_file inputFileName --disabled_regions regionList --delete_master

スクリプトを実行すると、次の値を置き換えます。

administratorAccountID

管理者 AWS アカウントのアカウント ID。

roleName

管理者アカウントと各メンバーアカウントで引き受ける AWS ロールの名前。

inputFileName

管理者アカウントの動作グラフから削除するメンバーアカウントのリストを含む .csv ファイルの名前。

Detective を無効にしている場合でも、.csv ファイルを提供する必要があります。

regionList

(オプション) 次のいずれかを実行するリージョンのコンマ区切りリスト:

  • 管理者アカウントの動作グラフからメンバーアカウントを削除します。

  • --delete-master フラグが含まれている場合は、Detective を無効にします。

例:

--disabled_regions us-east-1,us-east-2,us-west-2

リージョンのリストを提供しない場合、スクリプトは Detective がサポートするすべてのリージョンで機能します。