このドキュメントでは、 Netskope Cloud Exchangeプラットフォームで AWS Inspector v1.0.0 プラグインを設定する方法について説明します。このプラグインは、AWS Inspector > Inventory > Findings for EC2 インスタンス リソースからワークロードを取得するために使用します。 このプラグインは、AWS Inspector での抑制ルールの作成アクションもサポートしています。
前提条件
- Netskopeテナント(または、例えば本番環境と開発/テスト環境など、複数のテナント)。
- Netskope Cloud Exchangeテナントには、テナントプラグインとリスクエクスチェンジプラグインが既に設定済みです。
- AWS Inspectorへの接続。
AWS Inspectorプラグインのサポート
このプラグインは AWS Inspector > Inventory > Findings から EC2 インスタンス リソースのワークロードを取得します。 このプラグインは、AWS Inspector での抑制ルールの作成アクションもサポートしています。
| 取得したデータの種類 | Actions |
|---|---|
| Workloads | 抑制ルール を作成 アクションなし |
マッピング
マッピングは 取得したワークロードとその詳細を表示するためのものです。 プラグイン設定時にマッピングされたフィールドは、データ取得後にレコードページに表示されます。以下は、プラグインの設定時に推奨されるマッピングです。 プラグインの設定時に使用します。
デバイス(ワークロード)のマッピングのプル
| Netskope CREフィールド | プラグインフィールド | 想定されるデータ型 | CRE総合戦略 | サンプル値 |
|---|---|---|---|---|
| IDを探す | findingArn | String | Unique | arn:aws:inspector2:us-east-1:123456789012:finding/abc123def456 |
| プライベートIP | resources[x].details.awsEc2Instance.ipV4Addresses[x](プライベート) | String | Unique | 10.0.1.45 |
| パブリックIP | resources[x].details.awsEc2Instance.ipV4Addresses[x](公共) | String | Overwrite | 52.23.145.210 |
| Region | リソース[x].領域 | String | Overwrite | us-east-1 |
| リソース名 | resources[x].tags[“Name”] | String | Overwrite | prod-web-server-01 |
| リソースUID | リソース[x].id | String | Overwrite | i-0abcd1234ef567890 |
| Resource Tags | resources[x].tags | List | Overwrite | [「環境:prod」、「チーム:プラットフォーム」] |
| サブネットID | resources[x].details.awsEc2Instance.subnetId | String | Overwrite | subnet-0abc12345def67890 |
| VPC ID | resources[x].details.awsEc2Instance.vpcId | String | Overwrite | vpc-0a1b2c3d4e5f67890 |
| 重大度 | 重大度 | String | Overwrite | HIGH |
| タイトルを見つける | title | String | Overwrite | CVE-2023-44487 – nghttp2 |
| デスクリプションを探す | description | String | Overwrite | HTTP/2プロトコルに欠陥が発見されました… |
| 初めて目撃された | firstObservedAt | Datetime | Overwrite | 2024年1月15日 08:30:00(UTC) |
| 最後に目撃された日時 | lastObservedAt | Datetime | Overwrite | 2024年3月10日 14:22:00(UTC) |
| 検査官スコア | inspectorScore | Float | Overwrite | 8.5 |
| エクスプロイトが利用可能です | exploitAvailable | String | Overwrite | YES |
| 検出タイプ | タイプ | String | Overwrite | PACKAGE_VULNERABILITY |
| 脆弱性ID | packageVulnerabilityDetails.vulnerabilityId | String | Overwrite | CVE-2023-44487 |
| ポート | networkReachabilityDetails.openPortRange.begin | Integer | Overwrite | 443 |
| プロトコル | networkReachabilityDetails.protocol | String | Overwrite | TCP |
| リスクスコア | findingDetails[x].riskScore (via batch_get_finding_details) | Integer | Overwrite | 85 |
| EPSSスコア | findingDetails[x].epssScore (batch_get_finding_details経由) | Float | Overwrite | 0.04321 |
権限
AWS Inspectorを使用してワークロード情報を取得するためのIAMユーザーへの権限付与。
- inspector2:ListFindings
- インスペクター2:リストカバレッジ
- inspector2:BatchGetFindingDetails
- inspector2:CreateFilter
- インスペクター2:リストフィルター
APIの詳細
使うAPI一覧
このプラグイン AWS Inspector からリソースタイプ EC2 インスタンスの検出結果を取得するための Python ライブラリ。
ライブラリ:AWS SDK for Python(Boto3)
使用方法:AWS SDK for Python(Boto3)を使用して、Amazon InspectorなどのAWSサービスを作成、設定、管理します。SDKは、オブジェクト指向APIと、AWSサービスへの低レベルアクセス機能を提供します。
Creating Inspector Client:
inspector_client = boto3.client(
"inspector2",
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["region_name"].strip(),
config=Config(
proxies=self.proxy,
user_agent=self.useragent,
retries={
"total_max_attempts": 3,
"mode": standard,
},
),
)
Getting Inspector EC2 findings:
Parameters
{
"filterCriteria": {
"resourceType": [
{"comparison": "EQUALS", "value": "AWS_EC2_INSTANCE"}
],
"updatedAt": [
{
"startInclusive": start_time,
"endInclusive": end_time,
}
],
"findingStatus": [
{"comparison": "EQUALS", "value": "ACTIVE"}
],
},
"sortCriteria": {
"field": "LAST_OBSERVED_AT",
"sortOrder": "ASC",
},
"maxResults": BATCH_SIZE,
# "nextToken": next_token # included on subsequent pages
}
response = inspector_client.list_findings(**params)
Parameters
{
"findingArns": chunk # list of up to 10 Inspector finding ARNs
}
response = inspector_client.batch_get_finding_details(findingArns=chunk)
Checking existing Suppression rules:
Parameters
{
"action": "SUPPRESS",
"maxResults": LIST_FILTERS_MAX_RESULTS,
# "nextToken": next_token # included on subsequent pages
}
response = inspector_client.list_filters(**kwargs)
Performing to create Suppression rule action:
Parameters
{
"name": rule_name,
"action": "SUPPRESS",
"filterCriteria": criteria, # built from suppression params, e.g.:
# {
# "findingArn": [{"comparison": "EQUALS", "value": "..."}],
# "resourceTags": [{"comparison": "EQUALS", "key": "k", "value": "v"}],
# }
"description": "Created by Netskope Cloud Exchange on <ISO-date>.",
# "reason": reason # optional, user-provided
}
response = inspector_client.create_filter(**kwargs)
arn = response.get("arn", "")
パフォーマンスマトリックス
以下は、下記の仕様を持つ大規模CEスタック上で50万件のワークロードを実行して実施したパフォーマンスマトリックスです。
| デスクリプション | 仕様 |
|---|---|
| スタックの詳細 | サイズ:大 RAM:32 GB CPU:16コア |
| AWS Inspectorから取得および更新されたワークロード | 約22分 |
ユーザーエージェント
APN/1.1 (ahq9d89xj9gspapczzdb59goq)
ワークフロー
- AWS Inspector 認証方法用のクレデンシャルを生成します。
- AWS Inspectorプラグインを設定します。
- ビジネスルールを設定します。
- アクションを設定します。
- プラグインを検証してください。
動画を見る
再生ボタンをクリックして動画をご覧ください。
Obtaining configuration parameter
AWS Inspector ポリシーを作成する
-
検索ボックスに「IAM」と入力して検索し、左側のパネルから「ポリシー」をクリックします。

