このドキュメントではCloud Exchangeプラットフォームで Amazon Security Lake v2.0.0 プラグインを設定する方法について説明します。 このプラグインは、アラート (DLP、マルウェア、ポリシー、侵害されたクレデンシャル、マルサイト、検疫、修復、セキュリティ評価、ウォッチリスト、UBA、CTEP、デバイス、コンテンツ)、イベント (ページ、アプリケーション、監査、インフラストラクチャ、ネットワーク、インシデント、エンドポイント、およびクライアント ステータス)、および WebTx [ Netskope LogStreaming 経由] ログを取得します。 データはAmazon Security Lakeのカスタムソースバケットに取り込まれます。このプラグインは、生のJSON形式でのデータ取り込みをサポートしていません。
注記
IAM Roles Anywhere認証に関しては、単一のAWSアカウントを使用してこのプラグインの検証を行いました。
前提条件
この設定を完了するには、以下が必要です。
- Netskopeテナント(または、例えば本番環境と開発/テスト環境など、複数のテナント)。
- Netskope Cloud Exchangeテナントには、テナントプラグインとログシッパープラグインが既に設定済みです。
- AWS Netskope LogStreamingまたはAzure Netskope LogStreamingプラグインが既に設定されているNetskope Cloud Exchangeテナント。
- Amazon Security Lakeが有効になっているAWSアカウント。
- Amazon Security Lake 用に自動生成された S3 バケット
- 参考資料:
https://docs.aws.amazon.com/security-lake/latest/userguide/
https://aws.amazon.com/security-lake
- AWS Athena、AWS Glue、AWS Lakeの形成、AWS上でのポリシーとロールの作成に関するアクセス権限。
Amazon Security Lakeプラグインのサポート
このプラグインは、アラート、イベント、およびWebTxログの取り込みをサポートしています。データはAmazon Security Lakeのカスタムソースバケットに取り込まれます。このプラグインは、生のJSON形式でのデータ取り込みをサポートしていません。
| データ型 | サポート |
|---|---|
| イベント | はい(ページ、アプリケーション、監査、インフラストラクチャ、ネットワーク、エンドポイント、インシデント、クライアントステータス) |
| アラート | はい (DLP、マルウェア、ポリシー、侵害されたクレデンシャル、マルサイト、検疫、修復、セキュリティ評価、ウォッチリスト、UBA、CTEP、デバイス、およびコンテンツ) |
| ウェブテキサス | はい(Netskope LogStreaming経由) |
注記:
- Google Pub Sub Lite をベースにした CLS WebTX は非推奨となりました。Netskope製品のサポート終了/サポート終了に関するお知らせについては、Netskopeナレッジポータルをご覧ください。
- WebTXログをSIEM、SOAR、XDR、データレイクなどのログ配信先に取り込むには、 AWS Netskope LogStreamingまたはAzure Netskope LogStreamingプラグインを使用します。
パフォーマンスマトリックス
このパフォーマンス測定値は、以下のVM仕様を持つ大規模Cloud Exchangeスタックに関するものです。
| デスクリプション | 仕様 |
|---|---|
| スタックサイズ | 大容量 RAM: 32 GB コア: 16 |
| Alerts/Events | 約50,000 EPM |
注:各生データの平均サイズは2KBです。
マッピング
デフォルトマッピングファイルのOCSFクラスマッピング
次の表は、Netskopeテナントからデータが取り込まれた際に、Netskopeアラート、イベント、およびWebTxタイプに適用されるデフォルトマッピングファイルのOCSFクラスマッピングについて説明しています。
注:デフォルトのマッピング ファイルは OCSF v1.3.0 を使用します。
| Type | Netskope Alert/Event/Webtx Name | OCSF Class |
|---|---|---|
| 警告 | 妥協したクレデンシャル | データセキュリティに関する調査結果 [2006] |
| コンテンツ | データセキュリティに関する調査結果 [2006] | |
| CTEP | 検出結果 [2004] | |
| デバイス | 検出結果 [2004] | |
| DLP | データセキュリティに関する調査結果 [2006] | |
| Malsite | 検出結果 [2004] | |
| マルウェア | 検出結果 [2004] | |
| ポリシー | 検出結果 [2004] | |
| 検疫 | 検出結果 [2004] | |
| 修復 | 検出結果 [2004] | |
| セキュリティ評価 | データセキュリティに関する調査結果 [2006] | |
| UBA | 検出結果 [2004] | |
| Watchlist | 検出結果 [2004] | |
| イベント | 応用 | アプリケーションライフサイクル [6002] |
| Audit | イベントログアクティビティ [1008] | |
| クライアントステータス | ホストプロファイルによる検出結果[2004] | |
| Endpoint | 検出結果 [2004] | |
| Incident | 検出結果 [2004] | |
| Infrastructure | アプリケーションライフサイクル [6002] | |
| ネットワーク | ネットワークアクティビティ [4001] | |
| Page | 検出結果 [2004] | |
| Webtx | Transaction | ネットワークプロキシプロファイルを使用したネットワークアクティビティ[4001] |
注記
デフォルトのマッピングファイルでは、raw_data はすべてのアラート、イベント、および webtx に対してマッピングされていません。ユーザーが生のアラート/イベント/WebTXを送信したい場合は、各アラート/イベント/WebTXタイプごとに、raw_dataフィールドをデフォルト値「raw_data」にマッピングしたカスタムマッピングを作成する必要があります。以下は、Compromised クレデンシャルがraw_dataフィールドを「raw_data」のデフォルト値でマッピングしている例です:

