目次

APIを使用して File Storage Security にスタックを追加する

推奨設定

APIを使用する前に、 File Storage Security およびAWSのWebインタフェースを使用してスタックの配置を実行することをお勧めします。Webインタフェースを使用すると、配置パラメータ、概念、プロセスに対するユーザフレンドリーな紹介が可能になります。

Webインタフェースを使用した配信の手順については、 Getting startedを参照してください。


前提条件

  1. (オプション) AWSコマンドラインインタフェース(CLI)をインストールします。すべてのバージョンがサポートされています。
  2. スタックを作成します
  3. APIキーを作成します
  4. リクエストを実行するたびに、ヘッダ内の認証とAPIバージョンが必要になります。

    • Authorization Header
      • Trend Micro Cloud One APIキーの場合:
        • キー: Authorization
        • 値: ApiKey <your api key value>
      • 従来のAPIキー(非推奨):
        • キー: api-secret-key
        • 値: <your api key value>
    • APIバージョンヘッダ:
      • キー: api-version
      • 値: v1

Trend Micro Cloud One APIキーの例:

GET /api/external-id HTTP/1.1
Authorization: ApiKey YOUR-API-KEY
Api-Version: v1

従来のAPIキーの例:

GET /api/filestorage/external-id HTTP/1.1
api-secret-key: YOUR-API-KEY
Api-Version: v1

ここで、 YOUR-API-KEY は以前に生成したAPIキーに置き換えられます。

APIキーが有効な場合、API呼び出しは許可されます。そうでない場合は、403コードが返されます。


APIを使用してAll-in-one Stackを配信する

All-in-one Stackを配信するには

  1. ScannerおよびStorage StackのARNを取得します

    • オプション1 - AWSコンソールで次の操作を実行します。

      • CloudFormation > Stacks > All-in-one Stack > Outputs
      • ScannerStackManagementRoleARN および StorageStackManagementRoleARN の値をメモしておきます。
    • オプション2 - AWS CLIを介して:

      • 次のAWS CLIコマンドを入力します。

      aws cloudformation describe-stacks --stack-name ALLINONE-STACK-NAME --output json --query 'Stacks[0].Outputs'

      ここで...

      ALLINONE-STACK-NAME はAll-in-one Stackの名前に置き換えられます。

      • コマンド出力で、 ScannerStackManagementRoleARN および StorageStackManagementRoleARN の出力値をメモしておきます。

      
              {
                  "OutputKey": "ScannerStackManagementRoleARN",
                  "OutputValue": "arn:aws:iam::123456789012:role/FileStorageSecurity-All-In-One-Stac-ManagementRole-EWQZVJ9M19R6",
                  "Description": "The ARN of the IAM role for File Storage Security backend services to manage the deployed resources."
              },
              {
                  "OutputKey": "StorageStackManagementRoleARN",
                  "OutputValue": "arn:aws:iam::123456789012:role/FileStorageSecurity-All-In-One-Stac-ManagementRole-17O6WHFHH59YY",
                  "Description": "The ARN of the IAM role for File Storage Security backend services to manage the deployed resources."
              },
      

  2. File Storage SecurityにScanner StackとStorage Stackを追加します

    まず、Scanner Stackを追加します。

    • Create Stack を呼び出し、リクエスト本文に ScannerStackManagementRoleARN 出力値を含めます。

      Scanner Stackの作成が開始されます。

    • API応答の stackID をメモしておきます。これは、Scanner StackのIDです。

    • 前の手順でメモしたScanner Stackの stackID を使用して Describe Stack を呼び出し、レスポンス本文の statusokになるまで呼び出し続けます。

      これで、Scanner Stackが追加されました。

    Storage Stackを追加します。

    • Create Stackを呼び出し、メモしておいた Scanner Stackの stackID および Storage Stackの StorageStackManagementRoleARN の出力値をリクエスト本文に含めます。

    Storage Stackの作成が開始されます。

    • Storage StackのIDであるAPIレスポンスの stackID をメモしておきます。
    • 前の手順でメモしたStorage Stackの stackID を使用して Describe Stack を呼び出し、レスポンス本文の statusokになるまで呼び出し続けます。

    スタックは個別に追加する必要があり、前述のようにStorage Stackの前にScanner Stackを追加する必要があります。


APIを使用してScanner Stackを配信する

