メインコンテンツまでスキップ
Sumo Logic Japanese

Google Cloud IAM アプリケーションのログの収集

このページでは、Google Cloud Platform (GCP) サービスからログを取り込むための Sumo パイプラインについて説明し、Google Cloud IAM アプリケーションからのログ収集を設定する手順を紹介します。

このページでは、Google Cloud Platform (GCP) サービスからログを取り込むための Sumo パイプラインについて説明し、Google Cloud IAM アプリケーションからのログ収集を設定する手順を紹介します。

Google Logging からの Cloud IAM ログのエクスポートの作成

このステップでは、ログを前のステップで作成した Pub/Sub トピックにエクスポートします。

  1. GCP コンソールの左側のペインで [Logging (ログ)] をクリックします。

    cloud-iam-7.png
  2. [Exports (エクスポート)] に移動します。[Create Export (エクスポートの作成)] をクリックします。
    cloud-iam-8.png
  3. Sumo にログを送信する各 GCP サービスについて sink を作成します。次のサービスの sink を作成することをお勧めします: Google プロジェクト、IAM ロール、サービス アカウント。sink を設定するには、次の手順を実行します。

    1. 中央のペインでサービスを選択します (Google プロジェクト、IAM ロール、またはサービス アカウント)。

    2. 右側の [Edit Export (エクスポートの編集)] ウィンドウで次の操作を実行します。

      • [Sink Name (Sink 名)] を設定します。たとえば、"google-project" です。
      • [Sink Service (Sink サービス)] を "Cloud Pub/Sub" に設定します。
      • [Sink Destination (Sink ターゲット)] を作成したばかりの Pub/Sub トピックに設定します。たとえば、"pub-sub-logs" です。
      • [Create Sink (Sink の作成)] をクリックします。cloud-iam-9.png
  4. デフォルトでは、GCP ログは Stackdriver 内に保存されますが、このドキュメントで説明する手順に従って、GCP ログを除外するように Stackdriver を設定することもできます。この設定により、上記の Sumo Logic へのエクスポートに影響が及ぶことはありません。Stackdriver のログを除外する方法については、この GCP ドキュメントの手順に従ってください。

ログ メッセージのサンプル

{
 "message":{
   "data":{
     "insertId":"1b6mckoca48",
     "logName":"projects/bmlabs-loggen/logs/cloudaudit.googleapis.com%2Factivity",
     "protoPayload":{
       "@type":"type.googleapis.com/google.cloud.audit.AuditLog",
       "authenticationInfo":{
         "principalEmail":"player1@bmlabs.com"
       },
       "authorizationInfo":[{
         "granted":true,
         "permission":"iam.roles.undelete",
         "resource":"projects/bmlabs-loggen/roles/CustomRole655"
       }],
       "methodName":"google.iam.admin.v1.UndeleteRole",
       "request":{
         "@type":"type.googleapis.com/google.iam.admin.v1.UndeleteRoleRequest",
         "name":"projects/bmlabs-loggen/roles/CustomRole655"
       },
       "requestMetadata":{
         "callerIp":"73.110.42.127",
         "callerSuppliedUserAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36,gzip(gfe)"
       },
       "resourceName":"projects/bmlabs-loggen/roles/CustomRole655",
       "response":{
         "@type":"type.googleapis.com/google.iam.admin.v1.Role",
         "description":"Created on: 2017-10-24",
         "etag":"BwVcY076Hf0=",
         "group_name":"custom",
         "group_title":"Custom",
         "included_permissions":["bigquery.datasets.create"],
         "name":"projects/bmlabs-loggen/roles/CustomRole655",
         "title":"Custom Role  3"
       },
       "serviceName":"iam.googleapis.com",
       "status":{
         
       }
     },
     "receiveTimestamp":"2017-11-20T10:54:01.590EST",
     "resource":{
       "labels":{
         "project_id":"bmlabs-loggen",
         "role_name":"projects/bmlabs-loggen/roles/CustomRole655"
       },
       "type":"iam_role"
     },
     "severity":"NOTICE",
     "timestamp":"2017-11-20T10:54:01.590EST"
   },
   "attributes":{
     "logging.googleapis.com/timestamp":"2017-11-20T10:54:01.590EST"
   },
   "message_id":"164347792499667",
   "messageId":"164347792499667",
   "publish_time":"2017-11-20T10:54:01.590EST",
   "publishTime":"2017-11-20T10:54:01.590EST"
 },
 "subscription":"projects/bmlabs-loggen/subscriptions/push-to-sumo"
}

クエリのサンプル

一定期間にわたる追加されたロール

_collector="HTTP Source for GCP Pub/Sub" logName resource timestamp
| json "message.data.resource.type" as type
| parse regex "\s+\"logName\":\"(?<log_name>\S+)\""
| where type = "project" and log_name matches "projects/*/logs/cloudaudit.googleapis.com%2Factivity"
| timeslice 1h
| json "message.data.resource.labels", "message.data.resource.labels.project_id", "message.data.protoPayload.serviceData.policyDelta.bindingDeltas[*]" as labels, project, changes
| parse regex field=changes "\"role\":\"roles\\\/(?<role>[a-zA-Z.]+)\",\"member\":\".*\",\"action\":\"(?<action>[A-Z]+)\"" multi
| where action="ADD"
| count by _timeslice, role
| transpose row _timeslice column role