データ型マッピング
NetskopeフィールドをOCSFフィールドにマッピングするために採用された方法論と、対応する変換を以下に示します。 . 新しいフィールドを追加する必要がある場合は、一貫性を保つために同じフィールドを追加できます。
| Netskopeフィールドの例 | 変身 | 想定されるOCSFフィールドタイプ | Example Values |
|---|---|---|---|
| 文字列を含む値、例:ファイルパス、ドメイン名、UUID、デスクリプション、コメント、および複雑なネストされたオブジェクト | String | string_t | “\\printserver\\printer”,5182808a2a99fc688d4a8057,”{\”access_method\”: \”API Connector\”, \”AccountType\”: \”SAML\”}” |
| 日時を含む値、例src_time、last_event_timestamp、last_update_timestamp | タイムスタンプ | timestamp_t (整数) | 1768804071000 |
| 整数値。例えばポート、しきい値、イベント数、またはトランザクションID | Integer | integer_t | 404, 27017 |
| Values requiring precision, For e.g. src_latitude, src_longitude | 浮動小数点 | float_t | -3.6029212e+24,2.77645e+23 |
カスタムマッピングを使いながらAWS上で設定する
Security Lakeは、S3にアップロードされるすべてのファイルに対して、一貫したParquetスキーマを要求します。これにより、Glue Crawlersがparquetファイルからテーブルスキーマをエラーなく推論できるようになります。
Parquetファイルが既にアップロードされている状態で、カスタムマッピングを実行したり、提供されているマッピングスキーマを更新したりすると、ファイルのスキーマが一貫性を保てなくなる可能性があります。 つまり、一部のファイルに存在する列が他のファイルには存在しない、あるいは一部のファイルに余分な列が含まれているということです。Athenaでこのようなパーティションを照会する場合、HIVE_PARTITION_SCHEMA_MISMATCHエラーが発生する可能性があります。これらのエラーを回避するため、カスタムマッピングに移行する前に必ずGlue Crawlersを編集してください。このアップデートは、parquetファイル間でスキーマが異なるすべてのイベント/アラート/webtxタイプのクローラーに対して実施する必要があります。
- クローラーを編集するには、 Set Output and Scheduling > Advanced Optionsに移動してください。
- クローラーがデータストアのスキーマ変更を検出した場合、AWS Glue はデータカタログのテーブル更新をどのように処理すべきですか?については、 Add new columns onlyを選択します。
- テーブルのメタデータを使用して、すべての新しいパーティションと既存のパーティションを更新するトグルを有効にします。
- Next > Updateをクリックしてください。

APIの詳細
LibraryAWS SDK for Python (Boto3)
使用方法: AWS SDK for Python (Boto3) は、Amazon Security Lake、Amazon Simple Storage Service (Amazon S3)、Amazon Security Token Service (STS) などの AWS サービスを作成、構成、管理するために使用します。SDKは、オブジェクト指向APIと、AWSサービスへの低レベルアクセス機能を提供します。
プラグイン SDK を使用して、カスタムログソースのリスト表示、Security Lake でのカスタムログソースの作成、S3 へのアップロードを可能にするプロバイダーロールの引き受け、そして Parquet ファイルの S3 へのアップロードなどのアクションを実行します。
Security Lakeクライアントの作成
securitylake_client = boto3.client(
"securitylake",
aws_access_key_id=self.aws_public_key,
aws_secret_access_key=self.aws_private_key,
aws_session_token=self.aws_session_token,
region_name=self.configuration.get("region_name").strip(),
config=Config(
proxies=self.proxy,
user_agent=USER_AGENT,
read_timeout=READ_TIMEOUT,
retries={"max_attempts": MAX_RETRIES, "mode": "standard"},
),
)
Security Lakeクライアントを使用してカスタムログソースを一覧表示/作成する
securitylake_client.list_log_sources() securitylake_client.create_custom_log_source(**request_params)
STSクライアントの作成
sts_client = boto3.client(
"sts",
aws_access_key_id=self.aws_public_key,
aws_secret_access_key=self.aws_private_key,
aws_session_token=self.aws_session_token,
region_name=self.configuration.get("region_name").strip(),
config=Config(
proxies=self.proxy,
user_agent=USER_AGENT,
read_timeout=READ_TIMEOUT,
retries={"max_attempts": MAX_RETRIES, "mode": "standard"},
),
)
STSクライアントがプロバイダーの役割を担う
response = sts_client.assume_role(
RoleArn=role_arn,
RoleSessionName=role_session_name,
ExternalId=external_id,
DurationSeconds=ASSUMED_ROLE_DURATION_SECONDS,
)
S3クライアントの作成
s3_client = boto3.client(
"s3",
aws_access_key_id=self.aws_public_key,
aws_secret_access_key=self.aws_private_key,
aws_session_token=self.aws_session_token,
region_name=self.configuration.get("region_name").strip(),
config=Config(
proxies=self.proxy,
user_agent=USER_AGENT,
read_timeout=READ_TIMEOUT,
retries={"max_attempts": MAX_RETRIES, "mode": "standard"},
),
)
S3 クライアントを使用してファイルをアップロードする
s3_client.upload_file(file_path, bucket_name, s3_key)
IAM Roles Anywhereにのみ適用されます
IAMクライアントの作成
iam_client = boto3.client(
"iam",
aws_access_key_id=self.aws_public_key,
aws_secret_access_key=self.aws_private_key,
aws_session_token=self.aws_session_token,
region_name=self.configuration.get("region_name").strip(),
config=Config(
proxies=self.proxy,
user_agent=USER_AGENT,
read_timeout=READ_TIMEOUT,
retries={"max_attempts": MAX_RETRIES, "mode": "standard"},
),
)
プロバイダーロールの信頼ポリシーを更新する
role = iam_client.get_role(RoleName=role_name) iam_client.update_assume_role_policy(RoleName=role_name, PolicyDocument=json.dumps(trust_policy))
ユーザーエージェント
APN/1.1 (ahq9d89xj9gspapczzdb59goq)
ワークフロー
- AWS上での設定。
- CLS Amazon Security Lakeプラグインを設定します。
- AWS Security Lake のビジネスルールを設定します。
- AWS Security Lake のログ配信設定を追加します。
- AWS Security Lakeプラグインを検証します。
動画を見る
再生ボタンをクリックして動画をご覧ください。
AWS の設定
AWS プラグイン認証方法を使用する
ポリシーを作成する
- IAM > Policiesに移動してCreate policyをクリックしてください。