-
「ポリシーの作成」をクリックします。

-
JSONタブをクリックし、下記のポリシーを入力してください。「次へ: タグ」をクリックし、「次へ: レビュー」をクリックします。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "inspector2:ListFindings", "inspector2:ListCoverage", "inspector2:BatchGetFindingDetails", "inspector2:CreateFilter", "inspector2:ListFilters" ], "Resource": "*" } ] } -
名前を入力し、「ポリシーの作成」をクリックしてください。

IAMロール認証(あらゆる場所で認証)
前提条件
プラグインを認証するには、 AWS Certificate Managerサービスを有効にする必要があります。 AWS IAM Roles Anywhere認証方法。
ポリシーを作成する
この には、プライベート CA 証明書の作成に必要な権限 (トラスト アンカーとプロファイルの作成権限を含む) と IAM ロール Anywhere が含まれています。
- ポリシー ジェネレーターに移動し、ポリシー タイプとして IAM ポリシーを選択し、ステートメントの追加の詳細を入力して、ポリシーを生成します。
- ポリシーの種類Select : IAM ポリシー
- 効果:許可する
- AWSサービス: AWSプライベート認証局
- アクション:
- 証明書認証局を作成する
- 認証局について説明します
- 証明書を取得する
- 認証局証明書を取得する
- GetCertificateAuthorityCsr
- 輸入証明書認証局証明書
- 証明書の発行
- 認証局一覧
- ARN: *
- 「ステートメントの追加」をクリックしてください。

