統合
Red Hat Advanced Cluster Security for Kubernetes の統合
概要
第1章 イメージレジストリーとの統合
Red Hat Advanced Cluster Security for Kubernetes (RHACS) は、さまざまなイメージレジストリーと統合されているため、イメージを理解し、イメージの使用にセキュリティーポリシーを適用できます。
イメージレジストリーと統合すると、イメージの作成日や Dockerfile の詳細 (イメージレイヤーを含む) などの重要なイメージの詳細を表示できます。
RHACS をレジストリーと統合した後、デプロイメント前またはデプロイメント後にイメージをスキャンし、イメージコンポーネントを表示し、セキュリティーポリシーをイメージに適用できます。
イメージレジストリーと統合すると、RHACS はレジストリー内のすべてのイメージをスキャンしません。RHACS は、次の場合にのみイメージをスキャンします。
- デプロイメントでイメージを使用する
-
roxctl
CLI を使用してイメージを確認します - 継続的インテグレーション (CI) システムを使用して、セキュリティーポリシーを適用します
RHACS は、次のような主要なイメージレジストリーと統合できます。
1.1. 自動設定
Red Hat Advanced Cluster Security for Kubernetes には、Docker Hub などの標準レジストリーとのデフォルトの統合が含まれています。また、イメージのプルシークレットなど、モニターされるクラスターにあるアーティファクトに基づいて、インテグレーションを自動的に設定することもできます。通常、レジストリー統合を手動で設定する必要はありません。
GCR レジストリーを使用している場合、Red Hat Advanced Cluster Security for Kubernetes はレジストリー統合を自動的に作成しません。
1.2. Amazon ECR の統合
Amazon ECR 統合の場合、以下の条件が満たされると、Red Hat Advanced Cluster Security for Kubernetes は ECR レジストリー統合を自動的に生成します。
- クラスターのクラウドプロバイダーは AWS です。
- クラスターのノードには、インスタンス ID およびアクセス管理 (IAM) ロールの関連付けがあり、インスタンスメタデータサービスはノードで利用可能です。たとえば、Amazon Elastic Kubernetes Service (EKS) を使用してクラスターを管理する場合、このロールは EKS Node IAM ロールと呼ばれます。
- Instance IAM ロールには、デプロイする ECR レジストリーへのアクセス権限を付与する IAM ポリシーがあります。
上記の条件が満たされると、Red Hat Advanced Cluster Security for Kubernetes は ECR レジストリーからプルするデプロイメントをモニターし、それらの ECR 統合を自動的に生成します。これらのインテグレーションは、自動的に生成された後に編集できます。
1.3. イメージレジストリーを手動で設定する
GCR を使用している場合、イメージレジストリー統合を手動で作成する必要があります。
1.3.1. OpenShift Container Platform レジストリーの手動設定
Red Hat Advanced Cluster Security for Kubernetes を OpenShift Container Platform のビルトインコンテナーイメージレジストリーと統合できます。
前提条件
- OpenShift Container Platform レジストリーでの認証にはユーザー名とパスワードが必要。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで、Generic Docker Registry を選択します。
- New integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration name: インテグレーションの名前。
- Endpoint: レジストリーのアドレス。
- UsernameとPassword
- レジストリーへの接続時に TLS 証明書を使用していない場合は、Disable TLS certificate validation (insecure) を選択します。
- レジストリーへの接続をテストせずに統合を作成する場合は、Create integration without testing を選択します。
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
1.3.2. Amazon Elastic Container Registry を手動で設定する
Red Hat Advanced Cluster Security for Kubernetes を使用して、Amazon Elastic Container Registry (ECR) の統合を手動で作成および変更できます。Amazon ECR からデプロイする場合、Amazon ECR レジストリーのインテグレーションは通常自動的に生成されます。ただし、デプロイメント外のイメージをスキャンするために、独自にインテグレーションを作成したい場合があります。自動生成されるインテグレーションのパラメーターを変更することもできます。たとえば、自動生成された Amazon ECR 統合で使用される認証方法を変更して、AssumeRole 認証またはその他の承認モデルを使用することができます。
自動生成される ECR 統合に加えた変更を消去するには、統合を削除し、Red Hat Advanced Cluster Security for Kubernetes は Amazon ECR からイメージをデプロイする際に自動生成されるパラメーターで新しい統合を作成します。
前提条件
-
Amazon Identity and Access Management (IAM) アクセスキー ID およびシークレットアクセスキーが必要です。または、
kiam
やkube2iam
などのノードレベルの IAM プロキシーを使用することもできる。 - アクセスキーには、ECR への読み取りアクセス権が必要。詳細は、How do I create an AWS access key? を参照のこと。
Amazon Elastic Kubernetes Service (EKS) で Red Hat Advanced Cluster Security for Kubernetes を実行していて、別の Amazon アカウントの ECR と統合する場合は、最初に ECR でリポジトリーポリシーステートメントを設定する必要があります。Setting a repository policy statement の手順に従い、Actions で、Amazon ECR API オペレーションの次のスコープを選択する。
- ecr:BatchCheckLayerAvailability
- ecr:BatchGetImage
- ecr:DescribeImages
- ecr:GetDownloadUrlForLayer
- ecr:ListImages
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで Amazon ECR を選択します。
- New integration をクリックするか、自動生成されたインテグレーションのいずれかをクリックして開き、Edit をクリックします。
以下のフィールドの詳細を入力または変更します。
- Update stored credentials: アクセスキーやパスワードなどのクレデンシャルを更新せずにインテグレーションを変更する場合には、このボックスをクリアします。
- Integration name: インテグレーションの名前。
- Registry ID: レジストリーの ID。
- Endpoint: レジストリーのアドレス。このフィールドは、AssumeRole オプションが選択されている場合には有効ではありません。
-
Region: レジストリーのリージョン (例:
us-west-1
)。
- IAM を使用している場合は、Use Container IAM role を選択します。それ以外の場合は、Use Container IAM role ボックスの選択を解除し、アクセス Access key ID および Secret access key を入力します。
AssumeRole 認証を使用している場合は、Use AssumeRole を選択し、以下のフィールドの詳細を入力します。
- AssumeRole ID: 引き受けるロールの ID。
- AssumeRole External ID (オプション): AssumeRole で外部 ID を使用している場合は、ここに入力できます。
- レジストリーへの接続をテストせずに統合を作成する場合は、Create integration without testing を選択します。
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
1.3.2.1. Amazon ECR で assumerole を使用する
AssumeRole を使用すると、各ユーザーのパーミッションを手動で設定しなくても、AWS リソースへのアクセスを許可できます。代わりに、必要な権限を持つロールを定義して、ユーザーにそのロールを引き受けるためのアクセス権が付与されるようにすることができます。AssumeRole
を使用すると、よりきめ細かい権限を付与、取り消し、またはその他の方法で一般的に管理できます。
1.3.2.1.1. コンテナー IAM を使用した AssumeRole の設定
Red Hat Advanced Cluster Security for Kubernetes で AssumeRole を使用する前に、まずそれを設定する必要があります。
手順
EKS クラスターの IAM OIDC プロバイダーを有効にします。
$ eksctl utils associate-iam-oidc-provider --cluster <cluster name> --approve
- EKS クラスターの IAM ロールを作成し ます。
新しく作成したロールをサービスアカウントに関連付けます。
$ kubectl -n stackrox annotate sa central eks.amazonaws.com/role-arn=arn:aws:iam::67890:role/<role-name>
Central を再起動して、変更を適用します。
$ kubectl -n stackrox delete pod -l app=central
必要に応じて、ロールが別のロールを引き受けることを許可するポリシーにロールを割り当てます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::<ecr-registry>:role/<assumerole-readonly>" 1 } ] }
- 1
<assumerole-readonly>
を引き受けたいロールに置き換えます。
引き受けるロールの信頼関係を更新します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<ecr-registry>:role/<role-name>" 1 ] }, "Action": "sts:AssumeRole" } ] }
- 1
<role-name>
は、以前に作成した新しいロールと一致する必要があります。
1.3.2.1.2. コンテナー IAM を使用せずに AssumeRole を設定する
コンテナー IAM なしで AssumeRole を使用するには、アクセスと秘密鍵を使用して、プログラムによるアクセス権を持つ AWS ユーザー として認証する必要があります。
手順
AssumeRole ユーザーが ECR レジストリーと同じアカウントにあるか、別のアカウントにあるかに応じて、次のいずれかを行う必要があります。
ロールを引き受けるユーザーが ECR レジストリーと同じアカウントにいる場合は、必要な権限で新しいロールを作成します。
注記ロールを作成するときに、必要に応じて任意の信頼できるエンティティーを選択できます。ただし、作成後に変更する必要があります。
または、ユーザーが ECR レジストリーとは異なるアカウントにいる場合は、ECR レジストリーにアクセスし、その信頼関係を定義するためのアクセス許可を提供する必要があります。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::<ecr-registry>:role/<assumerole-readonly>" 1 } ] }
- 1
<assumerole-readonly>
を引き受けたいロールに置き換えます。
Principal フィールドの下にユーザー ARN を含めることにより、ロールの信頼関係を設定します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<ecr-registry>:user/<role-name>" ] }, "Action": "sts:AssumeRole" } ] }
1.3.2.1.3. RHACS での AssumeRole の設定
ECR で AssumeRole を設定した後、AssumeRole を使用して、Red Hat Advanced Cluster Security for Kubernetes を Amazon Elastic Container Registry (ECR) と統合できます。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで Amazon ECR を選択します。
- New Integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration Name: 統合の名前。
- Registry ID: レジストリーの ID。
-
Region: レジストリーのリージョン (例:
us-west-1
)。
- IAM を使用している場合は、Use container IAM role を選択します。それ以外の場合は、Use custom IAM role ボックスの選択を解除し、Access key ID および Secret access key を入力します。
AssumeRole を使用している場合は、Use AssumeRole を選択し、以下のフィールドの詳細を入力します。
- AssumeRole ID: 引き受けるロールの ID。
- AssumeRole External ID (オプション): AssumeRole で外部 ID を使用している場合は、ここに入力できます。
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
1.3.3. Google Container Registry の手動設定
Red Hat Advanced Cluster Security for Kubernetes を Google Container Registry (GCR) と統合できます。
前提条件
- サービスアカウントキーが必要です。
- 関連するサービスアカウントは、レジストリーにアクセスできる必要があります。ユーザーおよび他のプロジェクトに GCR へのアクセスを許可する方法は、Configuring access control を参照してください。
GCR Container Analysis を使用している場合は、サービスアカウントに次のロールも付与する必要があります。
- コンテナー分析ノートビューアー
- コンテナー分析発生状況ビューアー
- ストレージオブジェクトビューアー
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで、Google Container Registry を選択します。
- New integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration name: インテグレーションの名前。
- Type: Registry を選択します。
- Registry Endpoint: レジストリーのアドレス。
- Project: Google Cloud プロジェクト名。
- Service account key (JSON) 認証に使用するサービスアカウントキー。
- レジストリーへの接続をテストせずに統合を作成する場合は、Create integration without testing を選択します。
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
1.3.4. Google Artifact レジストリーの手動設定
Red Hat Advanced Cluster Security for Kubernetes を Google Artifact Registry と統合できます。
前提条件
-
Artifact Registry Reader Identity and Access Management (IAM) ロール
roles/artifactregistry.reader
でサービスアカウントキーが必要です。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで、Google Artifact Registry を選択します。
- New integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration name: インテグレーションの名前。
- Registry endpoint: レジストリーのアドレス。
- Project: Google Cloud プロジェクト名。
- Service account key (JSON) 認証に使用するサービスアカウントキー。
- レジストリーへの接続をテストせずに統合を作成する場合は、Create integration without testing を選択します。
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
1.3.5. Microsoft Azure Container Registry の手動設定
Red Hat Advanced Cluster Security for Kubernetes を Microsoft Azure と統合できます。
前提条件
- 認証には、ユーザー名とパスワードが必要です。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで Microsoft Azure Container Registry を選択します。
- New integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration name: インテグレーションの名前。
- Endpoint: レジストリーのアドレス。
- UsernameとPassword
- レジストリーへの接続をテストせずに統合を作成する場合は、Create integration without testing を選択します。
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
1.3.6. JFrog Artifactory の手動設定
Red Hat Advanced Cluster Security for Kubernetes を JFrog Artifactory と統合できます。
前提条件
- JFrog Artifactory で認証するには、ユーザー名とパスワードが必要。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで、JFrog Artifactory を選択します。
- New integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration name: インテグレーションの名前。
- Endpoint: レジストリーのアドレス。
- UsernameとPassword
- レジストリーへの接続時に TLS 証明書を使用していない場合は、Disable TLS certificate validation (insecure) を選択します。
- レジストリーへの接続をテストせずに統合を作成する場合は、Create integration without testing を選択します。
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
1.3.7. Quay Container Registry を手動で設定する
Red Hat Advanced Cluster Security for Kubernetes (RHACS) を Quay Container Registry と統合できます。次の方法を使用して、Quay と統合できます。
- Quay パブリックリポジトリー (レジストリー) との統合: この方法では認証は必要ありません。
- ロボットアカウントを使用した Quay プライベートレジストリーとの統合: この方法では、Quay で使用するロボットアカウントを作成する必要があります (推奨)。詳細は、Quay documentation を参照してください。
- Quay と統合して RHACS Scanner ではなく Quay スキャナーを使用する: この方法では API を使用し、認証に OAuth トークンが必要です。”Additional Resources” の ”Integrating with Quay Container Registry to scan images” を参照してください。
前提条件
- Quay プライベートレジストリーでの認証には、ロボットアカウントまたは OAuth トークン (非推奨) に関連付けられた資格情報が必要。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで Red Hat Quay.io を選択します。
- New integration をクリックします。
- Integration name を入力します。
Endpoint またはレジストリーのアドレスを入力します。
- Quay パブリックリポジトリーと統合する場合は、Type で Registry を選択し、次の手順に進みます。
Quay プライベートレジストリーと統合する場合は、Type で Registry を選択し、次のフィールドに情報を入力します。
-
Robot username: Quay ロボットアカウントを使用してレジストリーにアクセスしている場合は、ユーザー名を
<namespace>+<accountname>
の形式で入力します。 - Robot password: Quay ロボットアカウントを使用してレジストリーにアクセスしている場合は、ロボットアカウントのユーザー名のパスワードを入力します。
- OAuth token: OAuth トークン (非推奨) を使用してレジストリーにアクセスしている場合は、このフィールドに入力します。
-
Robot username: Quay ロボットアカウントを使用してレジストリーにアクセスしている場合は、ユーザー名を
- オプション: レジストリーへの接続時に TLS 証明書を使用していない場合は、Disable TLS certificate validation (insecure) を選択します。
- オプション: テストを行わずにインテグレーションを作成するには、Create integration without testing を選択します。
- Save を選択します。
Quay インテグレーションを編集しているが資格情報を更新したくない場合は、Update stored credentials が選択されていないことを確認します。
1.4. 関連情報
1.4.1. IBM Cloud Container Registry の手動設定
Red Hat Advanced Cluster Security for Kubernetes を IBM Cloud Container Registry と統合できます。
前提条件
- IBM Cloud Container Registry で認証するための API キーが必要。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで、IBM Cloud Container Registry を選択します。
- New integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration name: インテグレーションの名前。
- Endpoint: レジストリーのアドレス。
- API key.
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
1.4.2. Red Hat Container Registry の手動設定
Red Hat Advanced Cluster Security for Kubernetes を Red Hat Container Registry と統合できます。
前提条件
- Red Hat Container Registry での認証にはユーザー名とパスワードが必要。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで Red Hat Registry を選択します。
- New integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration name: インテグレーションの名前。
- Endpoint: レジストリーのアドレス。
- UsernameとPassword
- レジストリーへの接続をテストせずに統合を作成する場合は、Create integration without testing を選択します。
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
第2章 CI システムとの統合
Red Hat Advanced Cluster Security for Kubernetes (RHACS) は、さまざまな継続的インテグレーション (CI) 製品と統合され、イメージをデプロイする前にビルド時およびデプロイ時のセキュリティールールを適用できます。
Red Hat Advanced Cluster Security for Kubernetes は、イメージがビルドされてレジストリーにプッシュされた後、CI パイプラインに統合されます。最初にイメージをプッシュすることで、開発者は、他の CI テストの失敗、リンター違反、またはその他の問題とともに、ポリシー違反に対処しながら、アーティファクトのテストを続行できます。
可能であれば、バージョン管理システムを設定して、Red Hat Advanced Cluster Security for Kubernetes チェックを含むビルドステージが失敗した場合にプルリクエストまたはマージリクエストがマージされないようにブロックする必要があります。
Red Hat Advanced Cluster Security for Kubernetes のインストールにアクセスして、イメージが設定したビルドフェーズポリシーに準拠しているかどうかを確認することにより、CI 製品との統合が機能します。ポリシー違反がある場合は、ポリシーの説明、論理的根拠、修正手順などの詳細なメッセージがコンソールログに表示されます。各ポリシーには、オプションの適用設定が含まれています。ビルドフェーズの適用のためにポリシーをマークした場合、そのポリシーに失敗すると、クライアントはゼロ以外のエラーコードで終了します。
Red Hat Advanced Cluster Security for Kubernetes を CI システムと統合するには、次の手順に従います。
- ビルドポリシーの設定
- レジストリー統合の設定
- Red Hat Advanced Cluster Security for Kubernetes インスタンスへの アクセス設定
- CI パイプラインとの統合
2.1. ビルドポリシーの設定
ビルド中に Red Hat Cluster Security for Kubernetes ポリシーを確認するには、最初に、コンテナーライフサイクルのビルドフェーズに適用されるポリシーを設定する必要があります。次に、ビルド中にイメージがプッシュされるレジストリーと統合する必要があります。
2.1.1. 既存のビルドフェーズポリシーを確認する
RHACS ポータルを使用して、Red Hat Advanced Cluster Security for Kubernetes で設定した既存のビルドフェーズポリシーを確認します。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
-
グローバル検索を使用して、
Lifecycle Stage:Build
を検索します。
2.1.2. 新しいシステムポリシーの作成
デフォルトのポリシーを使用することに加えて、Red Hat Advanced Cluster Security for Kubernetes でカスタムポリシーを作成することもできます。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- + New Policy をクリックします。
- ポリシーの Name を入力します。
- ポリシーの Severity レベルを選択します: クリティカル、高、中、または低。
Build、Deploy、または Runtime から、ポリシーが適用される Lifecycle Stages を選択します。複数のステージを選択できます。
注記CI システムと統合するための新しいポリシーを作成する場合は、ライフサイクルステージとして Build を選択します。
- ビルド時ポリシーは、CVE や Dockerfile 手順などのイメージフィールドに適用されます。
- デプロイ時のポリシーには、すべてのビルド時のポリシー基準を含めることができます。また、特権モードでの実行や Docker デーモンソケットのマウントなど、クラスター設定からのデータを取得することもできます。
- ランタイムポリシーには、すべてのビルド時とデプロイ時のポリシー基準、およびランタイム中のプロセス実行に関するデータを含めることができます。
- Description、Rationale、および Remediation フィールドにポリシーに関する情報を入力します。CI がビルドを検証すると、これらのフィールドのデータが表示されます。したがって、ポリシーを説明するすべての情報を含めてください。
- Categories ドロップダウンメニューからカテゴリーを選択します。
このポリシーの違反が発生したときにアラート通知を受信する通知ドロップダウンメニューから Notifications 機能を選択します。
注記アラート通知を受信するには、Red Hat Advanced Cluster Security for Kubernetes を Webhook、Jira、PagerDuty などの通知プロバイダーと統合する必要があります。通知機能は、通知プロバイダーを Red Hat Advanced Cluster Security for Kubernetes と統合した場合にのみ表示されます。
- 特定のクラスター、namespace、またはラベルに対してのみこのポリシーを有効にするには、Restrict to Scope を使用します。複数のスコープを追加したり、namespaces とラベルの RE2 構文で正規表現を使用したりすることもできます。
- Exclude by Scope を使用して、デプロイメント、クラスター、namespaces、およびラベルを除外します。このフィールドは、指定したエンティティーにポリシーが適用されないことを示します。複数のスコープを追加したり、namespaces とラベルの RE2 構文で正規表現を使用したりすることもできます。ただし、デプロイメントの選択に正規表現を使用することはできません。
除外されたイメージ (ビルドライフサイクルのみ) の場合、ポリシーの違反をトリガーしたくないすべてのイメージをリストから選択します。
注記除外されたイメージ (ビルドライフサイクルのみ) 設定は、継続的インテグレーションシステム (ビルドライフサイクルステージ) でイメージをチェックする場合にのみ適用されます。このポリシーを使用して、実行中のデプロイメント (デプロイライフサイクルステージ) またはランタイムアクティビティー (ランタイムライフサイクルステージ) をチェックする場合、効果はありません。
- Policy Criteria セクションで、ポリシーをトリガーする属性を設定します。
- パネルヘッダーで Next を選択します。
- 新しいポリシーパネルには、ポリシーを有効にした場合にトリガーされる違反のプレビューが表示されます。
- パネルヘッダーで Next を選択します。
ポリシーの適用動作を選択します。適用設定は、Lifecycle Stages オプションで選択したステージでのみ使用できます。ポリシーを適用して違反を報告するには、ON を選択します。違反のみを報告するには、OFF を選択します。
注記適用の振る舞いは、ライフサイクルの各ステージで異なります。
- Build ステージでは、イメージがポリシーの条件に一致すると、Red Hat Advanced Cluster Security for Kubernetes は CI ビルドに失敗します。
- Deploy ステージでは、Red Hat Advanced Cluster Security for Kubernetes は、ポリシーの条件に一致するデプロイの作成をブロックします。アドミッションコントローラーが適用されているクラスターでは、Kubernetes または OpenShift Container Platform サーバーがすべての非準拠のデプロイメントをブロックします。他のクラスターでは、Red Hat Advanced Cluster Security for Kubernetes が非準拠のデプロイメントを編集して、Pod がスケジュールされないようにします。
- Runtime ステージでは、Red Hat Advanced Cluster Security for Kubernetes はポリシーの条件に一致するすべての Pod を停止します。
警告ポリシーの適用は、実行中のアプリケーションまたは開発プロセスに影響を与える可能性があります。適用オプションを有効にする前に、すべての利害関係者に通知し、自動適用アクションに対応する方法を計画してください。
2.2. レジストリー統合の設定
イメージをスキャンするには、ビルドパイプラインで使用しているイメージレジストリーへのアクセスを Red Hat Advanced Cluster Security for Kubernetes に提供する必要があります。
2.2.1. 既存のレジストリー統合を確認する
RHACS ポータルを使用して、レジストリーとすでに統合されているかどうかを確認できます。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integration セクションで、強調表示された Registry タイルを探します。タイルには、そのタイルにすでに設定されているアイテムの数も表示されます。
レジストリータイルが強調表示されていない場合は、最初にイメージレジストリーと統合する必要があります。
2.2.1.1. 関連情報
2.3. アクセスの設定
Red Hat Advanced Cluster Security for Kubernetes は、コマンドラインインターフェイス (CLI) roxctl
を提供して、Red Hat Advanced Cluster Security for Kubernetes ポリシーをビルドパイプラインに簡単に統合できるようにします。roxctl
CLI は、問題に関する詳細情報とその修正方法を出力して、開発者がコンテナーライフサイクルの初期ステージで高水準を維持できるようにします。
Red Hat Advanced Cluster Security for Kubernetes API サーバーに対して安全に認証するには、API トークンを作成する必要があります。
2.3.1. API トークンのエクスポートと保存
手順
認証トークンを生成したら、次のコマンドを入力して、
ROX_API_TOKEN
変数としてエクスポートします。$ export ROX_API_TOKEN=<api_token>
(オプション): 次のコマンドを入力して、トークンをファイルに保存し、
--token-file
オプションとともに使用することもできます。$ roxctl central debug dump --token-file <token_file>
次のガイドラインに注意してください。
-
-password
(-p
) オプションと--token-file
オプションの両方を同時に使用することはできません。 -
すでに
ROX_API_TOKEN
変数を設定しており、--token-file
オプションを指定していると、roxctl
CLI は指定されたトークンファイルを認証に使用します。 -
すでに
ROX_API_TOKEN
変数を設定しており、--password
オプションを指定している場合、roxctl
CLI は指定されたパスワードを認証に使用します。
2.3.2. バイナリーをダウンロードして roxctl CLI をインストール
roxctl
CLI をインストールして、コマンドラインインターフェイスから Red Hat Advanced Cluster Security for Kubernetes と対話できます。roxctl
は、Linux、Windows、または macOS にインストールできます。
2.3.2.1. Linux への roxctl CLI のインストール
次の手順を使用して、Linux に roxctl
CLI バイナリーをインストールできます。
手順
roxctl
CLI の最新バージョンをダウンロードします。$ curl -O https://mirror.openshift.com/pub/rhacs/assets/4.1.5/bin/Linux/roxctl
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
2.3.2.2. macOS への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを macOS にインストールできます。
手順
roxctl
CLI の最新バージョンをダウンロードします。$ curl -O https://mirror.openshift.com/pub/rhacs/assets/4.1.5/bin/Darwin/roxctl
バイナリーからすべての拡張属性を削除します。
$ xattr -c roxctl
roxctl
バイナリーを実行可能にします。$ chmod +x roxctl
PATH
上にあるディレクトリーにroxctl
バイナリーを配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
2.3.2.3. Windows への roxctl CLI のインストール
次の手順を使用して、roxctl
CLI バイナリーを Windows にインストールできます。
手順
roxctl
CLI の最新バージョンをダウンロードします。$ curl -O https://mirror.openshift.com/pub/rhacs/assets/4.1.5/bin/Windows/roxctl.exe
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
2.3.3. コンテナーから roxctl CLI の実行
roxctl
クライアントは、RHACS roxctl
イメージのデフォルトエントリーポイントです。コンテナーイメージで roxctl
クライアントを実行するには、以下を行います。
前提条件
- はじめに、RHACS ポータルから認証トークンを生成している。
手順
registry.redhat.io
レジストリーにログインします。$ docker login registry.redhat.io
roxctl
CLI の最新のコンテナーイメージをプルします。$ docker pull registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.1.5
CLI をインストールしたら、次のコマンドを使用して CLI を実行できます。
$ docker run -e ROX_API_TOKEN=$ROX_API_TOKEN \ -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.1.5 \ -e $ROX_CENTRAL_ADDRESS <command>
Red Hat Advanced Cluster Security Cloud Service (RHACS Cloud Service) で、Central アドレスを必要とする roxctl
コマンドを使用する場合は、Red Hat Hybrid Cloud Console の Instance Details セクションに表示される Central インスタンスアドレス を使用します。たとえば、acs-data-ABCD12345.acs.rhcloud.com
の代わりに acs-ABCD12345.acs.rhcloud.com
を使用します。
検証
インストールした
roxctl
のバージョンを確認します。$ docker run -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.1.5 version
2.4. CI パイプラインとの統合
これらの手順を完了したら、次のステップは CI パイプラインと統合することです。
各 CI システムでは、わずかに異なる設定が必要になる場合があります。
2.4.1. Jenkins の使用
StackRox Container Image Scanner Jenkins プラグインを使用して、Jenkins と統合します。このプラグインは、Jenkins フリースタイルプロジェクトとパイプラインの両方で使用できます。
2.4.2. CircleCI の使用
Red Hat Advanced Cluster Security for Kubernetes を CircleCI と統合できます。
前提条件
-
Image
リソースのread
とwrite
権限を持つトークンがある。 - Docker Hub アカウントのユーザー名とパスワードがある。
手順
- CircleCI にログインして、既存のプロジェクトを開くか、新しいプロジェクトを作成します。
- Project Settings をクリックします。
- Environment variables をクリックします。
変数の Add variable をクリックして、次の 3 つの環境変数を作成します。
- Name: STACKROX_CENTRAL_HOST - Central の DNS 名または IP アドレス。
- Name: ROX_API_TOKEN - Red Hat Advanced Cluster Security for Kubernetes にアクセスするための API トークン。
- Name: DOCKERHUB_PASSWORD - Docker Hub アカウントのパスワード。
- Name: DOCKERHUB_USER - Docker Hub アカウントのユーザー名。
-
CircleCI 設定ファイルがまだない場合は、選択したプロジェクトのローカルコードリポジトリーのルートディレクトリーに
.circleci
というディレクトリーを作成します。 .circleci
ディレクトリーの次の行にconfig.yml
設定ファイルを作成します。version: 2 jobs: check-policy-compliance: docker: - image: 'circleci/node:latest' auth: username: $DOCKERHUB_USER password: $DOCKERHUB_PASSWORD steps: - checkout - run: name: Install roxctl command: | curl -H "Authorization: Bearer $ROX_API_TOKEN" https://$STACKROX_CENTRAL_HOST:443/api/cli/download/roxctl-linux -o roxctl && chmod +x ./roxctl - run: name: Scan images for policy deviations and vulnerabilities command: | ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_registry/repo/image_name>" 1 - run: name: Scan deployment files for policy deviations command: | ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_deployment_file>" 2 # Important note: This step assumes the YAML file you'd like to test is located in the project. workflows: version: 2 build_and_test: jobs: - check-policy-compliance
注記リポジトリーに CircleCI の
config.yml
ファイルがすでにある場合は、既存の設定ファイルに指定された詳細を含む新しいジョブセクションを追加します。- 設定ファイルをリポジトリーにコミットした後、CircleCI ダッシュボードの Jobs キューに移動して、ビルドポリシーの適用を確認します。
第3章 PagerDuty との統合
PagerDuty を使用している場合は、Red Hat Advanced Cluster Security for Kubernetes から PagerDuty にアラートを転送できます。
次の手順は、Red Hat Advanced Cluster Security for Kubernetes を PagerDuty と統合するための高レベルのワークフローを表しています。
- PagerDuty に新しい API サービスを追加し、統合キーを取得します。
- 統合キーを使用して、Red Hat Advanced Cluster Security for Kubernetes で通知を設定します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
3.1. PagerDuty の設定
新しいサービスを作成し、統合キーを取得して、PagerDuty との統合を開始します。
手順
- Configuration → Services に移動します。
- Add Services を選択します。
- General Settings で、Name と Description を指定します。
- Integration Setting の Integration Type ドロップダウンメニューで Events v2 API を選択した状態で、Use our API Directly をクリックします。
- Incident Settings で、Escalation Policy を選択し、通知設定とインシデントタイムアウトを設定します。
- Incident Behavior と Alert Grouping のデフォルト設定を受け入れるか、必要に応じて設定します。
- Add Service をクリックします。
- Service Details ページで、Integration Key をメモします。
3.2. Red Hat Advanced Cluster Security for Kubernetes の設定
統合キーを使用して、Red Hat Advanced Cluster Security for Kubernetes に新しい統合を作成します。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションまで下にスクロールして、PagerDuty を選択します。
-
New Integration (
add
アイコン) をクリックします。 - Integration Name の名前を入力します。
- PagerDuty integration key フィールドに統合キーを入力します。
-
Test (
checkmark
アイコン) をクリックして、PagerDuty との統合が機能していることを確認します。 -
Create (
save
アイコン) をクリックして、設定を作成します。
3.3. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、PagerDuty notifier を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
第4章 Slack との統合
Slack を使用している場合は、Red Hat Advanced Cluster Security for Kubernetes から Slack にアラートを転送できます。
次の手順は、Red Hat Advanced Cluster Security for Kubernetes を Slack と統合するための高レベルのワークフローを表しています。
- 新しい Slack アプリを作成し、受信 Webhook を有効にして、WebhookURL を取得します。
- Webhook URL を使用して、Slack を Red Hat Advanced Cluster Security for Kubernetes と統合します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
4.1. Slack の設定
新しい Slack アプリケーションを作成することから始めて、Webhook の URL を取得します。
前提条件
- Webhook を作成するには、管理者アカウントまたは権限を持つユーザーアカウントが必要。
手順
新しい Slack アプリケーションを作成します。
注記既存の Slack アプリケーションを使用する場合は、https://api.slack.com/apps にアクセスしてアプリケーションを選択してください。
- https://api.slack.com/apps/new に移動します。
- App Name を入力し、Development Slack Workspace を選択してアプリケーションをインストールします。
- Create App をクリックします。
- 設定ページの Basic Information セクションで、Incoming Webhooks を選択します (Add features and functionality の下)。
- Activate Incoming Webhooks トグルをオンにします。
- Add New Webhook to Workspace 選択します。
- アプリケーションが投稿する channel を選択し、Authorize を選択します。ページが更新され、アプリケーションの設定ページに戻ります。
- Webhook URLs for Your Workspace セクションにある Webhook URL をコピーします。
詳細は、Slack ドキュメントのトピック 受信 Webhook の開始 を参照してください。
4.1.1. さまざまな Slack チャネルにアラートを送信する
さまざまな Slack チャネルに通知を送信して、適切なチームに直接送信されるように、Red Hat Advanced Cluster Security for Kubernetes を設定できます。
手順
受信 Webhook を設定した後、デプロイメント YAML ファイルに次のようなアノテーションを追加します。
example.com/slack-webhook: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
-
Red Hat Advanced Cluster Security for Kubernetes を設定するときは、Label/Annotation Key For Slack Webhook フィールドでアノテーションキー
example.com/slack-webhook
を使用します。
設定が完了した後、デプロイメントに YAML ファイルで設定したアノテーションが含まれている場合、Red Hat Advanced Cluster Security for Kubernetes はそのアノテーションに指定した Webhook URL にアラートを送信します。それ以外の場合は、デフォルトの Webhook URL にアラートを送信します。
4.2. Red Hat Advanced Cluster Security for Kubernetes の設定
Webhook URL を使用して、Red Hat Advanced Cluster Security for Kubernetes に新しい統合を作成します。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションまで下にスクロールして、Slack を選択します。
-
New Integration (
add
アイコン) をクリックします。 - Integration Name の名前を入力します。
- 生成された Webhook URL を Default Slack Webhook フィールドに入力します。
-
Test (
checkmark
アイコン) を選択して、Slack との統合が機能していることをテストします。 -
Create (
save
アイコン) を選択して、設定を作成します。
4.3. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、Slack notifier を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
第5章 一般的な Webhook を使用した統合
Red Hat Advanced Cluster Security for Kubernetes を使用すると、アラート通知を JSON メッセージとして任意の Webhook レシーバーに送信できます。違反が発生すると、Red Hat Advanced Cluster Security for Kubernetes は設定された URL に対して HTTP POST リクエストを行います。POST リクエストの本文には、アラートに関する JSON 形式の情報が含まれています。
次の例に示すように、Webhook POST リクエストの JSON データには、v1.Alert
オブジェクトと設定したカスタムフィールドが含まれます。
{ "alert": { "id": "<id>", "time": "<timestamp>", "policy": { "name": "<name>", ... }, ... }, "<custom_field_1>": "<custom_value_1>" }
複数の Webhook を作成できます。たとえば、すべての監査ログを受信するための 1 つの Webhook と、アラート通知のための別の Webhook を作成できます。
Red Hat Advanced Cluster Security for Kubernetes から任意の Webhook レシーバーにアラートを転送するには:
- アラートを受信するための Webhook URL を設定します。
- Webhook URL を使用して、Red Hat Advanced Cluster Security for Kubernetes で通知を設定します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
5.1. Webhook を使用した統合の設定
Webhook URL を使用して、Red Hat Advanced Cluster Security for Kubernetes に新しい統合を作成します。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションまでスクロールダウンし、Generic Webhook を選択します。
- New integration をクリックします。
- Integration name の名前を入力します。
- Endpoint フィールドに Webhook の URL を入力します。
Webhook レシーバーが信頼できない証明書を使用している場合は、CA certificate フィールドに CA 証明書を入力します。それ以外の場合は、空白のままにします。
注記Webhook レシーバーが使用するサーバー証明書は、エンドポイント DNS 名に対して有効である必要があります。Skip TLS verification をクリックして、この検証を無視できます。Red Hat は、TLS 検証をオフにすることを推奨していません。TLS 検証がないと、意図しない受信者によってデータが傍受される可能性があります。
オプション: Enable audit logging をクリックして、Red Hat Advanced Cluster Security for Kubernetes で行われたすべての変更に関するアラートを受信します。
注記Red Hat は、アラートと監査ログに別々の Webhook を使用して、これらのメッセージを異なる方法で処理することを提案しています。
Webhook レシーバーで認証するには、次のいずれかの詳細を入力します。
- 基本 HTTP 認証の ユーザー名 と パスワード
-
カスタム ヘッダー、例:
Authorization: Bearer <access_token>
-
Extra fields を使用して、Red Hat Advanced Cluster Security for Kubernetes が送信する JSON オブジェクトに追加のキーと値のペアを含めます。たとえば、Webhook レシーバーが複数のソースからのオブジェクトを受け入れる場合、追加フィールドとして
"source": "rhacs"
を追加し、この値でフィルター処理して、Red Hat Advanced Cluster Security for Kubernetes からのすべてのアラートを識別できます。 - Test を選択してテストメッセージを送信し、一般的な Webhook との統合が機能していることを確認します。
- Save を選択して設定を作成します。
5.2. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、webhook notifier を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
第6章 QRadar との統合
RHACS で汎用 Webhook 統合を設定することにより、QRadar にイベントを送信するように Red Hat Advanced Cluster Security for Kubernetes を設定できます。
以下のステップは、RHACS を QRadar と統合するための大まかなワークフローを表しています。
RHACS では:
汎用 Webhook を設定します。
注記RHACS で統合を設定するときは、Endpoint フィールドで、次の例をガイドとして使用します:
<URL to QRadar Box>:<Port of Integration>
。- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
- QRadar がログソースを自動的に検出しない場合は、QRadar コンソールに RHACS ログソースを追加します。QRadar および RHACS の設定について詳しくは、Red Hat Advanced Cluster Security for Kubernetes IBM リソースを参照してください。
6.1. Webhook を使用した統合の設定
Webhook URL を使用して、Red Hat Advanced Cluster Security for Kubernetes に新しい統合を作成します。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションまでスクロールダウンし、Generic Webhook を選択します。
- New integration をクリックします。
- Integration name の名前を入力します。
- Endpoint フィールドに Webhook の URL を入力します。
Webhook レシーバーが信頼できない証明書を使用している場合は、CA certificate フィールドに CA 証明書を入力します。それ以外の場合は、空白のままにします。
注記Webhook レシーバーが使用するサーバー証明書は、エンドポイント DNS 名に対して有効である必要があります。Skip TLS verification をクリックして、この検証を無視できます。Red Hat は、TLS 検証をオフにすることを推奨していません。TLS 検証がないと、意図しない受信者によってデータが傍受される可能性があります。
オプション: Enable audit logging をクリックして、Red Hat Advanced Cluster Security for Kubernetes で行われたすべての変更に関するアラートを受信します。
注記Red Hat は、アラートと監査ログに別々の Webhook を使用して、これらのメッセージを異なる方法で処理することを提案しています。
Webhook レシーバーで認証するには、次のいずれかの詳細を入力します。
- 基本 HTTP 認証の ユーザー名 と パスワード
-
カスタム ヘッダー、例:
Authorization: Bearer <access_token>
-
Extra fields を使用して、Red Hat Advanced Cluster Security for Kubernetes が送信する JSON オブジェクトに追加のキーと値のペアを含めます。たとえば、Webhook レシーバーが複数のソースからのオブジェクトを受け入れる場合、追加フィールドとして
"source": "rhacs"
を追加し、この値でフィルター処理して、Red Hat Advanced Cluster Security for Kubernetes からのすべてのアラートを識別できます。 - Test を選択してテストメッセージを送信し、一般的な Webhook との統合が機能していることを確認します。
- Save を選択して設定を作成します。
6.2. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、webhook notifier を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
第7章 ServiceNow との統合
RHACS で汎用 Webhook 統合を設定することにより、イベントを ServiceNow に送信するように Red Hat Advanced Cluster Security for Kubernetes を設定できます。
次の手順は、RHACS を ServiceNow と統合するための高レベルのワークフローを表しています。
- ServiceNow で、RHACS で使用する REST API エンドポイントを設定します。ServiceNow 設定の手順を含む詳細については、Red Hat Advanced Cluster Security for Kubernetes と ServiceNow を統合する方法 を参照してください。
RHACS では:
- 汎用 Webhook を設定します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
7.1. Webhook を使用した統合の設定
Webhook URL を使用して、Red Hat Advanced Cluster Security for Kubernetes に新しい統合を作成します。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションまでスクロールダウンし、Generic Webhook を選択します。
- New integration をクリックします。
- Integration name の名前を入力します。
- Endpoint フィールドに Webhook の URL を入力します。
Webhook レシーバーが信頼できない証明書を使用している場合は、CA certificate フィールドに CA 証明書を入力します。それ以外の場合は、空白のままにします。
注記Webhook レシーバーが使用するサーバー証明書は、エンドポイント DNS 名に対して有効である必要があります。Skip TLS verification をクリックして、この検証を無視できます。Red Hat は、TLS 検証をオフにすることを推奨していません。TLS 検証がないと、意図しない受信者によってデータが傍受される可能性があります。
オプション: Enable audit logging をクリックして、Red Hat Advanced Cluster Security for Kubernetes で行われたすべての変更に関するアラートを受信します。
注記Red Hat は、アラートと監査ログに別々の Webhook を使用して、これらのメッセージを異なる方法で処理することを提案しています。
Webhook レシーバーで認証するには、次のいずれかの詳細を入力します。
- 基本 HTTP 認証の ユーザー名 と パスワード
-
カスタム ヘッダー、例:
Authorization: Bearer <access_token>
-
Extra fields を使用して、Red Hat Advanced Cluster Security for Kubernetes が送信する JSON オブジェクトに追加のキーと値のペアを含めます。たとえば、Webhook レシーバーが複数のソースからのオブジェクトを受け入れる場合、追加フィールドとして
"source": "rhacs"
を追加し、この値でフィルター処理して、Red Hat Advanced Cluster Security for Kubernetes からのすべてのアラートを識別できます。 - Test を選択してテストメッセージを送信し、一般的な Webhook との統合が機能していることを確認します。
- Save を選択して設定を作成します。
7.2. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、webhook notifier を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
第8章 Sumo Logic との統合
Sumo Logic を使用している場合は、Red Hat Advanced Cluster Security for Kubernetes から Sumo Logic にアラートを転送できます。
次の手順は、Red Hat Advanced Cluster Security for Kubernetes を Sumo Logic と統合するための高レベルのワークフローを表しています。
- Sumo Logic に新しいカスタムアプリケーションを追加し、HTTP ソースを設定して、HTTP URL を取得します。
- HTTP URL を使用して、Sumo Logic を Red Hat Advanced Cluster Security for Kubernetes と統合します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
8.1. Sumo Logic の設定
Setup Wizard を使用して、Streaming Data を設定し、HTTP URL を取得します。
手順
- Sumo Logic ホームページにログインし、Setup Wizard を選択します。
- カーソルを Set Up Streaming Data に移動し、Get Started を選択します。
- データ型の選択ページで、Your Custom App を選択します。
- コレクションの設定ページで、HTTP Source を選択します。
-
Source Category の名前 (たとえば、
rhacs
) を入力し、Continue をクリックします。 - 生成された URL を Copy します。
8.2. Red Hat Advanced Cluster Security for Kubernetes の設定
HTTP URL を使用して、Red Hat Advanced Cluster Security for Kubernetes に新しい統合を作成します。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションまで下にスクロールして、Sumo Logic を選択します。
-
New Integration (
add
アイコン) をクリックします。 - Integration Name の名前を入力します。
- 生成された HTTP URL を HTTP Collector Source Address フィールドに入力します。
-
Test (
checkmark
アイコン) をクリックして、Sumo Logic との統合が機能していることをテストします。 -
Create (
save
アイコン) をクリックして、設定を作成します。
8.3. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、Sumo Logic notifier を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
8.4. Sumo Logic でアラートを表示する
Sumo Logic で Kubernetes の Red Hat からのアラートを表示できます。
- Sumo Logic ホームページにログインし、Log Search をクリックします。
-
検索ボックスに
_sourceCategory=rhacs
と入力します。Sumo Logic の設定時に入力したものと同じ Source Category 名を使用してください。 - 時間を選択し、Start をクリックします。
第9章 Google Cloud Storage との統合
Google Cloud Storage (GCS) と統合して、データのバックアップを有効にすることができます。これらのバックアップは、インフラストラクチャー障害やデータ破損が発生した場合のデータ復元に使用できます。GCS と統合した後、毎日または毎週のバックアップをスケジュールし、手動のオンデマンドバックアップを実行できます。
バックアップには、Red Hat Advanced Cluster Security for Kubernetes データベース全体が含まれます。これには、すべての設定、リソース、イベント、および証明書が含まれます。バックアップがセキュアに保存されていることを確認してください。
バージョン 3.0.53 以前の Red Hat Advanced Cluster Security for Kubernetes を使用している場合は、バックアップに証明書が含まれていません。
9.1. Red Hat Advanced Cluster Security for Kubernetes の設定
Google Cloud Storage (GCS) でデータバックアップを設定するには、Red Hat Advanced Cluster Security for Kubernetes に統合を作成します。
前提条件
- 既存の bucket。新しいバケットを作成するには、Google Cloud Storage の公式ドキュメントトピック Creating storage buckets を参照。
-
使用するストレージバケットに
Storage Object Admin
IAM ロールを持つ service account。Google Cloud Storage の公式ドキュメントトピック Using Cloud IAM permissions を参照。 - 使用しているサービスアカウントの サービスアカウントキーファイル (JSON)。GoogleCloud の公式ドキュメントトピック Creating a service account と Creating service account keys を参照。
現在、Red Hat Advanced Cluster Security for Kubernetes は、Workload Identity を使用した GCS への認証をサポートしていない。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- External backups セクションまで下にスクロールして、Google Cloud Storage を選択します。
-
New Integration (
add
アイコン) をクリックします。 - Integration Name の名前を入力します。
- Backups To Retain ボックスに、保持するバックアップの数を入力します。
- Schedule で、バックアップの頻度 (毎日または毎週) とバックアッププロセスを実行する時間を選択します。
- バックアップを保存する Bucket 名を入力します。
- Service Account JSON フィールドに、サービスアカウントのキーファイルのコンテンツを入力します。
-
Test (
checkmark
アイコン) を選択して、GCS との統合が機能していることを確認します。 -
Create (
save
アイコン) を選択して、設定を作成します。
設定が完了すると、Red Hat Advanced Cluster Security for Kubernetes は、指定されたスケジュールに従ってすべてのデータを自動的にバックアップします。
9.1.1. Google Cloud Storage でオンデマンドバックアップを実行する
RHACS ポータルを使用して、Google Cloud Storage 上の Red Hat Advanced Cluster Security for Kubernetes の手動バックアップをトリガーします。
前提条件
- Red Hat Advanced Cluster Security for Kubernetes を Google Cloud Storage にすでに統合している必要があります。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- External backups セクションで、Google Cloud Storage をクリックします。
- バックアップを実行する GCS バケットの統合名を選択します。
- Trigger Backup をクリックします。
現在、Trigger Backup オプションを選択しても、通知はありません。ただし、Red Hat Advanced Cluster Security for Kubernetes は、バックグラウンドでバックアップタスクを開始します。
9.1.1.1. 関連情報
第10章 syslog プロトコルを使用した統合
Syslog は、データ保持とセキュリティー調査のために、アプリケーションが SIEM や syslog コレクターなどの Central の場所にメッセージを送信するために使用するイベントログプロトコルです。Red Hat Advanced Cluster Security for Kubernetes を使用すると、syslog プロトコルを使用してアラートと監査イベントを送信できます。
- syslog プロトコルを使用してイベントを転送するには、Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.52 以降が必要です。
- syslog 統合を使用する場合、Red Hat Advanced Cluster Security for Kubernetes は、設定した違反アラートとすべての監査イベントの両方を転送します。
- 現在、Red Hat Advanced Cluster Security for Kubernetes は CEF (共通イベント形式) のみをサポートしています。
次の手順は、Red Hat Advanced Cluster Security for Kubernetes を syslog イベントレシーバーと統合するための高レベルのワークフローを表しています。
- アラートを受信するように syslog イベントレシーバーを設定します。
- レシーバーのアドレスとポート番号を使用して、Red Hat Advanced Cluster Security for Kubernetes で通知を設定します。
設定後、Red Hat Advanced Cluster Security for Kubernetes は、設定された syslog レシーバーにすべての違反と監査イベントを自動的に送信します。
10.1. Red Hat Advanced Cluster Security for Kub との syslog 統合の設定
Red Hat Advanced Cluster Security for Kubernetes (RHACS) で新しい syslog 統合を作成します。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションまでスクロールダウンし、Syslog を選択します。
- New Integration (add アイコン) をクリックします。
- Integration Name の名前を入力します。
-
Logging Facility の値を
local0
からlocal7
まで選択します。 - Receiver Host アドレスと Receiver Port 番号を入力します。
- TLS を使用している場合は、Use TLS トグルをオンにします。
- 信頼されていない証明書を使用している syslog レシーバーの場合は、Disable TLS Certificate Validation (Insecure) トグルをオンにします。それ以外の場合は、このトグルをオフのままにします。
Add new extra field をクリックして、追加フィールドを追加します。たとえば、syslog レシーバーが複数のソースからオブジェクトを受け入れる場合は、Key フィールドと Value フィールドに
source
とrhacs
を入力します。syslog レシーバーのカスタム値を使用してフィルタリングし、RHACS からのすべてのアラートを識別できます。
-
Test (
checkmark
アイコン) を選択してテストメッセージを送信し、汎用 Webhook との統合が機能していることを確認します。 -
Create (
save
アイコン) を選択して、設定を作成します。
第11章 Amazon S3 との統合
Red Hat Advanced Cluster Security for Kubernetes を Amazon S3 と統合して、データのバックアップを有効にすることができます。これらのバックアップは、インフラストラクチャーの災害やデータの破損が発生した場合のデータの復元に使用できます。Amazon S3 と統合した後、毎日または毎週のバックアップをスケジュールし、手動のオンデマンドバックアップを実行できます。
バックアップには、Red Hat Advanced Cluster Security for Kubernetes データベース全体が含まれます。これには、すべての設定、リソース、イベント、および証明書が含まれます。バックアップがセキュアに保存されていることを確認してください。
- バージョン 3.0.53 以前の Red Hat Advanced Cluster Security for Kubernetes を使用している場合は、バックアップに証明書が含まれていません。
- Amazon S3 がエアギャップ環境の一部である場合は、AWS ルート CA を Red Hat Advanced Cluster Security for Kubernetes の 信頼できる認証局 として追加する必要があります。
11.1. Red HatAdvanced Cluster Security for Kubernetes で Amazon S3 統合を設します。
Amazon S3 バックアップを設定するには、Red Hat Advanced Cluster Security for Kubernetes に新しい統合を作成します。
前提条件
- 既存の S3 バケット。必要な権限を持つ新しいバケットを作成するには、Amazon のドキュメントトピック Creating a bucket を参照。
-
S3 バケット、Access key ID、および Secret access key の
Read
、write
、およびdelete
の権限。 -
KIAM、kube2iam、または別のプロキシーを使用している場合は、
read
、write
、およびdelete
の権限を持つ IAM role。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- External backups セクションまで下にスクロールして、Amazon S3 を選択します。
-
New Integration (
add
アイコン) をクリックします。 - Integration Name の名前を入力します。
- Backups To Retain ボックスに、保持するバックアップの数を入力します。
- Schedule で、バックアップの頻度を日次または週次として選択し、バックアッププロセスを実行する時間を選択します。
- バックアップを保存する Bucket 名を入力します。
- バックアップを特定のフォルダー構造に保存する場合は、必要に応じて Object Prefix を入力します。詳細は、Amazon ドキュメントのトピック オブジェクトメタデータの操作 を参照してください。
- 非公開の S3 インスタンスを使用している場合は、バケットの Endpoint を入力します。それ以外の場合は、空白のままにします。
- バケットの Region を入力します。
- Use Container IAM Role トグルをオンにするか、Access Key ID と Secret Access Key を入力します。
-
Test (
checkmark
アイコン) を選択して、AmazonS3 との統合が機能していることを確認します。 -
Create (
save
アイコン) を選択して、設定を作成します。
設定が完了すると、Red Hat Advanced Cluster Security for Kubernetes は、指定されたスケジュールに従ってすべてのデータを自動的にバックアップします。
11.2. Amazon S3 でのオンデマンドバックアップの実行
RHACS ポータルを使用して、Amazon S3 上の Red Hat Advanced Cluster Security for Kubernetes の手動バックアップをトリガーします。
前提条件
- Red Hat Advanced Cluster Security for Kubernetes を Amazon S3 にすでに統合している必要があります。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- External backups セクションで、AmazonS3 をクリックします。
- バックアップを実行する S3 バケットの統合名を選択します。
- Trigger Backup をクリックします。
現在、Trigger Backup オプションを選択しても、通知はありません。ただし、Red Hat Advanced Cluster Security for Kubernetes は、バックグラウンドでバックアップタスクを開始します。
11.3. 関連情報
第12章 Google Cloud Security コマンドセンターとの統合
Google Cloud Security Command Center (Cloud SCC) を使用している場合は、Red Hat Advanced Cluster Security for Kubernetes から Cloud SCC にアラートを転送できます。このガイドでは、Red Hat Advanced Cluster Security for Kubernetes を Cloud SCC と統合する方法について説明します。
次の手順は、Red Hat Advanced Cluster Security for Kubernetes を Cloud SCC と統合するための高レベルのワークフローを表しています。
- 新しいセキュリティーソースを Google Cloud に登録します。
- Red Hat Advanced Cluster Security for Kubernetes にソース ID とサービスアカウントキーを提供します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
12.1. GoogleCloud SCC の設定
まず、信頼できるクラウド SCC ソースとして Red Hat Advanced Cluster Security for Kubernetes を追加します。
手順
- Adding vulnerability and threat sources to Cloud Security Command Center ガイドに従い、Red Hat Advanced Cluster Security for Kubernetes を信頼できるクラウド SCC ソースとして追加します。Red HatAdvanced Cluster Security for Kubernetes の統合のために Google Cloud が作成する Source ID をメモしておきます。登録後にソース ID が表示されない場合は、Cloud SCC Security Sources page で確認できます。
- 前の手順で作成したサービスアカウント、または使用した既存のアカウントのキーを作成します。詳細については creating and managing service account keys Google Cloud のガイドを参照してください。
12.2. Google Cloud SCC と統合するための Red Hat Advanced Cluster Security for Kubernetes の設定
Source ID と service account key を使用して、Red Hat Advanced Cluster Security for Kubernetes に新しい Google Cloud SCC 統合を作成します。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションまで下にスクロールして、Google Cloud SCC を選択します。
-
New Integration (
add
アイコン) をクリックします。 - Integration Name の名前を入力します。
- Cloud SCC Source ID と Service Account Key (JSON) を入力します。
-
Create (
save
アイコン) を選択して、設定を作成します。
12.3. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、Google Cloud SCC notifier を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
第13章 Splunk との統合
Splunk を使用している場合は、Red Hat Advanced Cluster Security for Kubernetes から Splunk にアラートを転送し、Splunk 内から違反、脆弱性検出、コンプライアンス関連データを表示できます。
ユースケースに応じて、次の方法を使用して、Red Hat Advanced Cluster Security for Kubernetes を Splunk と統合できます。
Splunk で HTTP イベントコレクターを使用する 場合:
- イベントコレクターオプションを使用して、アラートと監査ログデータを転送します。
Red Hat Advanced Cluster Security for Kubernetes アドオンを使用する 場合:
- アドオンを使用して、違反、脆弱性検出、およびコンプライアンスのデータを Splunk に取り込みます。
これらの統合オプションの一方または両方を使用して、Red Hat Advanced Cluster Security for Kubernetes を Splunk と統合できます。
13.1. HTTP イベントコレクターの使用
HTTP イベントコレクターを使用して、Red Hat Advanced Cluster Security for Kubernetes から Splunk にアラートを転送できます。
HTTP イベントコレクターを使用して Red Hat Cluster Security for Kubernetes を Splunk と統合するには、次の手順に従います。
- Splunk に新しい HTTP イベントコレクターを追加し、トークン値を取得します。
- トークン値を使用して、Red Hat Advanced Cluster Security for Kubernetes で通知を設定します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
13.1.1. Splunk に HTTP イベントコレクターを追加する
Splunk インスタンスの新しい HTTP イベントコレクターを追加し、トークンを取得します。
手順
- Splunk ダッシュボードで、Settings → Add Data に移動します。
- Monitor をクリックします。
- Add Data ページで、HTTP Event Collector をクリックします。
- イベントコレクターの Name を入力し、Next > をクリックします。
- デフォルトの Input Settings を受け入れて、Review > をクリックします。
- イベントコレクターのプロパティーを確認し、Submit > をクリックします。
- イベントコレクターの Token Value をコピーします。このトークン値は、Red Hat Advanced Cluster Security for Kubernetes で Splunk との統合を設定するために必要です。
13.1.1.1. HTTP イベントコレクターの有効化
イベントを受信する前に、HTTP イベントコレクタートークンを有効にする必要があります。
手順
- Splunk ダッシュボードで、Settings → Data inputs に移動します。
- HTTP Event Collector をクリックします。
- Global Settings をクリックします。
- 開いたダイアログで、Enabled をクリックし、Save をクリックします。
13.1.2. Red Hat Advanced Cluster Security for Kubernetes での Splunk 統合の設定
トークン値を使用して、Red Hat Advanced Cluster Security for Kubernetes に新しい Splunk 統合を作成します。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションまでスクロールダウンし、Splunk を選択します。
-
New Integration (
add
アイコン) をクリックします。 - Integration Name の名前を入力します。
-
SplunkURL を HTTP Event Collector URL フィールドに入力します。HTTPS の場合は
443
、HTTP の場合は80
でない場合は、ポート番号を指定する必要があります。また、URL の最後に URL パス/services/collector/event
を追加する必要があります。たとえば、https://<splunk-server-path>:8088/services/collector/event
です。 HTTP Event Collector Token フィールドにトークンを入力します。
注記Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.57 以降を使用している場合は Source Type for Alert イベントと Source Type for Audit イベントのソースタイプを指定できます。
-
Test (
checkmark
アイコン) を選択してテストメッセージを送信し、Splunk との統合が機能していることを確認します。 -
Create (
save
アイコン) を選択して、設定を作成します。
13.1.3. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、Splunk notifier を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
13.2. Red Hat Advanced Cluster Security for Kubernetes アドオンの使用
Red Hat Advanced Cluster Security for Kubernetes アドオンを使用すると、脆弱性検出およびコンプライアンス関連のデータを Red Hat Advanced Cluster Security for Kubernetes から Splunk に転送できます。
まず、Red Hat Advanced Cluster Security for Kubernetes のすべてのリソースに対する read
権限を持つ API トークンを生成し、そのトークンを使用してアドオンをインストールおよび設定します。
13.2.1. Splunk アドオンのインストールと設定
Splunk インスタンスから Red Hat Advanced Cluster Security for Kubernetes アドオンをインストールできます。
StackRox Kubernetes Security Platform アドオンとの下位互換性を維持するために、設定された入力の source_type
パラメーターと input_type
パラメーターは引き続き stackrox_compliance
、stackrox_violations
、および stackrox_vulnerability_management
と呼ばれます。
前提条件
-
Red Hat Advanced Cluster Security for Kubernetes のすべてのリソースに対する
read
権限を持つ API トークンがある。Analyst システムロールを割り当てて、このレベルのアクセスを許可できます。Analyst ロールには、すべてのリソースに対する read 権限がある。
手順
- Red Hat Advanced Cluster Security for Kubernetes アドオンを Splunkbase からダウンロードします。
- Splunk インスタンスの Splunk ホームページに移動します。
- Apps → Manage Apps に移動します。
- Install app from file を選択します。
- Upload app ポップアップボックスで、Choose File を選択し、Red Hat Advanced Cluster Security for Kubernetes アドオンファイルを選択します。
- Upload をクリックします。
- Restart Splunk をクリックし、再起動することを確認します。
- Splunk が再起動したら、Apps メニューから Red Hat Advanced Cluster Security for Kubernetes を選択します。
Configuration に移動し、Add-on Settings をクリックします。
-
Central Endpoint には、Central インスタンスの IP アドレスまたは名前を入力します。たとえば、
central.custom:443
です。 - アドオン用に生成した API token を入力します。
- Save をクリックします。
-
Central Endpoint には、Central インスタンスの IP アドレスまたは名前を入力します。たとえば、
- Inputs に移動します。
Create New Input をクリックし、次のいずれかを選択します。
- コンプライアンスデータを取得する ACS Compliance
- 違反データを取得する ACS Violations
- 脆弱性データを取得する ACS Vulnerability Management
- 入力の Name を入力します。
- Red Hat Advanced Cluster Security for Kubernetes からデータをプルする Interval を選択します。たとえば、14400 秒ごと。
- データの送信先となる Splunk Index を選択します。
- Central Endpoint には、Central インスタンスの IP アドレスまたは名前を入力します。
- アドオン用に生成した API token を入力します。
- Add をクリックします。
検証
Red Hat Advanced Cluster Security for Kubernetes アドオンのインストールを確認するには、受信したデータをクエリーします。
-
Splunk インスタンスで、Search に移動し、クエリーに
index=* sourcetype="stackrox-*"
と入力します。 - Enter キーを押します。
-
Splunk インスタンスで、Search に移動し、クエリーに
設定したソースが検索結果に表示されることを確認します。
13.2.2. StackRox Kubernetes Security Platform アドオンの更新
StackRox Kubernetes Security Platform アドオンを使用している場合は、新しい Red Hat Advanced Cluster Security for Kubernetes アドオンにアップグレードする必要があります。
更新通知は、Splunk ホームページの左側のアプリのリストの下にあります。または、Apps → Manage apps ページに移動して更新通知を確認することもできます。
前提条件
-
Red Hat Advanced Cluster Security for Kubernetes のすべてのリソースに対する
read
権限を持つ API トークンがある。Analyst システムロールを割り当てて、このレベルのアクセスを許可できます。Analyst ロールには、すべてのリソースに対する read 権限がある。
手順
- 更新通知で Update をクリックします。
- 利用規約に同意するためのチェックボックスを選択し、Accept and Continue をクリックして更新をインストールします。
- インストール後、Apps メニューから Red Hat Advanced Cluster Security for Kubernetes を選択します。
Configuration に移動し、Add-on Settings をクリックします。
- アドオン用に生成した API token を入力します。
- Save をクリックします。
13.2.3. Splunk アドオンのトラブルシューティング
Red Hat Advanced Cluster Security for Kubernetes アドオンからのイベントの受信を停止した場合は、Splunk アドオンのデバッグログでエラーを確認してください。
Splunk は、設定された入力ごとにデバッグログファイルを /opt/splunk/var/log/splunk
ディレクトリーに作成します。stackrox_<input>_<uid>.log
という名前のファイル (たとえば、stackrox_compliance_29a3e14798aa2363d.log
) を見つけて、問題を探します。
第14章 イメージ脆弱性スキャナーとの統合
Red Hat Advanced Cluster Security for Kubernetes (RHACS) は、複数の脆弱性スキャナーと統合されているため、コンテナーイメージをインポートして、脆弱性を監視できます。
サポート対象のコンテナーイメージレジストリー
Red Hat は、次のコンテナーイメージレジストリーをサポートしています。
- Amazon Elastic Container Registry (ECR)
-
汎用 Docker レジストリー (任意の汎用 Docker または Open Container Initiative 準拠のイメージレジストリー、たとえば、DockerHub、
gcr.io
、mcr.microsoft.com
) - Google Container Registry
- Google Artifact Registry
- IBM Cloud Container Registry
- JFrog Artifactory
- Microsoft Azure Container Registry (ACR)
- Red Hat Quay
-
Red Hat レジストリー (
registry.redhat.io
、registry.access.redhat.com
) - Sonatype Nexus
この強化されたサポートにより、優先レジストリーでコンテナーイメージを管理する際の柔軟性と選択肢がさらに広がります。
サポート対象のスキャナー
次の商用コンテナーイメージ脆弱性スキャナからイメージ脆弱性データを取得するように RHACS を設定できます。
- RHACS Scanner (推奨)
- Clair
- Google コンテナー分析
- Red Hat Quay
RHACS Scanner は、RHACS で使用するのに推奨されるイメージ脆弱性スキャナーです。RHACS スキャナーを使用したコンテナーイメージのスキャンの詳細は、イメージのスキャン を参照してください。
これらの製品のいずれかを DevOps ワークフローで使用する場合は、RHACS ポータルを使用して、脆弱性スキャナーとの統合を設定できます。統合後、RHACS ポータルにイメージの脆弱性が表示されるため、簡単にトリアージできます。
14.1. Clair との統合
イメージの脆弱性を静的に分析するために、Red Hat Advanced Cluster Security for Kubernetes を Clair と統合できます。
- RHACS 3.74 では、Clair V4 Scanner と統合できます。Red Hat は、Clair v4 統合を優先して、以前の CoreOS Clair 統合を非推奨にしました。
- 次の RHACS 4.0 リリースでは、Clair V4 統合の JWT ベースの認証 オプションをサポートする予定はありません。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで、Clair v4 を選択します。
- New integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration name: インテグレーションの名前。
- Endpoint: スキャナーのアドレス。
- オプション: レジストリーへの接続時に TLS 証明書を使用していない場合は、Disable TLS certificate validation (insecure) を選択します。
- (オプション) Test をクリックして、選択したレジストリーとの統合が機能していることをテストします。
- Save をクリックします。
14.2. Google Container Registry との統合
コンテナー分析と脆弱性スキャンのために、Red Hat Advanced Cluster Security for Kubernetes を Google Container Registry (GCR) と統合できます。
前提条件
- Google Container Registry のサービスアカウントキーが必要。
- 関連付けられたサービスアカウントは、レジストリーにアクセスできる。ユーザーおよび他のプロジェクトに GCR へのアクセスを許可する方法は、Configuring access control を参照してください。
GCR Container Analysis を使用している場合は、サービスアカウントに次のロールを付与しています。
- コンテナー分析ノートビューアー
- コンテナー分析発生状況ビューアー
- ストレージオブジェクトビューアー
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
Image Integrations セクションで、Google Container Registry を選択します。
Configure image integration ボックスが開きます。
- New Integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration Name: 統合の名前。
- Types: Scanner を選択します。
- Registry Endpoint: レジストリーのアドレス。
- Project: Google Cloud プロジェクト名。
- Service Account Key (JSON) 認証用のサービスアカウントキー。
-
Test (
checkmark
アイコン) を選択して、選択したレジストリーとの統合が機能していることをテストします。 -
Create (
save
アイコン) を選択して、設定を作成します。
14.3. イメージをスキャンするための Quay Container Registry との統合
イメージをスキャンするために、Red Hat Advanced Cluster Security for Kubernetes を Quay Container Registry と統合できます。
前提条件
- イメージをスキャンするには、Quay Container Registry で認証するための OAuth トークンが必要です。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで Red Hat Quay.io を選択します。
- New integration をクリックします。
- Integration name を入力します。
Type で、Scanner を選択します。(レジストリーとも統合する場合は、Scanner + Registry を選択します。) 以下のフィールドに情報を入力します。
- Endpoint: レジストリーのアドレスを入力します。
- OAuth token: RHACS が API を使用して認証するために使用する OAuth トークンを入力します。
-
オプション: Robot username: Scanner + Registry を設定しており、Quay ロボットアカウントを使用してレジストリーにアクセスしている場合は、
<namespace>+<accountname>
の形式でユーザー名を入力します。 - オプション: Robot password: Scanner + Registry を設定していて、Quay ロボットアカウントを使用してレジストリーにアクセスしている場合は、ロボットアカウントのユーザー名のパスワードを入力します。
- オプション: レジストリーへの接続時に TLS 証明書を使用していない場合は、Disable TLS certificate validation (insecure) を選択します。
- オプション: テストを行わずにインテグレーションを作成するには、Create integration without testing を選択します。
- Save を選択します。
Quay インテグレーションを編集しているが資格情報を更新したくない場合は、Update stored credentials が選択されていないことを確認します。
第15章 Jira との統合
Jira を使用している場合は、Red Hat Advanced Cluster Security for Kubernetes から Jira にアラートを転送できます。
次の手順は、Red Hat Advanced Cluster Security for Kubernetes を Jira と統合するための高レベルのワークフローを表しています。
- Jira でユーザーを設定します。
- Jira の URL、ユーザー名、パスワードを使用して、Jira を Red Hat Advanced Cluster Security for Kubernetes と統合します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
15.1. Jira の設定
新しいユーザーを作成することから始め、適切なロールと権限を割り当てます。
前提条件
- 統合するプロジェクトで課題を作成および編集するための権限を持つ Jira アカウントが必要。
手順
問題を作成するプロジェクトにアクセスできるユーザーを Jira に作成します。
- 新しいユーザーを作成するには、Jira ドキュメントトピックの Create, edit, or remove a user を参照してください。
ユーザーにプロジェクトのロールとアプリケーションへのアクセスを許可するには、Jira ドキュメントトピックの Assign users to groups, project roles, and applications を参照してください。
注記Jira Software Cloud を使用している場合は、ユーザーを作成した後、ユーザーのトークンを作成する必要があります。
- https://id.atlassian.com/manage/api-tokens にアクセスして、新しいトークンを生成します。
- Kubernetes の Red Hat Cluster Security を設定するときは、トークンをパスワードとして使用してください。
15.2. Red Hat Advanced Cluster Security for Kubernetes の設定
Jira サーバーの URL とユーザーのクレデンシャルを使用して、Red Hat Advanced Cluster Security for Kubernetes に新しい統合を作成します。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションまでスクロールダウンし、Jira Software を選択します。
- New Integration をクリックします。
- Integration Name の名前を入力します。
- Username ボックスと Password or API Token ボックスにユーザーのクレデンシャルを入力します。
- Issue Type に、有効な Jira Issue Type (Task、Sub-task、Bug など) を入力します。
- Jira URL ボックスに Jira サーバーの URL を入力します。
- 問題を作成するプロジェクトのキーを Default Project ボックスに入力します。
- Annotation Key For Project ボックスを使用して、さまざまな Jira プロジェクトで課題を作成します。
- Jira プロジェクトでカスタムプライオリティーを使用する場合は、Priority Mapping トグルを使用してカスタムプライオリティーを設定します。
JIRA プロジェクトで必須のカスタムフィールドを使用する場合は、Default Fields JSON (Necessary If Required Fields) ボックスに JSON 値として入力します。以下に例を示します。
{ "customfield_10004": 3, "customfield_20005": "Alerts", }
-
Test (
checkmark
アイコン) を選択して、Jira との統合が機能していることをテストします。 -
Create (
save
アイコン) を選択して、設定を作成します。
15.2.1. さまざまな Jira プロジェクトで問題を作成する
Red Hat Advanced Cluster Security for Kubernetes を設定して、さまざまな Jira プロジェクトで問題を作成し、適切なチームに直接移動できるようにすることができます。
前提条件
- アラートを送信する各プロジェクトにアクセスできるアカウントが必要。
手順
デプロイ YAML ファイルに次のようなアノテーションを追加します。
jira/project-key: <jira_project_key>
-
Red Hat Advanced Cluster Security for KubernetesCluster Security を設定するときは、Annotation Key For Project フィールドでアノテーションキー
jira/project-key
を使用します。
設定が完了した後、デプロイメントの YAML ファイルにアノテーションが含まれている場合、Red Hat Advanced Cluster Security for Kubernetes はそのアノテーションに指定されたプロジェクトにアラートを送信します。それ以外の場合は、アラートがデフォルトのプロジェクトに送信されます。
15.2.2. Jira でのカスタムプライオリティーの設定
Jira プロジェクトでカスタムプライオリティーを使用している場合は、Red Hat Advanced Cluster Security for Kubernetes でそれらを設定できます。
手順
- Red Hat Advanced Cluster Security for Kubernetes で Jira 統合を設定しているときに、Priority Mapping トグルをオンにします。Red Hat Advanced Cluster Security for Kubernetes は JIRA プロジェクトスキーマを取得し、CRITICAL_SEVERITY、HIGH_SEVERITY、MEDIUM_SEVERITY、および LOW_SEVERITY フィールドの値を自動入力します。
- JIRA プロジェクト設定に基づいて、プライオリティーの値を確認または更新します。
-
Test (
checkmark
アイコン) を選択して、Jira との統合が機能していることをテストします。 -
Create (
save
アイコン) を選択して、設定を作成します。
エラーが発生した場合は、Jira 統合のトラブルシューティング セクションの指示に従ってください。
15.3. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、Jira notifier を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
15.4. Jira 統合のトラブルシューティング
Jira プロジェクトでカスタムプライオリティーまたは必須のカスタムフィールドを使用している場合、Red Hat Advanced Cluster Security for Kubernetes を Jira Software と統合しようとするとエラーが発生する可能性があります。このエラーは、重大度と優先度フィールドの値が一致していないことが原因である可能性があります。
JIRA プロジェクトのカスタムプライオリティーの値がわからない場合は、roxctl
CLI を使用して JIRA 統合のデバッグログを有効にします。
手順
JIRA プロジェクトからカスタムプライオリティーの値を取得するには、次のコマンドを実行して、JIRA 統合のデバッグログをオンにします。
$ roxctl -e "$ROX_CENTRAL_ADDRESS" central debug log --level Debug --modules notifiers/jira
- 指示に従って、Jira 統合用の Red Hat Advanced Cluster Security for Kubernetes を設定します。統合をテストすると、統合テストが失敗した場合でも、生成されたログには JIRA プロジェクトスキーマとカスタムプライオリティーが含まれます。
デバッグ情報を圧縮された
.zip
ファイルとして保存するには、次のコマンドを実行します。$ roxctl -e "$ROX_CENTRAL_ADDRESS" central debug dump
-
.zip
ファイルを解凍して、JIRA プロジェクトで使用されているカスタムプライオリティーの値を取得します。 デバッグログをオフにするには、次のコマンドを実行します。
$ roxctl -e "$ROX_CENTRAL_ADDRESS" central debug log --level Info
- Jira 統合のために Red Hat Advanced Cluster Security for Kubernetes を再度設定し、プライオリティーの値を使用してカスタムプライオリティーを設定します。
第16章 メールとの統合
ポリシー違反に関するアラートを標準のメールプロバイダーに送信するように Red Hat Advanced Cluster Security for Kubernetes (RHACS) を設定します。
RHACS から標準のメールプロバイダーにアラートを転送することにより、通知方法としてメールを使用できます。RHACS プラットフォームからメールアドレスにアラートを転送するには、Default Recipient
フィールドを使用して標準の中央チームにメールを送信するか、デプロイメントアノテーションを使用して通知の対象者を指定します。
アノテーションキーを使用して、デプロイメントまたは namespace に関連付けられているポリシー違反について通知するオーディエンスを定義できます。デプロイメントにアノテーションがある場合、アノテーションの値がデフォルト値をオーバーライドします。namespace にアノテーションがある場合、namespace の値がデフォルト値を上書きします。
- デプロイメントにアノテーションキーと定義されたオーディエンスがある場合、キーによって定義されたオーディエンスにメールが送信されます。
- デプロイメントにアノテーションキーがない場合、namespace でアノテーションキーがチェックされ、定義されたオーディエンスにメールが送信されます。
- アノテーションキーが存在しない場合、インテグレーションで定義されているデフォルトの受信者にメールが送信されます。
16.1. メールプラグインの設定
RHACS 通知機能は、インテグレーションで指定された受信者にメールを送信したり、アノテーションを使用して受信者を決定したりできます。
アノテーションを使用してメールの受信者を動的に判別するには:
デプロイメント YAML ファイルに次の例のようなアノテーションを追加します。ここで、
email
は、メールインテグレーションで指定するAnnotation key
です。annotations: email: <email_address>
-
RHACS を設定するときは、Annotation key for recipient フィールドでアノテーションキーの
email
を使用します。
デプロイメントまたは namespace の注釈を作成できます。
アノテーションを使用してデプロイメントまたは namespace を設定した場合、RHACS プラットフォームはアノテーションで指定されたメールにアラートを送信します。それ以外の場合は、デフォルトの受信者にアラートを送信します。
手順
- Platform Configuration → Integrations に移動します。
- Notifier Integrations セクションで、Email を選択します。
- New Integration を選択します。
- Integration Name フィールドに、メールインテグレーションの名前を入力します。
-
Email server フィールドに、メールサーバーのアドレスを入力します。メールサーバーアドレスには、完全修飾ドメイン名 (FQDN) とポート番号が含まれます (例:
smtp.example.com:465
)。 オプション: 認証されていない SMTP を使用している場合は、Enable unauthenticated SMTP を選択します。これは安全ではなく、推奨されませんが、インテグレーションによっては必要になる場合があります。たとえば、認証を必要としない通知に内部サーバーを使用する場合、このオプションを有効にする必要がある場合があります。
注記認証を使用して認証されていない SMTP を有効にする既存のメールインテグレーションを変更できません。既存のインテグレーションを削除し、Enable unauthenticated SMTP を選択して新しいインテグレーションを作成する必要があります。
- 認証に使用するサービスアカウントのユーザー名とパスワードを入力します。
-
オプション: メール通知の
FROM
ヘッダーに表示する名前を From フィールドに入力します。たとえば、Security Alerts
などです。 -
メール通知の
SENDER
ヘッダーに表示するメールアドレスを Sender フィールドに指定します。 - Default recipient フィールドに、通知を受信するメールアドレスを指定します。
- オプション: Annotation key for recipient にアノテーションキーを入力します。アノテーションを提供し、デプロイメントまたは namespace にこの値のキーがある場合、通知はアノテーションのメールアドレスに送信されます。それ以外の場合、通知は Default Recipient フィールドで指定されたメールに送信されます。
オプション: Disable TLS certificate validation (insecure) を選択して、TLS を使用せずにメールを送信します。StartTLS を使用していない限り、TLS を無効にしないでください。
注記メール通知には TLS を使用します。TLS がないと、すべてのメールは暗号化されずに送信されます。
オプション: StartTLS を使用するには、Use STARTTLS (Requires TLS To Be Disabled) ドロップダウンメニューで Login または Plain を選択します。
重要StartTLS を使用すると、セッションの暗号化が確立される前に、クレデンシャルがプレーンテキストでメールサーバーに渡されます。
-
login パラメーターを指定した StartTLS は、
base64
でエンコードされた文字列で認証クレデンシャルを送信します。 - Plain パラメーターを指定した StartTLS は、認証クレデンシャルをプレーンテキストでメールリレーに送信します。
-
login パラメーターを指定した StartTLS は、
16.2. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、メール通知機能を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。