- これらの権限をJSON形式で追加してください。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecurityLakePerms", "Effect": "Allow", "Action": [ "securitylake:CreateCustomLogSource", "securitylake:ListLogSources", "securitylake:GetDataLakeSources", "securitylake:ListDataLakes" ], "Resource": "*" }, { "Sid": "LakeFormationPerms", "Effect": "Allow", "Action": [ "lakeformation:RegisterResource", "lakeformation:GrantPermissions", "lakeformation:GetDataLakeSettings" ], "Resource": "*" }, { "Sid": "GluePerms", "Effect": "Allow", "Action": [ "glue:CreateTable", "glue:CreateDatabase", "glue:CreateCrawler", "glue:UpdateCrawler", "glue:UpdateDatabase", "glue:UpdateTable", "glue:StartCrawlerSchedule", "glue:GetDatabase", "glue:GetDatabases", "glue:GetTable", "glue:GetTables", "glue:GetTableVersion", "glue:GetTableVersions", "glue:GetPartition", "glue:GetPartitions" ], "Resource": "*" }, { "Sid": "AllowAssumeSecurityLakeProviderRole", "Effect": "Allow", "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity", "sts:TagSession" ], "Resource": [ "arn:aws:iam::[aws-account-id]:role/AmazonSecurityLake-Provider-*" ] }, { "Sid": "AllowPassAndReadRoleForCrawler", "Effect": "Allow", "Action": [ "iam:PassRole", "iam:GetRole", "iam:CreateRole", "iam:PutRolePolicy", "iam:ListRolePolicies", "iam:DeleteRole", "iam:DeleteRolePolicy" ], "Resource": "*" }, { "Sid": "S3Perms", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:PutObject", "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketPolicy" ], "Resource": "*" } ] }注記
使用する前に、上記のポリシーの AWS アカウント ID を必ず置き換えてください。

- ポリシー名を入力します。

- Create Policyをクリックしてください。
役割を作成する
- IAM > Rolesに移動してCreate roleをクリックしてください。

- AWS ServiceをSelect 。
- 「使うケース」で、 EC2を選択します。
- Nextをクリックしてください。

- 「ポリシーの作成」で作成した権限ポリシーSelect 。
- Nextをクリックしてください。

- Netskope -ce-instance-roleのように、ロール名とデスクリプションを入力します。
- Create Roleをクリックしてください。


EC2インスタンスにロールを割り当てる
- EC2インスタンスのコンソールを開きます。
- Instancesの下のInstances をクリックしてください。

- EC2インスタンス(Cloud Exchangeがデプロイされている場所)については、 Action > Security > Modify IAM Roleに移動します。

- 上記で作成したロールを「ロールの作成( Netskope -ce-instance-role)」でSelect 。
- Add IAM role > Modify IAM Roleをクリックして、 Update IAM Roleをクリックしてください。

