このドキュメントでは、AWS Security Hub OCSF v1.0.0 プラグインを Netskope Cloud Exchange プラットフォームのリスク交換モジュールと連携させる方法について説明します。このプラグインは AWS Security Hub > 商用クラウドの EC2 インスタンス リソースの検出結果からワークロードを取得します。 このプラグインは、セキュリティハブ上での操作をサポートしていません。
前提条件
この統合を完了するには、以下が必要です。
- Netskopeテナント(または、例えば本番環境と開発/テスト環境など、複数のテナント)。
- Netskope Cloud Exchangeテナントには、テナントプラグインとリスクエクスチェンジプラグインが既に設定済みです。
- Amazon AWS Security Hubへの接続。
AWS Security Hubプラグインのサポート
このプラグインは、AWS Security Hubで利用可能な検出結果から、 aws-ec2-instancesタイプのワークロードレコードを取得します。
| 取得したデータの種類 | サポートされているアクション |
|---|---|
| Workloads | サポートされていません |
マッピング
マッピングは 取得したワークロードとその詳細を表示するためのものです。 プラグイン設定時にマッピングされたフィールドは、データが取得された際にレコードページに表示されます。以下は、プラグインの設定時に推奨されるマッピングです。 プラグインの設定時に使用します。
ワークロードマッピング
| リスク交換分野 | 想定されるデータ型 | 提案されたフィールド名 | CRE総合戦略 |
|---|---|---|---|
| IDを探す | String | IDを探す | Unique |
| プライベートIP | String | プライベートIP | Unique |
| Region | String | Region | Overwrite |
| リソース名 | String | リソース名 | Overwrite |
| リソースUID | String | リソースUID | Overwrite |
| Resource Tags | List | Resource Tags | Overwrite |
| サブネットID | String | サブネットID | Overwrite |
| パブリックIP | String | パブリックIP | Overwrite |
| VPC ID | String | VPC ID | Overwrite |
| 重大度 | String | 重大度 | Overwrite |
| 製品名 | String | 製品名 | Overwrite |
| タイトルを見つける | String | タイトルを見つける | Overwrite |
| デスクリプションを探す | String | デスクリプションを探す | Overwrite |
| 初めて目撃された | Datetime | 初めて目撃された | Overwrite |
| 最後に目撃された日時 | Datetime | 最後に目撃された日時 | Overwrite |
| クラスを見つける | String | クラスを見つける | Overwrite |
権限
AWS Security Hub が IAM ユーザーに付与するワークロード情報取得権限はGetFindingsです。
APIの詳細
使うAPI一覧
このプラグイン AWS SecurityHub からリソースタイプ EC2 インスタンスの検出結果を取得するための Python ライブラリ。
ライブラリ:AWS SDK for Python(Boto3)
使用方法:AWS Security HubなどのAWSサービスを作成、設定、管理するためのAWS SDK for Python(Boto3)です。SDKは、オブジェクト指向APIと、AWSサービスへの低レベルアクセス機能を提供します。
Creating Security Hub Client
securityhub_client = boto3.client(
"securityhub",
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 Security Hub CSPM Findings
Parameters
{
"Filters": {
"CompositeFilters": [
{
"StringFilters": [
{
"FieldName": "resources.type",
"Filter": {
"Value": "AWS::EC2::Instance",
"Comparison": "EQUALS",
},
}
],
"DateFilters": [
{
"FieldName": "finding_info.modified_time_dt",
"Filter": {
"Start": start_time,
"End": end_time,
}
}
]
},
]
},
"SortCriteria": [
{
"Field": "finding_info.modified_time_dt",
"SortOrder": "desc",
}
],
"MaxResults": 100,
}
response = securityhub_client.get_findings_v2(**params)
パフォーマンスマトリックス
以下は、これらの仕様を持つ大規模CEスタック上で、50万台のデバイスを使用して実施したパフォーマンスマトリックスです。
| デスクリプション | 仕様 |
|---|---|
| スタックの詳細 | サイズ:大 RAM:32 GB CPU:16コア |
| AWS Security Hubから取得したデバイス情報 | 約20分 |
ユーザーエージェント
APN/1.1 (ahq9d89xj9gspapczzdb59goq)
ワークフロー
- AWS Security Hub 認証方法用のクレデンシャルを生成します。
- AWS Security Hub OCSFプラグインの設定。
- ビジネスルールを追加します。
- アクションを追加します。
- AWS Security Hubプラグインを検証します。
動画を見る
再生ボタンをクリックして動画をご覧ください。
AWS Security Hub ポリシーを作成する
- Click on the JSON tab, and enter this policy. Click Next: Tags, and then click Next: Review.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"securityhub:GetFindings"
],
"Resource": "*"
}
]
}
- 名前を入力してCreate Policyをクリックしてください。

