スクリプトを実行するための前提条件

  • リリースバージョン: Australia
  • 更新日 2026年06月17日
  • 所要時間:7分
  • AWS のスクリプトを実行する前に、前提条件をすべて満たしておいてください。

    重要:
    AWS のサービスグラフコネクタで利用可能なスクリプトがダウンロードされていることを確認します。「AWS スクリプトのダウンロード」を参照してください。
    後で AWS のスクリプトを実行する際に使用する、次の詳細情報を決定します。

    ServiceNow IAM ロールの決定

    AWS 環境から構成アイテム (CI) を取得するために、メンバーアカウントで読み取り専用操作を実行する Identity and Access Management (IAM) ロールを決定します。

    デフォルトでは、CreateSnowOrganizationAccountAccessRoleInMemberAccount.yml スクリプトは SnowOrganizationAccountAccessRole IAM ロールを作成します。スクリプトによって作成されたデフォルト名を使用することも、新しい IAM ロールを作成することもできます。ただし、入力パラメータとして必要な場合は、スクリプト間で同じ IAM ロールを入力する必要があります。「AWS の設定に必要なスクリプトの実行」を参照してください。

    ServiceNow IAM ユーザー名の決定

    メンバーアカウントで ServiceNow IAM ロールを担う IAM ユーザーの名前を決定します。

    デフォルトでは、CreateServiceNowUser.yml スクリプトは、NOWSGCUser IAM ユーザーを作成します。スクリプトによって作成されたデフォルト名を使用することも、新しい IAM ユーザーを作成することもできます。ただし、入力パラメータとして必要な場合は、スクリプト間で同じ IAM ユーザー名を入力する必要があります。「AWS の設定に必要なスクリプトの実行」を参照してください。

    詳細検出用の S3 バケットの定義

    AWS データのインポート時に SendCommand API 応答を保存および削除するために、ServiceNow IAM ロールの読み取りおよび削除権限を持つ S3 バケットを設定します。

    始める前に

    必要なロール: アプリケーションアドミニストレーター

    このタスクについて

    AWS のサービスグラフコネクタアプリケーション用に S3 バケットを作成し、ServiceNow IAM ロール が組織内のこのバケットにアクセスできるようにします。
    注:
    S3 バケットは、EC2 インスタンスで詳細ディスカバリーを実行する場合にのみ使用します。

    手順

    1. AWS アカウントリージョンに S3 バケットを作成します。
      AWS のドキュメントサイトで「バケットの作成を参照してください
      注:
      S3 バケットには、次の権限の設定が必要です。
      表 : 1. S3 バケットの権限とその設定
      権限 設定
      アクセス バケットとオブジェクトを非公開にする
      S3 のパブリックアクセスブロック S3 バケットとオブジェクトへのパブリックアクセスをブロックする

      詳細については、AWS のドキュメントサイトで「S3 ストレージへのパブリックアクセスのブロック を参照してください

    2. バケットポリシーを追加します。

      AWS のドキュメントサイトで「バケットポリシーの使用 を参照してください

      ステップ 1 で作成した S3 バケットにアクセスするには、そのバケットポリシーで、マネージド EC2 インスタンスにアタッチされた IAM インスタンスプロファイルロールを許可する必要があります。バケットポリシーを作成するか、バケットアクセス制御リスト (ACL) で AWS メンバーアカウントにアクセス権を付与できます。メンバーアカウントには EC2 インスタンスが含まれている必要があります。
      注:
      バケット ACL に AWS メンバーアカウントを追加すると、そのメンバーアカウントのすべてのユーザーとロールが S3 バケットにアクセスできるようになります。
      バケットポリシーを追加するときは、次のサンプルコードを参照してください。
      {
          "Version": "2012-10-17",
          "Id": "S3PolicyforServiceNowIAMrole",
          "Statement": [
              {
                  "Sid": "EC2S3Access",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::AWS-ACCOUNT:role/INSTANCE-PROFILE-ROLE-NAME"
                  },
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:PutObjectAcl"
                  ],
                  "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
              }
          ]
      }
      ここで
      • SOURCE-AWS-ACCOUNT は、EC2 インスタンスを含むメンバーアカウントの AWS アカウント ID です。
      • INSTANCE-PROFILE-ROLE-NAME は、EC2 インスタンスに添付されている IAM インスタンスプロファイルです。

        デフォルトでは、AmazonSSMForInstancesRoleSetup.yml スクリプトは AmazonSSMForInstancesRole IAM インスタンスプロファイルロールを作成し、そのロールを AmazonSSMManagedInstanceCore バケットポリシーに添付します。「AWS の設定に必要なスクリプトの実行」を参照してください。

      • DOC-EXAMPLE-BUCKET は S3 バケット名です。
      次のバケットポリシーの例では、効果、プリンシパル、アクション、リソースの要素を示しています。このポリシーは、ID 123456789000 で、s3:GetObjects3:PutObjects3:PutObjectAcl の S3 権限を持つアカウントの IAM インスタンスプロファイルロールである AmazonSSMRoleForInstances を myS3Bucket バケットに許可します。
      {
          "Version": "2012-10-17",
          "Id": "S3PolicyforServiceNowIAMrole",
          "Statement": [
              {
                  "Sid": "EC2S3Access",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": [
                          "arn:aws:iam::123456789000:role/AmazonSSMRoleForInstances",
                          "arn:aws:iam::123456789001:role/AmazonSSMRoleForInstances",
                          "arn:aws:iam::123456789002:role/AmazonSSMRoleForInstances",
                          "arn:aws:iam::123456789003:role/AmazonSSMRoleForInstances",
                          "arn:aws:iam::123456789004:role/AmazonSSMRoleForInstances"
                      ]
                  },
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:PutObjectAcl"
                  ],
                  "Resource": "arn:aws:s3:::myS3Bucket/*"
              }
          ]
      }
    3. IAM 権限を EC2 インスタンスのインスタンスプロファイルロールに添付して、ステップ 1 で作成した S3 バケットに SendCommand API 応答を発行します。
      AWS のドキュメントサイトで「インスタンスプロファイルの使用」および「インスタンスへの IAM ロールのアタッチ」を参照してください。
      マネージド EC2 インスタンスに添付された IAM インスタンスプロファイルロールには、次のサンプルポリシーに示すように、S3 バケットへのアクセスを許可するために、s3:GetObjects3:PutObjects3:PutObjectAcl の S3 権限が必要です。
      {
          "Version": "2012-10-17",
          "Statement": [
              {
              "Sid": "PublishTerminalOutputToS3",
                  "Effect": "Allow",
                  "Action": [
                      "s3:PutObject",
                      "s3:GetObject",
                      "s3:PutObjectAcl"
                  ],
                  "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
              }
          ]
      }
      ここで、DOC-EXAMPLE-BUCKET は S3 バケット名です。
      注:
      バケット名の下にファイルを作成できるように、バケット名の末尾にサフィックス「/*」を必ず追加してください。