クローラーロールARNを作成する
- IAM > Policiesに移動し、次の権限を使用するポリシーを作成します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GlueCrawlerListBucket", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::aws-security-data-lake-us-east-1-*" }, { "Sid": "GlueCrawlerReadObjects", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectTagging", "s3:ListMultipartUploadParts" ], "Resource": "arn:aws:s3:::aws-security-data-lake-us-east-1-*/*" } ] }
- ポリシー名を入力して、 Createをクリックしてください。

- Roleに移動してCreate a Roleをクリックしてください。Trusted Entity Type > Select AWS Service
Service > Select Glueへ移動してください。
- AWSGlueServiceRoleをアタッチし、このロールのポリシーを作成します。


- 役割名を入力して、 Create roleをクリックしてください。


- ロールARNをコピーしてください。それは クローラーロールARNになります。

湖の形成における権限の提供
- AWS Lake formation> Administration > Administrative roles and tasksへ移動してください。

- アクセスタイプをData lake administratorに設定し、作成したロールを選択してConfirmをクリックします。インスタンスロールだけでなく、クローラーロールも含まれていることを確認してください。

- Permissions > Data permissionsに移動してGrantをクリックしてください。

- プリンシパルタイプをPrincipalsに設定し、次に役割を選択します。インスタンスロールだけでなく、クローラーロールも含まれていることを確認してください。

注記
Athena 上でデータを照会する場合は、クローラーロールとインスタンスロールに加えて、IAM ユーザーとロールの下にユーザーの役割も追加してください。

- 名前付きデータカタログリソースSelect 、データを保存するカタログとデータベースを入力します。

- すべてのデータベース権限を付与し、 Grantをクリックしてください。

AWS IAM Roles Anywhere認証方法
前提条件
プラグインを認証するには、AWS Certificate Manager サービスを有効にする必要があります。 AWS IAM Roles Anywhere 認証方法。
注:プライベート認証局、トラストアンカー、およびプロファイルは、AWS S3ソースバケットが存在するリージョンと同じリージョンに作成してください。
プライベート証明書のポリシーを作成する
この には、プライベート CA 証明書の作成に必要な権限 (トラスト アンカーとプロファイルの作成権限を含む) と IAM ロール Anywhere が含まれています。
- ポリシー ジェネレーターに移動し、ポリシー タイプとして IAM ポリシーSelect 、ポリシーを生成します。
- ポリシーの種類Select : IAM ポリシー
- 効果:許可する
- AWSサービス: AWSプライベート認証局
- アクション:
- 証明書認証局を作成する
- 認証局について説明します
- 証明書を取得する
- 認証局証明書を取得する
- GetCertificateAuthorityCsr
- 輸入証明書認証局証明書
- 証明書の発行
- 認証局一覧
- ARN: *
- Add Statementをクリックしてください。

- ポリシーの種類Select : IAM ポリシー
- ポリシーの種類Select : IAM ポリシー
- 効果:許可する
- AWSサービス:AWS Identity and Access Management(IAM)
- アクション:
- 役割ポリシーを添付する
- CreateAccessKey
- ロールの作成
- 役割を削除
- パスロール
- ARN: *
- Add Statementをクリックしてください。

- ポリシーの種類Select : IAM ポリシー
- ポリシーの種類Select : IAM ポリシー
- 効果:許可する
- AWSサービス: AWS証明書マネージャー
- アクション:
- 証明書の説明
- 輸出証明書
- 証明書を取得する
- 証明書一覧
- 証明書のタグ一覧
- 証明書のリクエスト
- ARN: *
- Add Statementをクリックしてください。

- ポリシーの種類Select : IAM ポリシー
- ポリシーの種類Select : IAM ポリシー
- 効果:許可する
- AWS サービス: AWS Identity and Access Management ロールをどこでも
- アクション:
- プロフィールの作成
- CreateTrustAnchor
- プロフィールを取得する
- GetTrustAnchor
- プロフィール一覧
- リストトラストアンカー
- ARN: *
- Add Statementをクリックしてください。

- Generate Policyをクリックしてください。

- ポリシーは、プライベート CA 証明書の作成に必要なポリシーを作成する次の手順で使用するため、コピーします。
- AWSコンソールに移動し、 All ServicesからIAM を選択します。左側のパネルのPoliciesをクリックし、次にCreate Policyをクリックします。

- ポリシーをJSONタブにコピーします。そしてNext:Tagsをクリックし、 Next:Review.をクリックします。

- 名前を入力して Save Changesをクリックし、 Netskope-ce-rolesAnywhere-ポリシーのように。

プライベート認証局を作成する
- AWSコンソールにログインします
- Certificate Managerを検索します。

- AWS Private CAをクリックしてください。
- Create a private CAをクリックしてください。

- Select General-purpose for Mode options.
- Select Root for CA type options.

- 組織名(O)を入力してください。

- Select RSA 2048 for Key algorithm options.


- Add tags if any (optional).
- Click the checkbox in the CA permissions options section.
- Click the checkbox in the Pricing section
- CA証明書を作成するには、 Createをクリックしてください。


- From Actions select Install CA Certificate.

- Confirm and Installをクリックしてください。


プライベート証明書のトラストアンカーを作成する
- IAM サービスを検索し、アクセス管理の下にあるRolesに移動します。「Roles Anywhere」までスクロールダウンして、 Manageを選択します。

- Create a Trust anchorをクリックしてください。

- Enter a Trust anchor name, like netskope-ce-trust-anchor.

- (前の手順で作成した) AWS Certificate Manager Private CAを認証局(CA)ソースとしてSelect 。
- 必要に応じてタグを追加してください。
- Create a trust anchorをクリックしてください。


- 作成されたトラストアンカーをクリックし、トラストアンカーのARNをコピーします。

プラグイン構成のポリシーを作成する
- IAM > Policiesに移動してCreate Policyをクリックしてください。

- Selectjsonを押し付け、このポリシーを貼り付けてからスクロールしてNextをクリックします。
ポリシー:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecurityLakePerms", "Effect": "Allow", "Action": [ "securitylake:CreateCustomLogSource", "securitylake:ListLogSources", "securitylake:GetDataLakeSources", "securitylake:ListDataLakes" ], "Resource": "*" }, { "Sid": "LakeFormationPerms", "Effect": "Allow", "Action": [ "lakeformation:RegisterResource", "lakeformation:GrantPermissions", "lakeformation:GetDataLakeSettings" ], "Resource": "*" }, { "Sid": "GluePerms", "Effect": "Allow", "Action": [ "glue:CreateTable", "glue:CreateDatabase", "glue:CreateCrawler", "glue:UpdateCrawler", "glue:UpdateDatabase", "glue:UpdateTable", "glue:StartCrawlerSchedule", "glue:GetDatabase", "glue:GetDatabases", "glue:GetTable", "glue:GetTables", "glue:GetTableVersion", "glue:GetTableVersions", "glue:GetPartition", "glue:GetPartitions" ], "Resource": "*" }, { "Sid": "AllowAssumeSecurityLakeProviderRole", "Effect": "Allow", "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity", "sts:TagSession" ], "Resource": [ "arn:aws:iam::[aws-account-id]:role/AmazonSecurityLake-Provider-*" ] }, { "Sid": "AllowPassAndReadRoleForCrawler", "Effect": "Allow", "Action": [ "iam:PassRole", "iam:GetRole", "iam:CreateRole", "iam:PutRolePolicy", "iam:ListRolePolicies", "iam:DeleteRole", "iam:DeleteRolePolicy" ], "Resource": "*" }, { "Sid": "AllowUpdateProviderRoleTrustPolicy", "Effect": "Allow", "Action": [ "iam:UpdateAssumeRolePolicy", "iam:GetRole" ], "Resource": "arn:aws:iam:::role/AmazonSecurityLake-Provider-*" }, { "Sid": "S3Perms", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:PutObject", "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketPolicy" ], "Resource": "*" } ] } 注記
ポリシー内のAWSアカウントIDを必ず置き換えてください。
- IAM-ポリシー-セキュリティ-レイクのように、ポリシー名とデスクリプションを入力します。

- Create Policyをクリックしてください。

プラグイン設定用の役割を作成する
- IAM > Roles に移動してCreate Roleをクリックしてください。

- 信頼済みエンティティタイプとしてCustom trust policy Select 、以下に示すカスタム信頼を貼り付け、 Nextをクリックします。

カスタム信頼ポリシー:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rolesanywhere.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession", "sts:SetSourceIdentity" ] } ] } - 以前作成したポリシーをこの役割に添付し、 Nextをクリックします。

- 役割名を入力し、下にスクロールしてCreate roleをクリックします。

- ロールが作成されたら、そのロールを開いてARNをコピーしてください。このARNは、 Amazon Security Lakeプラグインを設定する際のロールARNとして使用されます。

プロフィールを作成する
- Roles Anywhere > Create a Profileへ移動してください。

- プロファイル名を入力し、 「役割の作成」セクションで先ほど作成した役割を追加してください。

- Scroll Down, click the check box in the Custom role session name section, and then click Create a Profile.

- 作成したプロファイルを開き、プロファイルARNをコピーします。これは Amazon Security Lakeプラグインの設定時に発生します。

プライベート証明書をリクエストする
- AWS Certificate Manager > Request certificateへ移動してください。
- Request a private certificate Select 。

- Nextをクリックしてください。
- 前の手順で作成した認証局Select 。

- Provide a domain name in the Fully qualified domain name field (like netskope-ce.com).
- Select RSA 2048 as the Key algorithm.

- 必要に応じてタグを追加してください。
- 証明書の更新権限を承認してください。
- Requestをクリックしてください。

- AWS Certificate Manager のナビゲーション パネルでList certificatesに移動します。
- 以前に作成した証明書Select 。

- Exportをクリックしてください。

- パスフレーズを入力してください。AWS Security Lakeプラグインの設定に必要となるため、パスフレーズをメモしておいてください。 AWS IAM Roles Anywhere認証方式。
- Generate PEM Encodingをクリックしてください。

- Certificates はすべてダウンロードしてください。二度と表示されなくなります。新しい証明書の場合は、再度エクスポートする必要があります。

詳細については、 AWS IAM Role Anywhereを参照してください。
クローラーロールARNを作成する
- IAM > Policiesでポリシーを作成し、以下の権限を使用します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GlueCrawlerListBucket", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::aws-security-data-lake-us-east-1-*" }, { "Sid": "GlueCrawlerReadObjects", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectTagging", "s3:ListMultipartUploadParts" ], "Resource": "arn:aws:s3:::aws-security-data-lake-us-east-1-*/*" } ] }
- ポリシー名を入力して、 Createをクリックしてください。

- Rolesに移動してCreate a Roleをクリックしてください。Trusted Entity Type > Select AWS Service
Service > Select Glueをクリックしてください。
- AWSGlueServiceRoleを、このロール用に以前作成したポリシーにアタッチします。


- 役割名を入力して、 Create roleをクリックしてください。


- ロールARNをコピーしてください。それは クローラーロールARNになります。

湖の形成における権限の提供
- アクセスタイプをData lake administratorに設定し、作成したロールを選択してConfirmをクリックします。インスタンスロールだけでなく、クローラーロールも含まれていることを確認してください。

- Permissions > Data permissionsに移動してGrantをクリックしてください。

- プリンシパルタイプとしてPrincipals Select 、役割を選択してください。 インスタンスロールだけでなく、クローラーロールも必ず含めてください。

注記
Athena のデータを照会する場合は、クローラー ロールとインスタンス ロールに加えて、IAM ユーザーとロールの下にユーザーの役割も追加してください。
- Named Data Catalog個のリソースSelect 、データを保存するカタログとデータベースを入力します。

- 必要なデータベース権限をすべて付与し、 Grantをクリックしてください。

プラグインを「プロバイダーロールの信頼ポリシーを自動更新しない」に設定した後の手順
- AWSインスタンス上で、アラート、イベント、WebTxの種類ごとにカスタムデータソースを手動で作成します。OCSFクラスマッピングのデフォルトマッピングファイルを使用して、アラート/イベントをOCSFクラスにマッピングします。
- カスタムデータソースを作成した後、各プロバイダーロールの信頼ポリシーを手動で更新する必要があります。以下は、 clientstatusイベントタイプの例です。

信頼ポリシー:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::[aws-account-id]:root" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity", "sts:TagSession" ] } ] } - 手動で作成したデータソースを使用するプラグインを設定します。
Amazon Security Lakeプラグインの設定
1.Cloud Exchange で、 Settings > Plugin Storeに移動します。

