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 ポリシーで推奨されるベストプラクティスは、スコープが最も狭いロールを使用することです。グラフの作成メンバーの作成グラフへのメンバーの追加というスクリプトワークフローを実行するために必要なアクセス許可は、次のとおりです。

  • 探偵:CreateGraph

  • 探偵:CreateMembers

  • 探偵:DeleteGraph

  • 探偵:DeleteMembers

  • 探偵:ListGraphs

  • 探偵:ListMembers

  • 探偵:AcceptInvitation

ロールの信頼関係

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<ACCOUNTID>:user/<USERNAME>" }, "Action": "sts:AssumeRole" } ] }

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

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

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

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

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

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

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

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

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

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

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

  2. インスタンスに、管理者アカウントAssumeRole内でインスタンスが呼び出せるようにするアクセス許可を持つIAMロールをインスタンスにアタッチします。

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

    それ以外の場合は、EC2「 コンソール を使用して既存のEC2インスタンスにIAMロールを簡単に置き換えたりアタッチする」のブログ記事を参照してください。

  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

    Linux

    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. EC2 インスタンスまたはローカルマシンのamazon-detective-multiaccount-scriptsディレクトリに.csvファイルをコピーします。

  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 がサポートするすべてのリージョンで機能します。