フロー・ログ・コレクターの作成

特定の仮想プライベート・クラウド (VPC)、サブネット、インスタンス、またはインターフェース用のフロー・ログ・コレクターを注文してプロビジョンすることができます。 始める前に、フロー・ログについてでリストされているユース・ケースを確認し、以下の前提条件を満たしていることを確認してください。

フロー・ログ・コレクターをプロビジョンする際には、細分度の最も高いものが優先されるという点に留意してください。

コンソールでの前提条件

フロー・ログ・コレクターを作成する前に、以下の前提条件を満たしていることを確認してください。

  1. 少なくとも 1 つの VPC、サブネット、および仮想サーバー・インスタンスが存在することを確認してください。 この手順については、VPC およびサブネットの作成および仮想サーバー・インスタンスの作成を参照してください。

  2. フローログ用のバケットを持つ IBM Cloud® Object Storage インスタンスが存在することを確認する。 Object Storage バケットを作成するには、 IBM Cloud Object Storage の注文ページを参照してください。

    Object Storage バケットは、対象リソースと同じリージョンにある単一リージョンバケットでなければならない。 また、IAM アクセス・グループと監査ロギングを使用してバケットを保護することをお勧めします。

  3. タイプのリソースを認可する。 Flow Logs for VPCObject Storage タイプのリソースを認可する。

    そのためには、以下の手順を使用します。

    • IBM Cloud のコンソールで、**「管理」>「アクセス (IAM)」をクリックしてから、ナビゲーション・ペインで「許可」**を選択します。

    • **「作成」**をクリックし、次の情報を入力します。

      「ソース・サービス」で、次のようにします。

      • **「VPC インフラストラクチャー・サービス (VPC Infrastructure Services)」**を選択します。
      • **「選択された属性に基づくリソース」**を選択します。
      • リソース・タイプでは、**「Flow Logs for VPC」**を選択します。
      • ソース・サービス・インスタンスでは、**「すべてのインスタンス」**を選択します。

      「ターゲット・サービス」で、次のようにします。

      • **「Cloud Object Storage」**を選択します。
      • **「選択された属性に基づくリソース」**を選択します。
      • サービス・インスタンスでは、**「ストリングが等しい」 > 「すべてのインスタンス」**を選択します。

      より細かくするために、ターゲットに 「特定のリソース」 を含めるかどうかを指定できます。 特定のリソースをターゲットとして選択した場合は、属性を追加して、アクセス権限をさらにスコープすることができます。 属性のタイプは、選択したターゲット・サービスによって異なります。 例えば、単一インスタンスではなく、 特定のバケットにアクセス権限を割り当てる ことができます。

      サービス・アクセスでは、**「ライター」**役割を選択して、ターゲット・サービスにアクセスするソース・サービスに対してアクセス権限を割り当てます。

    • 「許可」 をクリックします。

    詳しくは、許可を使用した、サービス間のアクセス権限の付与を参照してください。

CLI からの前提条件

フロー・ログ・コレクターを作成する前に、以下の前提条件を満たしていることを確認してください。

  1. 少なくとも 1 つの VPC、サブネット、および仮想サーバー・インスタンスが存在することを確認してください。 この手順については、VPC およびサブネットの作成および仮想サーバー・インスタンスの作成を参照してください。

  2. フローログ用のバケットを持つ IBM Cloud® Object Storage インスタンスが存在することを確認する。 Object Storage バケットを作成するには、 IBM Cloud Object Storage の注文ページを参照してください。

    Object Storage バケットは、対象リソースと同じリージョンにある単一リージョンバケットでなければならない。 また、IAM アクセス・グループと監査ロギングを使用してバケットを保護することをお勧めします。

  3. タイプのリソースを認可する。 Flow Logs for VPCObject Storage タイプのリソースを認可する。

    これを行うには、次のコマンドを入力します。

    ibmcloud iam authorization-policy-create is cloud-object-storage Writer --source-resource-type flow-log-collector --target-service-instance-id $COS_INSTANCE_GUID
    
    ibmcloud iam authorization-policy-create is cloud-object-storage Reader --source-resource-type image --target-service-instance-id $COS_INSTANCE_GUID
    

    Object Storage インスタンスの Service credentials セクションから COS_INSTANCE_GUID を取得できます。

    Object Storage サービス資格情報
    Object Storage サービス資格情報

    詳しくは、許可を使用した、サービス間のアクセス権限の付与を参照してください。

