統合
Red Hat Advanced Cluster Security for Kubernetes の統合
概要
第1章 イメージレジストリーとの統合
Red Hat Advanced Cluster Security for Kubernetes は、さまざまなイメージレジストリーと統合されているため、イメージを理解し、イメージの使用にセキュリティーポリシーを適用できます。
イメージレジストリーと統合すると、イメージの作成日や Dockerfile の詳細 (イメージレイヤーを含む) などの重要なイメージの詳細を表示できます。
Red Hat Advanced Cluster Security for Kubernetes をレジストリーに統合すると、イメージをデプロイする前、またはクラスターにすでにデプロイされている既存のイメージにイメージをスキャンしたり、イメージコンポーネントを表示したり、セキュリティーポリシーを適用したりできます。
イメージレジストリーと統合する場合、Red Hat Advanced Cluster Security for Kubernetes はレジストリー内のすべてのイメージをスキャンしません。Red Hat Advanced Cluster Security for Kubernetes は、次の場合にのみイメージをスキャンします。
- デプロイメントでイメージを使用する
-
roxctl
CLI を使用してイメージを確認します - 継続的インテグレーション (CI) システムを使用して、セキュリティーポリシーを適用します
Red Hat Advanced Cluster Security for Kubernetes は、以下を含む主要なイメージレジストリーと統合できます。
- Amazon Elastic Container Registry (ECR)
- Docker Hub
- Docker トラステッドレジストリー
- Google Container Registry (GCR)
- Google Artifact Registry
- IBM Cloud Container Registry (ICR)
- JFrog Artifactory
- Microsoft Azure Container Registry (ACR)
- Red Hat Quay
- Red Hat コンテナーレジストリー
- Sonatype Nexus
- Tenable.io
- Docker Registry HTTP API を使用するその他のレジストリー
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>
セントラルを再起動して、変更を適用します。
$ 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. Docker Trusted Registry を手動で設定する
Red Hat Advanced Cluster Security for Kubernetes を Docker Trusted Registry と統合できます。
前提条件
- Docker Trusted Registry で認証するためのユーザー名とパスワードが必要です。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで、Docker Trusted Registry を選択します。
- New integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration name: インテグレーションの名前。
- Type: Registry を選択します。
- Endpoint: レジストリーのアドレス。
- UsernameとPassword
- レジストリーへの接続時に TLS 証明書を使用していない場合は、Disable TLS certificate validation (insecure) を選択します。
- レジストリーへの接続をテストせずに統合を作成する場合は、Create integration without testing を選択します。
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
1.3.8. 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: Registry を選択します。
- Endpoint: レジストリーのアドレス。
- OAuth トークン
- レジストリーへの接続時に TLS 証明書を使用していない場合は、Disable TLS certificate validation (insecure) を選択します。
- レジストリーへの接続をテストせずに統合を作成する場合は、Create integration without testing を選択します。
- Test を選択して、選択したレジストリーとの統合が機能していることをテストします。
- Save を選択します。
1.3.9. 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.3.10. Red Hat コンテナーレジストリーを手動で設定する
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. roxctl
CLI を使用した認証
認証には、認証トークンまたは管理者パスワードを使用できます。Red Hat は、各トークンに特定のアクセス制御権限が割り当てられているため、実稼働環境で認証トークンを使用することが推奨されます。
次の手順を使用して、認証トークンを生成します。
手順
- RHACS ポータルに移動します。
- Platform Configuration → Integrations に移動します。
- Authentication Tokens カテゴリーまで下にスクロールし、API Token をクリックします。
- Generate Token をクリックします。
- トークンの名前を入力し、必要なレベルのアクセスを提供するロールを選択します (たとえば、Continuous Integration または Sensor Creator)。
Generate をクリックします。
重要生成されたトークンをコピーして安全に保存します。再度表示することはできません。
認証トークンを生成したら、それを 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/3.70.2/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/3.70.2/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/3.70.2/bin/Windows/roxctl.exe
検証
インストールした
roxctl
のバージョンを確認します。$ roxctl version
2.3.3. コンテナーから roxctl CLI の実行
roxctl
クライアントは、Red Hat Advanced Cluster Security for Kubernetes roxctl
イメージのデフォルトのエントリーポイントです。コンテナーイメージで roxctl
クライアントを実行するには、以下を行います。
手順
registry.redhat.io
レジストリーにログインします。$ docker login registry.redhat.io
roxctl
CLI の最新のコンテナーイメージをプルします。$ docker pull registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:3.70.2
CLI をインストールした後、次のコマンドを使用して CLI を実行できます。
$ docker run -e ROX_API_TOKEN=$ROX_API_TOKEN \ -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:3.70.2 \ -e $ROX_CENTRAL_ADDRESS <command>
検証
インストールした
roxctl
のバージョンを確認します。$ docker run -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:3.70.2 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 のドキュメントトピック Getting started with Incoming Webhooks 参照してください。
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. Red Hat Advanced Cluster Security for Kubernetes の設定
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章 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 と統合します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
6.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 します。
6.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
アイコン) をクリックして、設定を作成します。
6.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 は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
6.4. Sumo Logic でアラートを表示する
Sumo Logic で Kubernetes の Red Hat からのアラートを表示できます。
- Sumo Logic ホームページにログインし、Log Search をクリックします。
-
検索ボックスに
_sourceCategory=rhacs
と入力します。Sumo Logic の設定時に入力したものと同じ Source Category 名を使用してください。 - 時間を選択し、Start をクリックします。
第7章 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 を使用している場合は、バックアップに証明書が含まれていません。
7.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 は、指定されたスケジュールに従ってすべてのデータを自動的にバックアップします。
7.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 は、バックグラウンドでバックアップタスクを開始します。
7.1.1.1. 関連情報
第8章 syslog プロトコルを使用した統合
Syslog は、データ保持とセキュリティー調査のために、アプリケーションが SIEM や syslog コレクターなどのセントラルの場所にメッセージを送信するために使用するイベントログプロトコルです。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 レシーバーにすべての違反と監査イベントを自動的に送信します。
8.1. Red Hat Advanced Cluster Security for Kub との syslog 統合の設定
Red Hat Advanced Cluster Security for Kubernetes で新しい 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) トグルをオンにします。それ以外の場合は、このトグルをオフのままにします。
-
Test (
checkmark
アイコン) を選択してテストメッセージを送信し、汎用 Webhook との統合が機能していることを確認します。 -
Create (
save
アイコン) を選択して、設定を作成します。
第9章 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 がエアギャップ環境の一部である場合は、Red Hat Advanced Cluster Security for Kubernetes で AWS ルート CA を trusted certificate authority として追加する必要があります。
9.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 のドキュメントトピック Working with object metadata を参照してください。
- 非公開の 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 は、指定されたスケジュールに従ってすべてのデータを自動的にバックアップします。
9.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 は、バックグラウンドでバックアップタスクを開始します。
9.3. 関連情報
第10章 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 とサービスアカウントキーを提供します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
10.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 のガイドを参照してください。
10.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
アイコン) を選択して、設定を作成します。
10.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 は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
第11章 Splunk との統合
Splunk を使用している場合は、Red Hat Advanced Cluster Security for Kubernetes から Splunk にアラートを転送し、Splunk 内から脆弱性とコンプライアンスに関連するデータを表示できます。
ユースケースに応じて、次の方法を使用して、Red Hat Advanced Cluster Security for Kubernetes を Splunk と統合できます。
Splunk で、using an HTTP event collector による
- イベントコレクターオプションを使用して、アラートと監査ログデータを転送します
using the StackRox Kubernetes Security Platform add-on による
アドオンを使用して、脆弱性の検出とコンプライアンスのデータを Splunk に取り込みます
注記StackRox Kubernetes Security Platform アドオンは、Red Hat Advanced Cluster Security for Kubernetes バージョン 3.0.51.0 以降を使用している場合にのみ使用できます。
これらの統合オプションの一方または両方を使用して、Red Hat Advanced Cluster Security for Kubernetes を Splunk と統合できます。
11.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 で通知を設定します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
11.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 との統合を設定するために必要です。
11.1.1.1. HTTP イベントコレクターの有効化
イベントを受信する前に、HTTP イベントコレクタートークンを有効にする必要があります。
手順
- Splunk ダッシュボードで、Settings → Data inputs に移動します。
- HTTP Event Collector をクリックします。
- Global Settings をクリックします。
- 開いたダイアログで、Enabled をクリックし、Save をクリックします。
11.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
アイコン) を選択して、設定を作成します。
11.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 は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
11.2. StackRox Kubernetes Security Platform アドオンの使用
StackRox Kubernetes Security Platform アドオンを使用して、脆弱性の検出とコンプライアンスに関連するデータを Red Hat Advanced Cluster Security for Kubernetes から Splunk に転送できます。
まず、Red Hat Advanced Cluster Security for Kubernetes のすべてのリソースに対する読み取り権限を持つ API トークンを生成し、そのトークンを使用してアドオンをインストールおよび設定します。
11.2.1. Splunk アドオンのインストールと設定
StackRox Kubernetes Security Platform アドオンを Splunk インスタンスからインストールできます。
前提条件
-
Red Hat Advanced Cluster Security for Kubernetes のすべてのリソースに対する
read
権限を持つ API トークンがある。Analyst システムロールを割り当てて、このレベルのアクセスを許可できます。Analyst ロールには、すべてのリソースに対する read 権限がある。
手順
- StackRox Kubernetes Security Platform アドオンを Splunkbase からダウンロードします。
- Splunk インスタンスの Splunk ホームページに移動します。
- Apps → Manage Apps に移動します。
- Install app from file を選択します。
- Upload app ポップアップボックスで、Choose File を選択し、StackRox Kubernetes Security Platform アドオンファイルを選択します。
- アップロード をクリックします。
- Restart Splunk をクリックし、再起動することを確認します。
- Splunk が再起動したら、Apps メニューから StackRox を選択します。
- Create New Input をクリックします。
- StackRox Compliance を選択してコンプライアンスデータをプルするか、StackRox Vulnerability Management を選択して脆弱性データを Splunk にプルします。
- 入力の Name を入力します。
- Red Hat Advanced Cluster Security for Kubernetes からデータをプルする Interval を選択します。たとえば、14400 秒ごと。
- データの送信先となる Splunk Index を選択します。
- Central Endpoint には、セントラルインスタンスの IP アドレスまたは名前を入力します。
- アドオン用に生成した API token を入力します。
- Add をクリックします。
第12章 イメージ脆弱性スキャナーとの統合
Red Hat Advanced Cluster Security for Kubernetes (RHACS) は、さまざまな脆弱性スキャナーと統合して、コンテナーイメージをインポートし、脆弱性を監視できるようにします。Red Hat Advanced Cluster Security for Kubernetes を設定して、次のような多くのオープンソースおよび商用コンテナーのイメージ脆弱性スキャナーからイメージの脆弱性データを取得できます。
DevOps ワークフローでこれらの製品のいずれかを使用している場合は、RHACS ポータルを使用して、Red Hat Advanced Cluster Security for Kubernetes との接続を設定できます。統合されると、イメージの脆弱性は RHACS ポータルに表示され、簡単にトリアージできます。
12.1. Anchore スキャナーとの統合
Red Hat Advanced Cluster Security for Kubernetes を Anchore スキャナーと統合できます。
前提条件
- 認証用のアンカースキャナーのユーザー名とパスワードがある。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで、Anchore Scanner を選択します。Configure Anchore scanner image integration ボックスが開きます。
- New Integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration Name: 統合の名前。
- Types: Scanner を選択します。
- Endpoint: スキャナーのアドレス。
- UsernameとPassword
-
Test (
checkmark
アイコン) を選択して、統合が機能していることをテストします。 -
Create (
save
アイコン) を選択して、設定を作成します。
12.2. Clair との統合
イメージの脆弱性を静的に分析するために、Red Hat Advanced Cluster Security for Kubernetes を Clair と統合できます。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで、Clair を選択します。Configure Anchore scanner image integration ボックスが開きます。
- New Integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration Name: 統合の名前。
- Types: Scanner を選択します。
- Endpoint: スキャナーのアドレス。
-
Test (
checkmark
アイコン) を選択して、統合が機能していることをテストします。 -
Create (
save
アイコン) を選択して、設定を作成します。
12.3. Docker Trusted Registry スキャナーとの統合
イメージをスキャンするために、Red Hat Advanced Cluster Security for Kubernetes を Docker Trusted Registry と統合できます。
前提条件
- Docker Trusted Registry で認証するためのユーザー名とパスワードが必要です。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
Image Integrations セクションで、Docker Trusted Registry を選択します。
Configure image integration ボックスが開きます。
- New Integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration Name: 統合の名前。
- Types: Scanner を選択します。
- Endpoint: レジストリーのアドレス。
- UsernameとPassword
-
Test (
checkmark
アイコン) を選択して、選択したレジストリーとの統合が機能していることをテストします。 -
Create (
save
アイコン) を選択して、設定を作成します。
12.4. 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
アイコン) を選択して、設定を作成します。
12.5. Quay Container Registry との統合
イメージをスキャンするために、Red Hat Advanced Cluster Security for Kubernetes を Quay Container Registry と統合できます。
前提条件
- Quay Container Registry で認証するには OAuth トークンが必要。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
Image Integrations セクションで、Quay Container Registry を選択します。
Configure image integration ボックスが開きます。
- New Integration をクリックします。
以下に必要な詳細を入力します。
- Integration Name: 統合の名前。
- Types: Scanner を選択します。
- Endpoint: レジストリーのアドレス。
- OAuth Token: Quay Container Registry の OAuth トークン。
-
Test (
checkmark
アイコン) を選択して、選択したレジストリーとの統合が機能していることをテストします。 -
Create (
save
アイコン) を選択して、設定を作成します。
12.6. Tenable との統合
イメージをスキャンするために、Red Hat Advanced Cluster Security for Kubernetes を Tenable と統合できます。
前提条件
- 認証用の Tenable アクセスキーと秘密キーが必要。
手順
- RHACS ポータルで、Platform Configuration → Integrations に移動します。
- Image Integrations セクションで、Tenable を選択します。Configure Anchore scanner image integration ボックスが開きます。
- New Integration をクリックします。
以下のフィールドに詳細を記入します。
- Integration Name: 統合の名前。
- Source Inputs: Scanner を選択します。
- Access Key: Tenable のアクセスキー。
- Secret Key: Tenable のシークレットキー。
-
Test (
checkmark
アイコン) を選択して、統合が機能していることをテストします。 -
Create (
save
アイコン) を選択して、設定を作成します。
第13章 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 と統合します。
- 通知を送信するポリシーを特定し、それらのポリシーの通知設定を更新します。
13.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 を設定するときは、トークンをパスワードとして使用してください。
13.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
アイコン) を選択して、設定を作成します。
13.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 はそのアノテーションに指定されたプロジェクトにアラートを送信します。それ以外の場合は、アラートがデフォルトのプロジェクトに送信されます。
13.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
アイコン) を選択して、設定を作成します。
エラーが発生した場合は、Troubleshooting Jira integration セクションの手順に従います。
13.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 は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。
13.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 を再度設定し、プライオリティーの値を使用してカスタムプライオリティーを設定します。
第14章 メールとの統合
標準の電子メールプロバイダーにアラートを送信するように、Red Hat Advanced Cluster Security for Kubernetes (RHACS) を設定します。
RHACS から標準の電子メールプロバイダーにアラートを転送することにより、通知方法として電子メールを使用できます。RHACS プラットフォームから電子メールアドレスに警告を転送するには、Default Recipients
または Deployment Annotations
パラメーターのいずれかを使用します。
デフォルトの受信者を使用して、標準の集中型チームに電子メールを送信できます。デプロイメントを管理する特定のチームに電子メールを送信するには、Deployment Annotations
を使用します。namespace でオーディエンスを管理するには、Namespace Annotations
を使用します。
アノテーションキーを使用して、デプロイメントまたは namespace に関連付けられているポリシー違反について通知するオーディエンスを定義できます。デプロイメントにアノテーションがある場合、アノテーションの値がデフォルト値をオーバーライドします。namespace にアノテーションがある場合、namespace の値がデフォルト値を上書きします。
- デプロイメントにアノテーションキーと定義されたオーディエンスがある場合、キーによって定義されたオーディエンスに電子メールが送信されます。
- デプロイメントにアノテーションキーがない場合、namespace でアノテーションキーがチェックされ、定義されたオーディエンスに電子メールが送信されます。
- アノテーションキーが存在しない場合、統合で定義されているデフォルトの受信者に電子メールが送信されます。
14.1. Red Hat Advanced Cluster Security for Kubernetes プラットフォームでのメールプラグインの設定
電子メール通知機能を使用して、Red Hat Advanced Cluster Security for Kubernetes プラットフォームに新しい統合を作成できます。
アノテーションを使用して電子メールの受信者を動的に判別するには:
デプロイメント YAML ファイルに次の例のようなアノテーションを追加します。ここで、電子メールは、電子メール統合で指定する
Annotation
キーです。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 に、電子メールサーバーのアドレスを入力します。電子メールサーバーアドレスは、完全修飾ドメイン名とポート番号です。例は
smtp.example.com:465
です。 - 認証に使用するサービスアカウントのユーザー名とパスワードを入力します。
- オプション: デフォルト値と異なる場合は、送信者の名前を指定します。
- Default Recipient ボックスで通知を受信する電子メールアドレスを指定するか、Annotation key for recipient にアノテーションキーを入力します。
オプション: TLS なしで電子メールを送信するには、Disable TLS certificate validation (insecure) トグルをオンにします。StartTLS を使用していない限り、TLS を無効にしないでください。
注記電子メール通知には TLS を使用します。TLS がないと、すべての電子メールは暗号化されずに送信されます。
オプション: StartTLS を使用するには、Use STARTTLS (Requires TLS To Be Disabled) ドロップダウンメニューで Login または Plain を選択します。
重要StartTLS を使用すると、セッションの暗号化が確立される前に、クレデンシャルがプレーンテキストで電子メールサーバーに渡されます。
-
login パラメーターを指定した StartTLS は、
base64
でエンコードされた文字列で認証クレデンシャルを送信します。 - plain パラメーターを指定した StartTLS は、認証クレデンシャルをプレーンテキストでメールリレーに送信します。
-
login パラメーターを指定した StartTLS は、
14.2. ポリシー通知の設定
システムポリシーのアラート通知を有効にします。
手順
- RHACS ポータルで、Platform Configuration → Policies に移動します。
- アラートの送信先となるポリシーを 1 つ以上選択します。
- Bulk actions で Enable notification を選択します。
Enable notification ウィンドウで、電子メール notifier を選択します。
注記他の統合を設定していない場合、システムは通知機能が設定されていないメッセージが表示します。
- Enable をクリックします。
- Red Hat Advanced Cluster Security for Kubernetes は、オプトインベースで通知を送信します。通知を受信するには、最初に通知機能をポリシーに割り当てる必要があります。
- 通知は、特定のアラートに対して 1 回だけ送信されます。ポリシーに通知機能を割り当てた場合、違反によって新しいアラートが生成されない限り、通知は受信されません。
Red Hat Advanced Cluster Security for Kubernetes は、次のシナリオに対して新しいアラートを作成します。
- ポリシー違反は、デプロイメントで初めて発生します。
- ランタイムフェーズのポリシー違反は、そのデプロイメントのポリシーに対する以前のランタイムアラートを解決した後のデプロイメントで発生します。