- 上にスクロールして、別の文を追加してください。
- ポリシーの種類Select : IAM ポリシー
- 効果:許可する
- AWSサービス:AWS Identity and Access Management(IAM)
- アクション:
- 役割ポリシーを添付する
- CreateAccessKey
- ロールの作成
- 役割を削除
- パスロール
- ARN: *
- 「ステートメントの追加」をクリックしてください。

- 上にスクロールして、別の文を追加してください。
- ポリシーの種類Select : IAM ポリシー
- 効果:許可する
- AWSサービス: AWS証明書マネージャー
- アクション:
- 証明書の説明
- 輸出証明書
- 証明書を取得する
- 証明書一覧
- 証明書のタグ一覧
- 証明書のリクエスト
- ARN: *
- 「ステートメントの追加」をクリックしてください。

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

- 「ポリシーの生成」をクリックしてください。

- ポリシーは、プライベート CA 証明書の作成に必要なポリシーを作成する次の手順で使用するため、コピーします。
- AWSコンソールにアクセスし、 「すべてのサービス」から「IAM」を選択します。左側のパネルで「ポリシー」をクリックし、 「ポリシーの作成」をクリックします。

- ポリシーをJSONタブにコピーし、「 Next:Tags」をクリックし、その後クリックします 次回:レビュー
.

- 名前( Netskope -ce-rolesAnywhere-ポリシーなど)を入力し、 「変更を保存」をクリックします。

プライベート認証局を作成する
- AWSコンソールにログインしてください。
- 証明書マネージャーを検索します。

- AWSプライベートCAをクリックします。
- 「プライベートCAを作成」をクリックしてください。

- モードオプションで「汎用」を選択してください。
- CAタイプのオプションでは、 「ルート」を選択してください。

- ここで組織 (O)が登場します。

- キーアルゴリズムのオプションで、 RSA 2048を選択してください。


- タグを追加 該当する場合(任意)。
- CA権限オプションセクションのチェックボックスをオンにしてください。
- 価格設定セクションのチェックボックスをオンにしてください。
- CA証明書を作成するには、 「作成」をクリックしてください。


- アクションから、 「CA証明書のインストール」を選択してください。

- 「確認してインストール」をクリックしてください。


信頼の基盤を築く
- IAMサービスを検索し、アクセス管理の下にある「ロール」に移動し、「ロールAnywhere」までスクロールダウンして「管理」を選択します。

- 「信頼関係を作成」アンカーをクリックしてください。

- 信頼アンカー名を入力してください。

- 認証局 (CA) ソースとして、 AWS Certificate Manager プライベート CA (前の手順で作成済み) Select 。 前の手順でAWSプライベート認証局で作成した証明書Select 。
- 必要に応じてタグを追加してください。
- 「信頼アンカーを作成」をクリックしてください。


- 作成されたトラストアンカーをクリックし、トラストアンカーARNをコピーします。これは、認証方法「AWS IAM Roles Anywhere」のプラグイン設定の「Trust Anchor ARN」パラメータで必要になります。

IAMロールを作成する
- AWSコンソールでIAM servicesに移動してください。
- アクセス管理サブメニューの「役割」をクリックします。
- 「役割の作成」をクリックします。

- 「Trusted entity」タイプで「 Custom Trust policy」を選択してください。

- カスタム信頼ポリシーをこの信頼ポリシーに置き換えてください。このポリシーには、ロールどこでもサービスを使用するためのアクセス許可が含まれています。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rolesanywhere.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:TagSession", "sts:SetSourceIdentity" ] } ] }
- 「次へ」をクリックしてください。
- [アクセス許可ポリシー] で、 「AWS Security Hub ポリシーの作成」で作成したポリシーを選択します。

- 「次へ」をクリックしてください。
- ロール名(例: Netskope -ce-aws-verified-access-role )とロールのデスクトップリプションを指定してください。

- 「役割の作成」をクリックします。作成した役割を検索し、役割名をクリックします。

- ロールARNをメモしておいてください。これは、認証方法AWS IAM Roles Anywhereのプラグイン設定ロールARNパラメータで必要になります。

プロフィールを作成する
- アクセス管理の下にある「役割」 Select 。
- 「Roles Anywhere」までスクロールダウンして、 「管理」をクリックします。

- セットアップ手順を展開してください。
- ステップ2:役割の設定をクリックします。
- 「プロファイルの設定」をクリックしてください。