API の前提条件

フロー・ログ・コレクターを作成する前に、以下の前提条件を満たしていることを確認してください。

  1. 少なくとも 1 つの VPC、サブネット、および仮想サーバー・インスタンスが存在することを確認してください。 この手順については、VPC およびサブネットの作成および仮想サーバー・インスタンスの作成を参照してください。

  2. フローログ用のバケットを持つ IBM Cloud® Object Storage インスタンスが存在することを確認する。 Object Storage バケットを作成するには、 IBM Cloud Object Storage の注文ページを参照してください。

    Object Storage バケットは、対象リソースと同じリージョンにある単一リージョンバケットでなければならない。 また、IAM アクセス・グループと監査ロギングを使用してバケットを保護することをお勧めします。

  3. タイプのリソースを認可する。 Flow Logs for VPCObject Storage タイプのリソースを認可する。

    そのためには、以下の手順を使用します。

    • IBM Cloud のコンソールで、**「管理」>「アクセス (IAM)」をクリックしてから、ナビゲーション・ペインで「許可」**を選択します。

    • **「作成」**をクリックし、次の情報を入力します。

      「ソース・サービス」で、次のようにします。

      • **「VPC インフラストラクチャー・サービス (VPC Infrastructure Services)」**を選択します。
      • **「選択された属性に基づくリソース」**を選択します。
      • リソース・タイプでは、**「Flow Logs for VPC」**を選択します。
      • ソース・サービス・インスタンスでは、**「すべてのインスタンス」**を選択します。

      「ターゲット・サービス」で、次のようにします。

      • **「Cloud Object Storage」**を選択します。
      • **「選択された属性に基づくリソース」**を選択します。
      • サービス・インスタンスでは、**「ストリングが等しい」 > 「すべてのインスタンス」**を選択します。

      サービス・アクセスでは、**「ライター」**役割を選択して、ターゲット・サービスにアクセスするソース・サービスに対してアクセス権限を割り当てます。

    • 「許可」 をクリックします。

    詳しくは、許可を使用した、サービス間のアクセス権限の付与を参照してください。

コンソールでフローログコレクターを作成する

IBM Cloud コンソールを使用してフロー・ログ・コレクターを作成するには、以下のステップを実行します。

  1. IBM Cloud コンソールにアクセスし、 アカウントログインする。

  2. ナビゲーションメニューの 「Menu」アイコンを 選択し、「 Infrastructure VPC」アイコン > 「 Network」 > 「 Flow Logs」の順にクリックします。

    「VPC 用のフロー・ログ」ダッシュボードが表示されます。

  3. 作成 」をクリックして、フローログのプロビジョニングページに進みます。

  4. 以下のフィールドに値を入力します。

    • 名前 (Name) - フロー・ログ・コレクターの固有の名前を入力します。
    • リソース・グループ (Resource group) - フロー・ログ・コレクターのリソース・グループを選択します。 このフロー・ログにデフォルト・グループを使用することも、リストから選択することもできます (定義されている場合)。 詳しくは、『リソースをリソース・グループに編成するためのベスト・プラクティス』を参照してください。
    • タグ- オプションで、タグを追加して、リソースの整理、使用コストの追跡、アクセス管理を行うことができます。
    • アクセス管理タグ-オプションで、アクセス制御関係の編成に役立つアクセス管理タグをリソースに追加します。 サポートされるアクセス管理タグの形式は key:value のみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。
  5. コレクターの詳細については、フロー・ログの対象サービスを選択してください。 選択内容によっては、追加フィールドが必要になる場合があります。

    • 仮想プライベートクラウド- VPCを選択します。 選択した VPC 内のすべてのネットワーク・トラフィックがログに記録されます。
    • サブネット - VPC を選択して、その VPC 内のサブネットを選択します。  選択したサブネット内のすべてのトラフィックがログに記録されます。
    • インスタンス - VPC を選択して、その VPC 内の仮想サーバー・インスタンスを選択します。 仮想サーバー・インスタンスのすべてのトラフィックがログに記録されます。
    • インターフェース - VPC を選択して、その VPC 内の仮想サーバー・インスタンスを選択してから、その仮想サーバー・インスタンスのネットワーク・インターフェースを選択します。 選択したネットワーク・インターフェースのすべてのトラフィックがログに記録されます。
    • 未接続仮想ネットワークインターフェイス-未接続仮想ネットワークインターフェイスの ID を指定します。 これは、準備ができたときにログ収集サービスにアタッチできる、専用の分離されたロギングパスを作成するのに便利です。
  6. ログの保存場所を指定する。 フローログは、 Object Storage バケットに書き込まれます。このバケットは、ターゲットリソースと同じリージョンに単一リージョンバケットとして作成する必要があります。

    • Cloud Object Storage instances- 欲しいバケツが存在する Object Storage インスタンス。
    • ロケーション (Location) - この入力は、ターゲット・リソースが存在するリージョンに直接関連付けられているため、利用できなくなっています。
    • Bucket- フローログコレクターサービスが書き込む IBM Cloud® Object Storage バケツ。