- このポリシーをユーザーに添付してください。IAM > Usersへ移動してください。添付したいユーザーSelect 、 Add permissionsをクリックしてからAdd permissions optionsをクリックします。
- 「権限」の下にある「 Attach policies directly オプションSelect 、次に、前の手順で作成した ソースキューを検索して選択します。

- Nextをクリックしてから、 Add permissionsをクリックしてください。このポリシーはユーザーに紐付けられます。
プラグイン認証方法
IAMロールAnywhereの設定
前提条件
プラグインを認証するには、 AWS Certificate Managerサービスを有効にする必要があります。 AWS IAM Roles Anywhere認証方法。
プライベート認証局、トラストアンカー、およびプロファイルは、AWS SQSキューが存在するリージョンと同じリージョンに作成するようにしてください。
ポリシーを作成する
この には、プライベート CA 証明書の作成に必要な権限 (トラスト アンカーとプロファイルの作成権限を含む) と IAM ロール Anywhere が含まれています。
- ポリシー ジェネレーターに移動し、ポリシー タイプとして IAM ポリシーを選択し、ステートメントの追加の詳細を入力して、ポリシーを生成します。
- ポリシーの種類Select : IAM ポリシー
- 効果:許可する
- AWSサービス: AWSプライベート認証局
- アクション:
- 証明書認証局を作成する
- 認証局について説明します
- 証明書を取得する
- 認証局証明書を取得する
- GetCertificateAuthorityCsr
- 輸入証明書認証局証明書
- 証明書の発行
- 認証局一覧
- ARN: *
- Add Statement .
をクリックしてください
- 上にスクロールして、別の文を追加してください。
- ポリシーの種類Select : IAM ポリシー
- 効果:許可する
- AWSサービス:AWS Identity and Access Management(IAM)
- アクション:
- 役割ポリシーを添付する
- CreateAccessKey
- ロールの作成
- 役割を削除
- パスロール
- ARN: *
- Add Statement .
をクリックしてください
- 上にスクロールして、別の文を追加してください。
- ポリシーの種類Select : IAM ポリシー
- 効果:許可する
- AWSサービス: AWS証明書マネージャー
- アクション:
- 証明書の説明
- 輸出証明書
- 証明書を取得する
- 証明書一覧
- 証明書のタグ一覧
- 証明書のリクエスト
- ARN: *
- Add Statement .
をクリックしてください
- 上にスクロールして、別の文を追加してください。
- ポリシーの種類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
をクリックします。
- 名前 ( Netskope -ce-rolesAnywhere-ポリシーなど) を入力し、 Save Changesをクリックします。

プライベート認証局を作成する
- AWSコンソールにログインしてください。
- Certificate Manager .
を検索
- AWS Private CAをクリックしてください。
- Create a private CA .
をクリックしてください
- Mode Optionsの場合は、 General-purposeを選択してください。
- CA type optionsの場合、 Rootを選択します。

- Organization (O)を入力してください。

- Key algorithm optionsの場合、 RSA 2048を選択します。


- Add tagsif any (optional).
- CA permissions optionsセクションのチェックボックスをオンにしてください。
- Pricingセクションのチェックボックスをオンにしてください。
- CA証明書を作成するには、 Createをクリックしてください。


- ActionsからInstall CA Certificateを選択します。

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

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

- Create a Trust anchor .
をクリックしてください - Trust anchor nameを入力してください。
- AWS Certificate Manager Private CA (前の手順で作成したもの) をCertificate authority (CA) sourceとしてSelect 。 前の手順でAWSプライベート認証局で作成した証明書Select 。
- 必要に応じてタグを追加してください。
- Create a trust anchor .
をクリックしてください
- 作成されたトラストアンカーをクリックして、 Trust Anchor ARNをコピーします。これは、認証方法「AWS IAM Roles Anywhere」のプラグイン設定の「Trust Anchor ARN」パラメータで必要になります。