2. Amazon Security Lake v2.0.0 (CLS)プラグインを検索して選択します。

3. 設定名(例: Amazon Security Lake )を入力し、要件に応じてマッピングファイルを選択します。
注記
デフォルトのマッピングでは、raw_data フィールドは AWS (Athena) 上で null として反映されます。raw_dataを送信するには、ユーザーはマッピングを更新し、各アラート/イベント/webtxのraw_dataフィールドのデフォルト値をraw_dataに設定する必要があります。例えば:

このプラグインはOCSF形式のみをサポートしています。

4. Nextをクリックし、設定パラメータを適宜入力します。
認証方法
AWS を使用してデプロイする
以下のパラメータを入力してください。
- AWS S3 Bucket Region Name: AWS S3バケットを取得するリージョン名。リージョン名が、プロファイルARNおよびトラストアンカーARNのリージョン名と一致していることを確認してください。
- AWS Account ID: AWS Security Lakeカスタムソースバケットが作成されるAWSアカウントID。
- Parquet File Name Prefix: AWS Security LakeカスタムソースバケットのParquetファイル名プレフィックス。これは任意項目です。
- AWS Crawler Role ARN: AWS Glue クローラーがデータにアクセスするために使用する IAM ロールの Amazon リソースネーム (ARN)。 このロールには、Security Lake、S3バケット、Glueデータカタログ、およびLake Formationへのアクセス権限が必要です。 Glue Crawlerロールの設定手順の詳細については、ガイドを参照してください。
- Provider External ID: 外部ID ログプロバイダーとの信頼関係を確立するため(「混乱した代理人」攻撃に対するセキュリティのベストプラクティスのため)。
- Provider Principal: S3バケットにログを書き込むエンティティのAWSプリンシパル(通常はIAMロールARNまたはアカウントID)。
- Name of Custom Data Source for alert/event/webtx: この名前のカスタムソースバケットが、特定のアラート/イベントタイプまたはWebtx用にAWS Security Lakeに作成されます。また、S3バケット内のフォルダ名は、これらの値に基づいて決定されます。