- プロフィール名を入力してください。
- Select the role created in the Create IAM Role section.

- インラインポリシーを削除してください。

- 「プロフィールを作成」をクリックしてください。

- 作成したプロファイルSelect 、プロファイルARNをコピーします。

プライベート証明書をリクエストする
- AWS Certificate Manager > 証明書のリクエストに移動します。
- Select プライベート証明書をリクエストしてください。

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

- 完全修飾ドメイン名フィールドに、 Netskopeのようにドメイン名を入力してください。
- 鍵アルゴリズムとしてRSA 2048 Select 。

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

- AWS Certificate Manager のナビゲーション ペインから「証明書の一覧」に移動します。
- 以前に作成した証明書Select 。

- エクスポートをクリックしてください。

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

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

証明書本体である証明書プライベートキーは、AWS Verified Access Plugin 使う AWS IAM Roles Anywhere 認証方式の設定に必要となります。 詳細については、 AWS IAM Role Anywhereを参照してください。
AWS認証
役割を作成する
- AWSコンソールでIAMサービスに移動してください。
- 「役割を作成」をクリックします。

- AWSサービスSelect 。
- [使うケース] で[EC2]を選択します。
- 「次へ」をクリックしてください。

- 「AWS Security Hub ポリシーの作成」で作成したアクセス許可ポリシーSelect 。

- 「次へ」をクリックしてください。

- ロール名とデスクリプションを入力します。

- 「役割の作成」をクリックします。

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


- 「アクション」>「セキュリティ」>「IAMロールの変更」に移動します。

- Select 上で作成した「役割作成」で作成した役割を。 (Netskope-ce-instance-role)
- 「IAMロールの追加」または「IAMロールの変更」をクリックします。EC2インスタンスとキューは同じリージョンにある必要があることに注意してください。

AWS Inspectorプラグインを設定する
-
Cloud Exchange で、 Settings > Plugin Storeに移動します。AWS Inspector v1.0.0 (CRE)プラグインを検索して選択してください。

-
必要に応じて、プラグインの設定名を追加し、同期間隔を変更してください。

-
Nextをクリックして、構成パラメータを確認してください。
-
Authentication Method: 認証に使用する方法Select (AWS/AWS IAM Roles Anywhereにデプロイ済み)
-
Private Key: AWSプライベートCA証明書を復号するための秘密鍵。AWS IAM Roles Anywhere認証タイプに必須です。
-
Certificate Body: AWSパブリック/プライベートCA証明書の証明書本体。AWS IAM Roles Anywhere認証タイプに必須です。
-
Password Phrase: CA証明書を復号するためのパスワードフレーズ。AWS IAM Roles Anywhere認証タイプに必須です。
-
Profile ARN: AWSクライアント認証用のAWSプロファイルARN。AWS IAM Roles Anywhere認証タイプに必須.
-
Role ARN: AWSクライアント認証用のAWSロールARN。AWS IAM Roles Anywhere認証タイプに必須です。
-
Trust Anchor ARN: AWSクライアント認証用のAWSトラストアンカーARN。AWS IAM Roles Anywhere認証タイプに必須です。
-
AWS Region Name: AWSリージョン名。リージョン名が、プロファイルARNおよびトラストアンカーARNのリージョン名と一致していることを確認してください。
-
Initial Range: 初回実行時にデータを取得するのにかかる日数。



-
-
Nextをクリックし、エンティティのドロップダウンリストから必要なエンティティを選択してください。ご要望に応じて、フィールドマッピングをご提供ください。Addクリックすると新しいものを作成できます。

新しいフィールドを作成するには、 Add fieldをクリックしてください。

要件に応じてフィールドラベル、データタイプ、正規化、集計戦略を入力し、 Saveをクリックします。

作成したフィールドをマッピングします。


注記
- プラグインの設定時には、「マッピング」セクションを参照してください。
- ワークロードを取得するには、IDとプライベートIPのフィールドを見つける必要があります。
-
Saveをクリックしてください。

AWS Inspectorプラグイン用のリスクエクスチェンジビジネスルールを設定する
-
Risk Exchangeで、 Business RulesとCreate New Ruleをクリックします。
-
ルール名を入力してください。AWS Inspectorプラグイン用にフィールドが設定されているエンティティをSelect 、要件に基づいてクエリを設定します。 この例では、プラグインから取得したデータをフィルタリングします。