IAMロールを作成する
- AWSコンソールでIAM servicesに移動してください。
- アクセス管理サブメニューのRoleをクリックします。
- Create Role .
をクリックしてください
- 信頼済みエンティティタイプで、 Custom Trust Policy .
を選択します。
- カスタム信頼ポリシーをこの信頼ポリシーに置き換えてください。このポリシーには、ロールをどこでも使用するための権限が含まれています service:{ “Version”: “2012-10-17”, “Statement”: [ { “Effect”: “Allow”, “Principal”: { “Service”: [ “rolesanywhere.amazonaws.com” ] }, “アクション”: [ “sts:AssumeRole”, “sts:TagSession”, “sts:SetSourceIdentity” ] } ] }

- Nextをクリックしてください。
- [アクセス許可ポリシー] で、 「AWS Security Hub ポリシーの作成」で作成したポリシーを選択します。

- Nextをクリックしてください。
- ロール名(例:Netskope-ce-aws-verified-access-role)とデスクリプションを役割に付けます。

- Create roleをクリックしてください。作成した役割を検索し、役割名をクリックします。

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

プロフィールを作成する
- SelectRoles Access management。
- 下にスクロールしてRoles Anywhere まで行き、 Manageをクリックしてください。

- セットアップ手順を展開してください。
- Step 2: Configure rolesをクリックしてください。
- Configure a profile .
をクリックしてください
- プロフィール名を入力してください。
- Select the role created in the Create IAM Role section.
- Inline Policy .
を削除します。
- Create a profile .
をクリックしてください

- 作成したプロファイルSelect 、プロファイルARNをコピーします。
プライベート証明書をリクエストする
- AWS Certificate Manager > Request certificateへ移動してください。
- SelectRequest a private certificate。

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

- 完全修飾ドメイン名フィールドに、 Netskopeのようにドメイン名を入力してください。
- キーアルゴリズムとしてRSA 2048 Select 。
- 必要に応じてタグを追加してください。
- 証明書の更新権限を承認してください。
- Request .
をクリックしてください
- AWS Certificate Manager のナビゲーション ペインからList certificatesに移動します。
- 以前に作成した証明書Select 。

- Export .
をクリックしてください
- パスフレーズを入力してください. パスフレーズは、AWS Security Lake プラグインの設定に必要となるため、メモしておいてください。 AWS IAM Roles Anywhere認証方法。
- Generate PEM Encoding .
をクリックしてください - 証明書はすべてダウンロードしてください。一度ダウンロードすると、二度と表示されなくなります。新しい証明書の場合は、再度エクスポートする必要があります。
AWS Verified Accessプラグインの設定には、証明書本体と証明書の秘密鍵が必要です。 AWS IAM Roles Anywhere認証方式。 詳細については、 AWS IAM Role Anywhereを参照してください。
AWSにデプロイされた構成マニュアル
役割を作成する
- AWSコンソールでIAMサービスに移動します。
- Create role .
をクリックしてください
- SelectAWS Service。
- 使うケースで EC2を選択します。
- Next .
をクリックしてください
- Select 「Create an AWS Security Hub」ポリシーで作成された権限ポリシーをご利用ください。

- Next .
をクリックしてください
- ロール名とデスクリプションを入力します。
- Create Role .
をクリックしてください
EC2インスタンスにロールを割り当てる
- EC2インスタンスのコンソールにログインしてください。
- 「インスタンス」の下にあるInstances をクリックしてください。


- Action > Security > Modify IAM Role .
へ移動してください。
- Select 上で作成した「役割作成」で作成した役割を。 (Netskope-ce-instance-role)
- Add IAM RoleまたはModify IAM Roleをクリックしてください。

注記:
EC2インスタンスとキューは、同じリージョンに配置する必要があります。
AWS Security Hubプラグインを設定する
- Cloud Exchangeで Settings > Pluginsに行ってください。AWS Security Hub OCSF v1.0.0 (CRE)プラグインボックスを検索して選択します。