AWS IAM Roles Anywhereを使用してデプロイする





上にスクロールしてSaveをクリックしてください。
Amazon Security Lake のログシッパービジネスルールを設定する
- Log ShipperでBusiness Rulesをクリックします。
- Create New Ruleをクリックしてください。
- ルール名を入力し、要件に応じてフィルターを設定してください。フォルダ名があれば入力してください。

- Saveをクリックしてください。

Amazon Security Lake の Log Shipper ログ配信の設定
- Log Shipper > Log Deliveryに移動してAdd Log Delivery Configurationをクリックしてください。

- ソース構成、宛先構成、およびビジネスルールSelect 。

- Saveをクリックしてください。
注/p>
Amazon Security Lakeの場合、外部レシーバーに送信されたログ/Webtxの合計数は、取り込まれたデータの数を表すものではありません。このカウントは、Cloud Exchange 上のファイルに取得および保存されたログ/アラート/イベント/Webtx の数を表しており、後ほど AWS の Security Lake S3 バケットにアップロードされます。取得したアラート/イベント/WebTXのサイズが265MB未満で、かつ5分以内に同じ種類のアラート/イベントが再度取得されない場合、データは宛先に取り込まれません。
Amazon Security Lakeプラグインを検証する
プラグインのワークフローを検証するには、Netskope Cloud ExchangeとAWSから確認できます。
プルを検証する
Settings > Loggingへ移動してください。必要に応じてフィルターを適用してください。以下は、イベント、アラート、Webtxログのログを取得する例です。




Cloud Exchangeからの取り込みを検証する
- Settings > Loggingへ移動してください。必要に応じてフィルターを適用してください。例: プラグインに関連するログを確認するには、 「[CLS Amazon Security Lake]」のようなメッセージを表示します。
- 取り込みが成功したことを確認するには、ログを検索してください:
CLS Amazon Security Lake [CLS Amazon Security Lake]: [<alert/event name>] S3 に正常にアップロードされました。WebTx の場合、<alert/event name>は v2 として使用されることに注意してください。










注記
- 取得したアラート/イベント/WebTXのサイズが265MB未満で、かつ5分以内に同じ種類のアラート/イベントが再度取得されない場合、データは宛先に取り込まれません。
- 下記の例のようなログは、データがSecurity LakeのS3バケットに取り込まれたことを意味するものではありません。
| CLS Amazon Security Lake [CLS ASL] [alerts] [ctep]: AWS Security Lake アップロードファイルに 1 つのログが正常に追加されました。ファイルサイズが256MBに達するか、アップロードに5分以上かかるかのいずれかの条件が満たされると、ファイルはAWS Security Lakeバケットにアップロードされます。 |
| 1件の[alerts][ctep]ログを構成CLS ASLに正常に取り込みました。所要時間:2秒。 |
AWSで検証する
S3 Bucket ➔ < セキュリティレイクバケット名> ➔ ext ➔ alert/event/webtx のカスタムデータソースに移動します。
これは、カスタムデータソース「ns_incident」の送信先の例です。

