以下のトピックでは、パブリッククラウド向けにDLPスキャンおよび/または脅威対策(マルウェアスキャン)機能を設定する際によくある質問と一般的なシナリオについて説明します。
KMSキーで暗号化されたS3バケットをスキャンしています
KMSキーで暗号化されたS3バケットのストレージスキャンを有効にするには、Netskopeに必要な権限をAWS環境に付与するように設定する必要があります。
Netskopeに必要な権限を付与するには、NetskopeのCFTによって作成されたIAMロールを各KMSキーポリシーにコピーし、指定されたSid、アクション、および条件を指定します。
以下の詳細な手順に従ってください。
- IaaSのために設定しているAWSアカウントの管理コンソールにログインし、Services > IAM > RolesにNetskopeしてください。
- 「役割」の下でNetskope_Roleを検索し、この役割のARNをコピーします。
- Services > Key Management Serviceへ移動してください。
- Customer managed keysで、S3 バケットを暗号化するために使用する各 KMS キーに移動し、キー ポリシーを編集します。
- 各KMSキーのキーポリシーで Editをクリックします。
- ポリシーのStatementセクションを編集して、以下を含めるようにしてください。
{ "Sid": "Enable Netskope to use KMS via S3", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<customer_account_id>:role/Netskope_Role" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "s3.us-west-1.amazonaws.com" } } }- Sid をEnable Netskope to use KMS via S3に編集してください。
- AWS の下にNetskope_Roleのロール ARN を貼り付けてください。
- アクションをkms:Decryptに編集します。
- 上記のコードスニペットに示されている条件を追加してください。
条件キーにより、NetskopeはKMSキーに対して直接的な操作を行わず、S3マネージドサービスを介してのみ操作を行うことが保証されます。
注記
KMSはキーと同じリージョン内のバケットしか暗号化できないため、kms:ViaServiceがKMSキーのリージョンと一致していることを確認してください。
- 主要なポリシー変更は AWS-KMSに保存してください。
GCPログシンクから送信されるバケットおよびオブジェクトイベントを制限する
GCP の DLP/マルウェア スキャンが組織/フォルダ/プロジェクト レベルで設定されている場合、アカウント内のすべてのフォルダ/プロジェクトに存在するオブジェクトから大量の通知が送信される可能性があります。場合によっては、この動作は望ましくない場合があります。顧客はごく少数のバケットからオブジェクトをスキャンすることのみに関心がある場合があり、すべてのオブジェクトに対して通知を送信すると、顧客にとって不要なコストが発生する可能性があるためです。
解決
この解決策は、インスタンス設定時に作成されたログシンクを編集し、包含フィルタを強化して、オブジェクトレベルのイベントを特定のバケットのみに送信できるようにすることです。
Pre-requisites
DLP/マルウェア スキャン for GCP インスタンスのログ シンクが作成された GCP 組織/フォルダー/プロジェクトを特定してアクセスします。
手順
-
検索バーにLog routerと入力し、表示されるオプションから選択してください。下図を参照。

-
ログ シンクのリストから DLP/マルウェア スキャン for GCP 用に作成されたログ シンクSelect 。 以下のスクリーンショットでは、ns_sink と呼ばれています。

-
3点メニューからEdit sinkを選択してEdit logs routing sinkページを開きます。

-
Choose logs to include in sinkセクションまでスクロールしてください。

-
包含フィルターに以下の項目が含まれていることを確認してください。
( resource.type=folder AND ( protoPayload.methodName=CreateFolder OR protoPayload.methodName=DeleteFolder ) ) OR ( resource.type=project AND ( protoPayload.methodName=CreateProject OR protoPayload.methodName=DeleteProject ) ) OR ( resource.type=gcs_bucket AND ( protoPayload.methodName=storage.objects.delete OR protoPayload.methodName=storage.objects.create OR protoPayload.methodName=storage.buckets.create OR protoPayload.methodName=storage.buckets.delete ) ) -
包含フィルターを以下のように置き換えてください。
( resource.type=folder AND ( protoPayload.methodName=CreateFolder OR protoPayload.methodName=DeleteFolder ) ) OR ( resource.type=project AND ( protoPayload.methodName=CreateProject OR protoPayload.methodName=DeleteProject ) ) OR ( resource.type=gcs_bucket AND ( ( protoPayload.methodName=storage.buckets.create OR protoPayload.methodName=storage.buckets.delete ) OR ( ( protoPayload.methodName=storage.objects.delete OR protoPayload.methodName=storage.objects.create ) AND ( resource.labels.bucket_name="bucket-1" OR resource.labels.bucket_name="bucket-2" ) ) ) )
最後の条件に特に注意してください。
resource.labels.bucket_name="bucket-1" OR resource.labels.bucket_name="bucket-2"
お客様は、プレースホルダー値「 bucket-1 」と「 bucket-2 」を、お客様がポリシーに追加したバケットの値に置き換える必要があります。バケットを追加するには、追加の「 OR resource.labels.bucket_name=”bucket-name ”」を追加する必要があります。ここでいう「bucket-name」はGCPバケットの名前です。
Explanation
強化された包含フィルターは、次の2つのことを実現します。
-
これにより、新しいバケットが作成された場合、または既存のバケットが削除された場合に、Netskope がポリシー作成ページにそれらのバケットの名前を追加/削除できるようになります。これにより、顧客は新しく作成されたバケットに対してポリシーを作成し、GCPに存在しなくなったバケットを表示しないようにすることができます。また、フォルダやプロジェクトが作成または削除された場合、それぞれのイベントがNetskopeにも送信されます。
-
Netskopeに送信されるオブジェクトレベルの変更(作成/削除)は、フィルタで指定されたバケットのみに限定されます。これにより、ログシンクが関係のないバケットから余分な通知を送信しないことが保証されます。
ログシンクはフィルタを適用し、フィルタリングされたメッセージを、サブスクリプションが関連付けられているGCP Pub/Subトピックに送信します。このサブスクリプション
デフォルト
保持期間は7日間です。シンクフィルターが更新された後、サブスクリプションには、顧客がスキャンを希望しないバケットや、新しいフィルターに含まれるバケットからの古いイベントが含まれる場合があります。Netskopeは、これらの古いイベントのバケットのスキャンも引き続き試みます。これを防ぐため、顧客は購読内のメッセージをパージして、古いイベントをすべて削除することができます。