CLIからのフローログコレクタの作成

開始する前に、 CLI 環境をセットアップします

CLI を使用してフロー・ログ・コレクターを作成するには、次のコマンドを実行します。

  ibmcloud is flow-log-create \
    --bucket STORAGE_BUCKET_NAME \
    --target TARGET_ID [--name NAME] \
    --active ACTIVE \
    [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] \
    [--json]

ここで、

--bucket
Object Storage バケツの名前。 --target
フローログのターゲット。 --name
フロー・ログの新しい名前。 --active
このコレクターがアクティブかどうかを示します。 --resource-group-id
リソース・グループの ID。 このオプションは --resource-group-name と同時に指定することはできません。 --resource-group-name
リソース・グループの名前。 このオプションは --resource-group-id と同時に指定することはできません。 --json
出力をJSONでフォーマットする。

APIを使用してフローログコレクターを作成する

API を使用してフロー・ログ・コレクターを作成するには、以下のステップを実行します。

  1. 適切な変数を設定して API 環境をセットアップします。

  2. API コマンドで使用する以下の値を変数に格納します。

    • ResourceGroupId - まず、リソース・グループを取得してから、この変数に値を割り当てます。
    export ResourceGroupId=<your_resourcegroup_id>
    
    • VpcId - list vpc コマンドを使用してこの値を確認してから (上記の変数を使用)、得られた ID に基づいてこの変数の値を設定します。
    export VpcId=<your_VPC_id>
    
    • COSbucket- Object Storage バケツの名前。
    export COSbucket=<your_COS_bucket_name>
    
  3. すべての変数が開始されたら、特定 VPC 用のフロー・ログ・コレクターをプロビジョンします。

    curl -X POST
      -sH "Authorization:${iam_token}"
      "$vpc_api_endpoint/v1/flow_log_collectors?version=$api_version&generation=2" \
      -d  '{ \
           "name": "flow-logs-1", \
           "resource_group": { "id": "'$ResourceGroupId'"  }, \
           "storage_bucket": { "name": "'$COSbucket'" }, \
           "target": { "id": "'$VpcId'" } \
           }' | jq
    

    この例では、 jq をパーサーとして使用しています。 jq は、 MIT ライセンスの 下でライセンスされたサードパーティツールです。インスタンスの作成時に利用可能なすべての VPC イメージにプリインストールされているとは限りません。 使用する前に jq をインストールするか、お好みの他のパーサーを使用する必要があるかもしれません。

  4. サブネット、仮想サーバー・インスタンス、または VNIC をターゲットとするコレクターをプロビジョンするには、コレクター・ターゲットとしてそれぞれサブネット ID、仮想サーバー・インスタンス ID、または VNIC ID を指定する必要があります。 例えば、以下の要求では、仮想サーバー・インスタンス ID をターゲットとするコレクターが作成されます。

    export VsiId=<your_vsi_id>
    
    curl -X POST \
      -sH "Authorization:${iam_token}" \
      "$vpc_api_endpoint/v1/flow_log_collectors?version=$api_version&generation=2" \
      -d '{ \
       	 "name": "flow-logs-1", \
          "resource_group": { "id": "'$ResourceGroupId'"  }, \
          "storage_bucket": { "name": "'$COSbucket'" }, \
          "target": { "id": "'$VsiId'" } \
          }' | jq
    

次のステップ