注記
- 日付に応じて異なるフォルダが作成されます(例:各アラート/イベント/webtxタイプのフォルダの下にeventDay)を配置します。
- プラグインを「Parquetファイル名プレフィックス」で設定している場合、各ファイルにそのプレフィックスが追加されます。
- 取得したアラート/イベント/WebTXのサイズが265MB未満で、かつ5分以内に同じ種類のアラート/イベントが再度取得されない場合、データは宛先に取り込まれません。
アテナのデータを検証する
注記
ユーザーがAthena上のデータを照会するために必要な権限を持っていることを確認してください。ユーザーのロールに権限を付与するには、AWS Lake Formation > データ権限 > 付与 から操作を実行できます。Athena でデータをクエリするための権限に関する詳細については、AWS サポート チームにお問い合わせください。
- Athenaでデータを検索する前に、すべてのクローラーが正常に実行されたことを確認してください。ユーザーは、AWS 上のAWS Glue > Crawlersページから任意のクローラーを実行できます。必要なクローラーSelect 、「実行」ボタンをクリックして実行します。 正しく実行されると、ユーザーはAthena上で取り込まれたデータを検索できるようになります。ユーザーは、アラート/イベント/WebTXごとにクローラーを手動で編集することにより、これらのクローラーを実行する自動スケジュールを設定することもできます。

- 取り込んだデータを検索するには、 Amazon Athena > Query editorへ行ってください。

- アラート、イベント、またはウェブトランザクションに固有のテーブルを表示するには、3つの点をクリックして「プレビューテーブル」を選択します。ここでは、要件に応じてクエリを設定できます。

- これは、取り込みアプリケーションイベントのサンプルです。

スクロールして、サポートされているすべてのフィールドを表示してください。
取り込まれたデータのサンプルをいくつかご紹介します。
For Events 





For Alerts










注記
CTEPアラートテーブルには、CTEP、C2、およびIPSのアラートが格納されます。


For WebTx

AWS Security Lakeプラグインのトラブルシューティング
プラグインの設定中にエラーが発生した場合。理由は以下のとおりです。
- 無効なクレデンシャル
- 提供されたAWSアカウントでは、Security Lakeが有効になっていません。
What to do:
- 提供されたクレデンシャルが有効かどうかを確認してください。 AWSの設定に関するセクションに記載されている手順を参照してください。
- 提供されたAWSアカウントでSecurity Lakeが有効になっていることを確認してください。
設定後10~15分経っても宛先バケットにParquetファイルが表示されない場合は、考えられる理由は以下の通りです。
- ソースプラグインからデータが取得されていません。
- プルされたデータは 256 MB 未満であり、新しい同じタイプのデータは再度プルされません。
What to do:
- ログが取得されているかどうかを確認するには、ソースプラグインのログページからログを確認してください。
- 取得したアラート/イベント/WebTXのサイズが265MB未満で、かつ5分以内に同じ種類のアラート/イベントが再度取得されない場合、データは宛先に取り込まれないことに注意してください。
AWS (Security Lake S3バケット) 上のデータを取り込むことができません。原因としては、以下のいずれかの理由が考えられます。
- 権限が不足しています
- AWS IAM Roles Anywhere認証の場合、「プロバイダーロールの信頼の自動更新」は 「いいえ」に設定されており、ユーザーはプロバイダーロールの信頼を更新していません。 プロバイダーロールの信頼を更新していません。
What to do:
- AWS の設定セクションに記載されている適切な手順を必ず実行してください。
- 使う 'プラグインが自動更新プロバイダー ロールの信頼ポリシーを No として構成された後のステップ。 ' 必要なロールを更新するためのセクション。
指定されたバケット名のS3バケット内の取り込まれたファイルを検証できませんでした
この問題は、プラグインの古いバージョンが原因で発生する可能性があります。 S3バケット名をプラグイン構成名として使用し、すべての種類のデータが単一の場所に取り込まれていました。
What to do:
古いプラグインからアップグレードするのではなく、新しいCLS Amazon Security Lake v2.0.0を設定してください。バージョン
Athenaでデータを照会できない場合、以下の理由が考えられます。
- Security LakeのS3バケットにはデータは取り込まれません。
- ユーザーにはSecurity Lakeデータベース上のデータを照会する権限がありません。
What to do:
- Security LakeのS3バケットにデータが正しく取り込まれていることを確認してください。AWSからの検証に関するセクションを参照してください。
- ユーザーがSecurity Lakeデータベースにアクセスするために必要な権限を持っていることを確認してください。ユーザーの役割に対する権限は、 AWS Lake Formation > Data Permissions ページから付与できます。Athena のデータクエリに関する権限の詳細については、AWS サポートチームにお問い合わせください。
ParquetファイルはS3バケットにアップロードされていますが、Athena上でデータが表示されないか、一部の列しか表示されません。理由は以下のとおりです。
- その特定のアラート/イベント/Webトランザクションのクローラーは実行されません。
- 権限が不足しています
What to do:
- ユーザーは、AWS Glue > クローラーページから手動でクローラーを実行するか、必要に応じてクローラーの出力とスケジュールを設定する必要があります。
注記
各アラート/イベントの種類とWebtxには、それぞれ個別のクローラーが割り当てられます。
- 特定のクローラー実行の CloudTrail ログを確認し、以下の画像のようなエラーがあるかどうかを確認します。プラグインを構成するための、生成されたクレデンシャルのアクセス許可を確認するか、AWS サポート チームに連絡してください。