-
Saveをクリックしてください。
AWS Inspectorプラグインのリスク交換アクションを設定する
AWS Inspectorプラグインは、以下のアクションタイプをサポートしています。
- 抑制ルールの作成: 抑制ルールの作成アクションは AWS Inspector で抑制ルールを作成するために使用できます。
- 何もしない:このアクションに対しては何も行われません。ユーザーは、この操作を行い、 [アラートの生成]トグルを有効にすることで、Ticket Orchestrator で UBA アラートを生成できます。
抑制ルールを作成する
-
Risk Exchangeで Actionsに移動し、 Add Action Configurationをクリックします。
-
それぞれのドロップダウンメニューから、必要なビジネスルール、ターゲットプラグイン構成、およびアクションSelect 。
-
取得したレコードに対して操作を実行する前に承認が必要な場合は、 「承認が必要」トグルを有効にしてください。「承認が必要」トグルが有効になっている場合、ユーザーはリスクエクスチェンジからの各アクションの実行をアクションログページで手動で承認する必要があります。
-
Enter the Action Parameters:
- Rule Name: AWS Inspectorで作成する抑制ルールの名前。静的フィールドにルール名を入力してください。最大128文字まで入力可能です。
- Rule Description: 抑制ルールのデスクリプション。 Static フィールドにデスク リプションを入力します。
- Filter Key: AWS Inspector フィールドは抑制フィルター基準として使用されます。 静的フィールドのドロップダウンリストからSelect 。
- Filter Value: 選択したフィルターフィールドに一致する値。ソースフィールドにマッピングするか、静的な値を指定します。

-
Saveをクリックしてください。
No Action
- Risk Exchangeで Actionsに移動し、 Add Action Configurationをクリックします。
- それぞれのドロップダウンメニューから、必要なビジネスルール、設定、およびアクションSelect 。
- 取得したレコードに対して操作を実行する前に承認が必要な場合は、 「承認が必要」トグルを有効にしてください。
- Saveをクリックしてください。
AWS Inspectorプラグインを検証する
Cloud Exchangeで検証する
プルを検証するには:
Risk Exchangeで、「レコード」をクリックします。取得したレコードを表示するには、フィールドマッピングの設定時に選択したエンティティSelect 。

取得したレコードに関連するログを確認するには、 Home > Settings > Loggingページに移動し、プラグイン名またはプラグイン構成名でフィルタを適用します。

実行された「抑制ルールの作成」アクションのログ:

取得されたレコードが設定済みのビジネスルールのいずれかに一致する場合、そのレコードに対して設定済みのアクションが実行されます。これは、リスクエクスチェンジ > アクションログで確認できます。

AWS Inspectorで検証する
AWS Inspectorで利用可能なワークロードを検証するには:
AWSインスタンスにログインし、インスペクターサービスにアクセスしてください。

「在庫」の下にある「調査結果」ページに移動してください。

以下にすべての調査結果を記載します。特定の調査結果の詳細を確認するには、その調査結果をクリックしてください。

抑制ルール作成アクションを検証する
「抑制ルールの作成」アクションを検証するには、AWS の Inspector サービスに移動します。

管理セクションの「抑制ルール」ページに移動してください。

作成した抑制ルールをクリックして、抑制の有効性を確認し、ルールでフィルタリングします。

AWS Inspectorプラグインのトラブルシューティング
プラグインからワークロードまたはフィールド値を取得できません
AWS Security Hubの検出結果からワークロードを取得できない場合、取得できるデータがないことが原因である可能性があります。
- 取得できるデータがありません。
- マッピングされたフィールドはありません。
What to do:
- AWS Inspector > Findingsへ移動してください。プラグインの設定で指定された期間および地域名と同じ期間および地域で、検索結果を取得できるかどうかを確認してください。
- 調査結果が利用可能であるにもかかわらずまだ取得されていない場合は、それらの調査結果のリソース値を確認してください。EC2インスタンスまたはAmazon EC2インスタンスリソースタイプに該当する検索結果のみが表示されます。
- 調査結果が利用可能な場合は、プラグイン内で該当するフィールドがマッピングされていることを確認してください。
新しいプラグインの設定中に問題が発生しています
AWS IAM Roles Anywhereを使用して新しいプラグインを作成し、プラグインの設定中に次のエラーが表示される場合:

What to do:
このエラーは、トラストアンカーARN、ロールARN、またはプロファイルARNのいずれかのアカウントIDが異なることを意味している可能性があります。そのため、提供されたパラメーターが同じアカウントから生成され、同じリージョンであることを確認する必要があります。