Scanner Stackを配信するには

  1. ScannerスタックのARNを取得します

    • オプション1 - AWSコンソールで次の操作を実行します。

      • CloudFormation > Stacks > Scanner Stack > Outputs
      • ScannerStackManagementRoleARN の出力値をメモしておきます。
    • オプション2 - AWS CLIを介して:

      • 次のAWS CLIコマンドを入力します。

        aws cloudformation describe-stacks --stack-name SCANNER-STACK-NAME --output json --query 'Stacks[0].Outputs'

        ここで...

        SCANNER-STACK-NAME は、Scanner Stackの名前に置き換えられます。

        • コマンド出力で、 ScannerStackManagementRoleARN 出力値をメモしておきます。

        
                {
                    "OutputKey": "ScannerStackManagementRoleARN",
                    "OutputValue": "arn:aws:iam::123456789012:role/FileStorageSecurity-Scanner-Stack-ManagementRole-17O6WHFHH59YY",
                    "Description": "The ARN of the IAM role for File Storage Security backend services to manage the deployed resources."
                },
        

        • (任意)コマンド出力で、 ScannerLambdaAliasARN 出力値をメモしておきます。

        
                {
                    "OutputKey": "ScannerLambdaAliasARN",
                    "OutputValue": "arn:aws:lambda:us-east-1:123456789012:function:FileStorageSecurity-Scanner-Stack-ScannerLambda-I9ni6ZtjUyuD:TM-FSS-MANAGED"
                },
        

  2. File Storage SecurityにScanner Stackを追加します

    • Create Stack を呼び出し、 scanner stack ScannerStackManagementRoleARN 出力値をリクエスト本文に含めます。

      Scanner Stackの作成が開始されます。

    • APIレスポンスの stackID をメモしておきます。これは、Scanner StackのIDです。

    • 前の手順でメモしたScanner Stackの stackID を使用して Describe Stack を呼び出し、レスポンス本文の statusokになるまで呼び出し続けます。

      これで、Scanner Stackが追加されました。

  3. (オプション)ScanResultTopic SNS暗号化を有効にする場合はKMSキーポリシーを更新します

    • この手順を実行する必要があるのは、 Scanner Stackとは別のAWSアカウントに Storage Stackを配置する場合のみです。
    • 次のAWS CLIコマンドを入力します。

      aws kms get-key-policy --key-id KMS-MASTER-KEY-ARN-FOR-SNS --policy-name default --output text > key-policy.json

      ここで...

      KMS-MASTER-KEY-ARN-FOR-SNS は、SNS ScanResultTopicの暗号化に使用されるKMSキーのARNに置き換えられます。

    • key-policy.jsonを編集し、新しい Statement オブジェクトを挿入します。

      
          {
              "Sid": "Grant Scanner permission",
              "Effect": "Allow",
              "Principal": {
                  "AWS": 
              },
              "Action": [
                  "kms:Decrypt",
                  "kms:GenerateDataKey"
              ],
              "Resource": "*"
          }
      

      ここで...

      ScannerExecutionRoleARN Scanner Stackで、scannerExecutionRoleのARNに置き換えられます。

    • 次のAWS CLIコマンドを入力します。

      aws kms put-key-policy --key-id KMS-MASTER-KEY-ARN-FOR-SNS --policy-name default --policy file://key-policy.json

      KMS-MASTER-KEY-ARN-FOR-SNS は、SNS ScanResultTopicの暗号化に使用されるKMSキーのARNに置き換えられます。

APIを使用してアカウントScanner Stackをデプロイする

アカウントScanner Stackを配信するには

  1. Scanner StackのARNを取得します

    • オプション1 - AWSコンソールから:

      • [CloudFormation]→[スタック]→[スキャナスタック]→[ Outputs] の順に選択します。
      • AccountScannerStackManagementRoleARN の出力値を書き留めます。
    • オプション2 - AWS CLI経由:

      • 次のAWS CLIコマンドを入力します。

        aws cloudformation describe-stacks --stack-name SCANNER-STACK-NAME --output json --query 'Stacks[0].Outputs'

        ここで...

        SCANNER-STACK-NAME はScanner Stackの名前に置き換えられます。

        • コマンド出力で、 AccountScannerStackManagementRoleARN の出力値を書き留めます。

          
              {
                  "OutputKey": "AccountScannerStackManagementRoleARN",
                  "OutputValue": "arn:aws:iam::123456789012:role/FileStorageSecurity-Scanner-Stack-ManagementRole-17O6WHFHH59YY",
                  "Description": "The ARN of the IAM role for File Storage Security backend services to manage the deployed resources."
              },
          

  2. File Storage SecurityにScanner Stackの追加します

    • スタックの作成 を呼び出し、scanner stackの AccountScannerStackManagementRoleARN の出力値をリクエスト本文に含めます。

      Scanner Stackの作成が開始されます。

    • APIレスポンスの stackID をメモします。これは、アカウントScannerスタックのIDです。

    • 前の手順でメモしたアカウント stackID を使用して Describe Stack を呼び出し、レスポンス本文の statusokになるまで呼び出しを続けます。

      これで、アカウントScanner Stackが追加されました。

