でレジストリ イメージをスキャンすると、エラー「x509: 不明な機関によって署名された証明書」が表示される Prisma Cloud
13631
Created On 04/25/22 09:28 AM - Last Modified 03/02/23 03:58 AM
Symptom
- レジストリ イメージのスキャン時に次のエラーが表示されます。
Failed to pull image xxxxxxxreg/xxxxxxx:v1.0.0, error Error initializing source docker://registry.xxxxx/xxxxx/xxxxxxx:v1.0.0: error pinging docker registry registry.xxxxx: Get "https://urldefense.com/v3/__https://registry.xxxxx/v2/__;!!Gt_FR42WkD9csi9Y!NYhH91g2nYoQOfa3jNTZVtUdvAwu-vt30mQ2XXiY-cvy0sjkmol_xx8S-U0uKSRnm_zIxg$ ": x509: certificate signed by unknown authority
Environment
- Prisma Cloud コンピューティング エンタープライズ エディション
- Prisma Cloud 自己ホスト型コンピューティング
- Containerd ランタイム
- CRI-O
Cause
- によって証明書パスが検出されていませんPrisma Cloud計算します。
- Containerd ランタイムを使用する場合、レジストリ証明書のデフォルト パスは /etc/containerd です。
- Prisma Cloud Compute はまだ /etc/containerd の下にあるレジストリ証明書を検出できていません。
- 22.01.xxxまでPrisma CloudCompute は /etc/containers/certs.d/$REGISTRY_NAME/ または /etc/docker/certs.d/$REGISTRY_NAME/ のみをサポートします
Resolution
- Defender にディレクトリを作成するノード以下に示すように:
/etc/containers/certs.d/$REGISTRY_NAME/ or /etc/docker/certs.d/$REGISTRY_NAME/
- 注: Kepler(22.06+) から、もう 1 つのフォルダーがサポートされています。
/etc/containerd/certs.d/$REGISTRY_NAME/
- 証明書を中に入れる$REGISTRY_NAMEフォルダ。
- 証明書がレジストリ フォルダーに存在する限り、証明書の名前は重要ではありません。
- コンテナ ディフェンダーの場合、コンテナのデーモン セット yaml ファイルを変更して、フォルダをマウントします。 次に例を示します。
- 指図:
kubectl edit ds -n twistlock twistlock-defender-ds
- 「volumeMounts:」の下に以下を追加します。
- name: registry-scan mountPath: /etc/docker/certs.d - name: registry-scan2 mountPath: /etc/containers/certs.d - name: registry-scan3 mountPath: /etc/containerd/certs.d
- 「ボリューム:」の下に以下を追加します。
- name: registry-scan hostPath: path: /etc/docker/certs.d type: '' - name: registry-scan2 hostPath: path: /etc/containers/certs.d type: '' - name: registry-scan3 hostPath: path: /etc/containerd/certs.d type: ''
- 指図:
NOTE :現時点では、上記の手順がこの問題に適用できる唯一の解決策です。
Additional Information
レジストリ スキャンの設定