- 設定名を入力し、同期間隔を変更してください。

- 設定パラメータを入力してください。
>
- 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をクリックしてください。エンティティのドロップダウンからエンティティをSelectしてください。エンティティフィールドはスキーマエディターのページから作成するか、フィールドドロップダウンから +Add Field オプションで作成できます。 フィールドマッピングを提供してください。推奨されるマッピングについては、 「マッピング」セクションを参照してください。

- Save .
をクリックしてください
注記:
ユーザーを取得するには、検索ID、リソースID、およびIPv4アドレスの各フィールドが必要であり、アプリケーションを取得するにはインスタンスIDが必要です。
AWS Security Hubプラグインにリスクエクスチェンジビジネスルールを追加する
- Risk Exchange > Business Rulesへ移動してください。
- 右上隅のCreate New Ruleクリックしてください。
- ルール名を入力してください。AWS Security Hub OCSFプラグイン用にフィールドが設定されているエンティティをSelect 、要件に基づいてクエリを設定します。 以下の例は、プラグインから取得したデータをフィルタリングするものです。

- Saveをクリックしてください。
AWS Security Hubプラグインにリスク交換アクションを追加する
AWS Security Hub OCSF は、以下のアクションタイプをサポートしています。
No Action
この件に関して、いかなる措置も講じられません。Ticket Orchestrator で UBA アラートを生成するには、 この操作を行い、 [アラート生成]トグルを有効にします。

注記:
AWS Security Hub プラグインからCloud Exchangeに取り込まれたワークロードについては、 Netskopeの「ホストをプライベート アプリに追加」アクションを使用できます。 Netskopeでワークロード関連の操作を実行するには、リスク交換プラグインガイドを参照してください。
Steps to configure the Action
- ユーザーRisk Exchange > Actions > Click on Add Action Configurationへ移動してください。
- それぞれのドロップダウンリストから、必要なビジネスルール、設定、およびアクションSelect 。
- アクションを実行する前に承認が必要な場合は、 「承認が必要」トグルを有効にしてください。
- Saveをクリックしてください。
AWS Security Hubプラグインを検証する
Cloud Exchangeで検証する
AWS Security HubのOCSF調査結果からCloud Exchange内のデバイス取得を検証するには、 Logging にアクセスし、「 CRE AWS Security Hub OCSF [CRE AWS SECURITY HUB] OCSF」のようなメッセージを検索してください。

Cloud Exchangeに保存されているレコードを検証するには、 Risk Exchange > Recordsにアクセスしてください。プラグイン設定でマッピングを追加する際に、エンティティSelect 、レコードを確認してください。


AWS Security Hubで検証する
AWS では、プラグインはAWS Security Hub > Findingsから AwsEc2Instance の詳細を取得します。

AWS Security Hubプラグインのトラブルシューティング
プラグインからワークロードまたはフィールド値を取得できません
AWS Security Hubの検出結果からワークロードを取得できない場合、取得可能なデータがないことが原因である可能性があります。考えられる原因としては、以下が挙げられます。
- 取得できるデータがありません。
- マッピングされたフィールドはありません。
What to do:
- AWS Security Hub > Findingsへ移動してください。プラグインの設定で指定された期間と同じ期間のデータを取得できるかどうかを確認してください。
- 調査結果が利用可能であるにもかかわらずまだ取得されていない場合は、それらの調査結果のリソース値を確認してください。EC2インスタンスまたはAwsEc2Instanceリソースタイプを持つ検索結果のみが取得されます。
- 調査結果が利用可能な場合は、プラグイン内で該当するフィールドがマッピングされていることを確認してください。
プラグインが更新されて追加フィールドを取得するようになった場合、レコードページの既存のレコードには、それらの新しいフィールドの値は含まれないことに注意してください。新しいフィールドは、既存の調査結果のmodified_time_dtフィールドが更新された場合にのみ入力されます。それ以外の場合は、新しく生成された調査結果にのみすべてのフィールドが含まれます。
新しいプラグインの設定中に問題が発生しています
AWS IAM Roles Anywhereを使用して新しいプラグインを作成する際に、プラグインの設定中に以下のエラーが発生した場合:

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