既知の行動
- 取得したアラート/イベント/WebTXのサイズが265MB未満で、かつ5分以内に同じ種類のアラート/イベントが再度取得されない場合、データは宛先に取り込まれません。
- 取得されたデータのファイルは、宛先に取り込まれなかった場合でも削除されません。例:ユーザーが CLS Amazon Security Lake v2.0.0 プラグインを設定し、最初のプル時に各タイプのアラート/イベントと Webtx を 1 MB ずつプルした後、新しいデータがプルされないか、プラグインの設定が削除された場合、最初のプル時に作成されたファイルは削除されません。
- Security LakeのS3バケットに、そのタイプのアラート/イベント/WebTXファイルの最初のファイルをアップロードすると、そのタイプのアラート/イベント/WebTXファイルに対応するフォルダが作成されます。
- プラグインによって作成されたすべてのリソース(つまりAWS 上のカスタムデータソース、クローラー、データレイク構成下のテーブルは、プラグイン構成を削除しても削除されません。
- 特定のアラート/イベント/WebTXのカスタムデータソースが削除された場合でも、Security Lake S3バケットにフォルダが存在する限り、プラグインはデータを宛先フォルダにアップロードし続けます。宛先フォルダも削除された場合は、ユーザーはエラーに遭遇します。 エラーログの例:
CLS Amazon Security Lake [CLS ASL19thJana] [Malware]: S3 upload failed with unexpected error: Failed to upload /opt/netskope/plugins/security_lake_staging/temp_15497_1768910939013.parquet to aws-security-data-lake-us-east-1-drr9keiinq7es73ywbjszqfsmbchwc/ext/a_delete/region=us-east-1/accountId=472514710809/eventDay=20260120/cd51579e-f5f8-11f0-ad9f-de8f29b50429--20260120120859.parquet: An error occurred (InvalidAccessKeyId) when calling the PutObject operation: The AWS Access Key Id you provided does not exist in our records.. Not retrying.
- デフォルトマッピングには、デフォルト値にマッピングされるフィールドがいくつかあります。
- ログ配信ページに表示される「外部受信者に送信されたログ/Webtxの合計数」は、取り込まれたデータの数を表すものではありません。このカウントは、Cloud Exchange 上のファイルに取得および保存されたログ/アラート/イベント/Webtx の数を表しており、後ほど AWS の Security Lake S3 バケットにアップロードされます。
- 取得されたアラート/イベント/WebTXのスキップされた件数は、ログから確認できます。ログの例:
CLS Amazon Security Lake [CLS ASL]: [alerts][Compromised Credential] Processed 2 records: 1 succeeded, 0 failed, 1 empty records skipped.
- OCSFスキーマでは、例えば activity_name (String) と activity_id (定義済みの列挙型からの整数)、status と status_id など、兄弟ペアのフィールドが定義されています。デフォルトマッピングでは、そのようなすべてのフィールドに対して、Integer 列挙値は 99 にマッピングされます。これにより、ペアの文字列側には、Netskopeから受信した任意のフィールドを含めることができます。
例: クレデンシャル侵害アラートでは、severity_id はデフォルト値 99 にマップされます。 Netskopeから実際に受け取った値を取得するには、severity_idではなく、そのString型の兄弟要素であるseverityを参照することをお勧めします。 - 下記の例のようなログは、データがSecurity LakeのS3バケットに取り込まれたことを意味するものではありません。
| CLS Amazon Security Lake [CLS ASL] [alerts] [ctep]: AWS Security Lake アップロードファイルに 1 つのログが正常に追加されました。ファイルサイズが256MBに達するか、アップロードに5分以上かかるかのいずれかの条件が満たされると、ファイルはAWS Security Lakeバケットにアップロードされます。 |
| 1件の[alerts][ctep]ログを構成CLS ASLに正常に取り込みました。所要時間:2秒。 |
Security Lake S3バケットへのデータ取り込みを確認するには、「 Netskope Cloud Exchangeからの取り込みを検証する」および「 AWSからの検証」のセクションを参照してください。
- アップロードされたparquetファイルの検証時に使う official ocsf validator エンドポイントの検証時にいくつかのエラーや警告が見られるかもしれませんが、Athenaでのデータクエリには影響しないはずです。 以下にいくつかの例を示します。
{
"error": "attribute_enum_value_unknown",
"message": "Unknown enum value at \"proxy_http_request.http_method\"; value \"\" is not defined for enum \"http_method\".",
"value": "",
"attribute": "http_method",
"attribute_path": "proxy_http_request.http_method"
}
{
"message": "Attribute \"evidences[0].device.os_machine_uuid\" value does not match regex of type \"uuid_t\".",
"type": "uuid_t",
"value": "f5d060933f64c16cc6661ad5",
"warning": "attribute_value_regex_not_matched",
"attribute": "os_machine_uuid",
"regex": "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}",
"attribute_path": "evidences[0].device.os_machine_uuid"
},
{
"message": "Attribute \"device.mac\" value does not match regex of type \"mac_t\".",
"type": "mac_t",
"value": "",
"warning": "attribute_value_regex_not_matched",
"attribute": "mac",
"regex": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$",
"attribute_path": "device.mac"
}
{
"message": "Attribute \"evidences[2].email.to[0]\" value does not match regex of type \"email_t\".",
"type": "email_t",
"value": "[\"amark@default.com\", \"johnak@default.com\", \"test_user@netstate.com\"]",
"warning": "attribute_value_regex_not_matched",
"attribute": "to",
"regex": "^[a-zA-Z0-9!#$%&'*+-/=?^_`{|}~.]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$",
"attribute_path": "evidences[2].email.to[0]"
}
- タイプ C2 および IPS のアラートは、AWS プラットフォームの CTEP アラートのテーブルの下に取り込まれます。

- 特定のテーブルのクローラーが実行されていない場合、Athenaテーブルには一部の列しか表示されません。特定のテーブルに対してクローラーを手動で実行するか、特定のクローラーが特定の時間に自動的に実行されるようにスケジュールを設定します。