APIを使用してStorage Stackを配信する

Storage Stackを展開するには

  1. Storage StackのARNを取得します

    • オプション1 - AWSコンソールで次の操作を実行します。

      • CloudFormation > Stacks > Storage Stack > Outputsに移動します。
      • StorageStackManagementRoleARN 出力値をメモしておきます。
      • (オプション) BucketListenerRoleARN の出力値をメモしておきます。
    • オプション2 - AWS CLIを介して:

      • 次のAWS CLIコマンドを入力します。

        aws cloudformation describe-stacks --stack-name STORAGE-STACK-NAME --output json --query 'Stacks[0].Outputs'

        ここで...

        STORAGE-STACK-NAME がStorage Stackの名前に置き換えられました。

      • コマンド出力で、 StorageStackManagementRoleARN 出力値をメモしておきます。

        
            {
                "OutputKey": "StorageStackManagementRoleARN",
                "OutputValue": "arn:aws:iam::123456789012:role/FileStorageSecurity-All-In-One-Stac-ManagementRole-17O6WHFHH59YY",
                "Description": "The ARN of the IAM role for File Storage Security backend services to manage the deployed resources."
            },
        

      • (任意)コマンド出力で、 BucketListenerRoleARN 出力値をメモしておきます。

        
            {
                "OutputKey": "BucketListenerRoleARN",
                "OutputValue": "arn:aws:iam::123456789012:role/FileStorageSecurity-All-In-One-BucketListenerExecutionR-5RKPKU3L3P3C"
            },
        

  2. Storage Stackを File Storage Securityに追加します

    • List Stacks を呼び出し、Scanner stackの stackIDを取得します。
    • Create Stack を呼び出し、scanner stackの stackIDStorage stackの StorageStackManagementRoleARN 出力値をリクエスト本文に含めます。

      Storage Stackの作成が開始されます。

    • Storage StackのIDであるAPIレスポンスの stackID をメモしておきます。

    • 前の手順でメモしたStorage Stackの stackID を使用して Describe Stack を呼び出し、レスポンス本文の statusokになるまで呼び出し続けます。

      Storage Stackが追加されました。

  3. (オプション)スキャナキューの暗号化を有効にする場合は、KMSキーポリシーを更新します。

    • この手順は、Storage StackをScanner Stackとは別のAWSアカウントに配置する場合にのみ必要です。また、SQSキューのサーバ側の暗号化も有効にする必要があります。
    • 次のAWS CLIコマンドを入力します。

      aws kms get-key-policy --key-id KMS-MASTER-KEY-ARN-FOR-SQS --policy-name default --output text > key-policy.json

      ここで...

      KMS-MASTER-KEY-ARN-FOR-SQS SQS暗号化を使用して、KMSキーのARNに置き換えられます。

    • key-policy.jsonを編集し、新しい Statement オブジェクトを挿入します。

      
          {
              "Sid": "Grant bucketListener permission",
              "Effect": "Allow",
              "Principal": {
                  "AWS": 
              },
              "Action": [
                  "kms:Decrypt",
                  "kms:GenerateDataKey"
              ],
              "Resource": "*"
          }
      

      ここで...

      BucketListenerRoleARN Storage Stack内のbucketListenerのARNに置き換えられます。

    • 次のAWS CLIコマンドを入力します。

      aws kms put-key-policy --key-id KMS-MASTER-KEY-ARN-FOR-SQS --policy-name default --policy file://key-policy.json

      KMS-MASTER-KEY-ARN-FOR-SQS SQS暗号化を使用して、KMSキーのARNに置き換えられます。