You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/openshift/confidential-containers-deploy.md
+85-9Lines changed: 85 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ ms.author: johnmarc
6
6
ms.service: azure-redhat-openshift
7
7
keywords: confidential containers, aro, deploy, openshift, red hat
8
8
ms.topic: how-to
9
-
ms.date: 11/04/2024
9
+
ms.date: 11/20/2024
10
10
ms.custom: template-how-to
11
11
---
12
12
@@ -624,25 +624,25 @@ Create a secure route with edge TLS termination for Trustee. External ingress tr
624
624
625
625
You can configure the following attestation policy settings:
626
626
627
-
**Reference values**
627
+
**Reference values** (Optional)
628
628
629
629
You can configure reference values for the Reference Value Provider Service (RVPS) by specifying the trusted digests of your hardware platform.
630
630
631
631
The client collects measurements from the running software, the Trusted Execution Environment (TEE) hardware and firmware and it submits a quote with the claims to the Attestation Server. These measurements must match the trusted digests registered to the Trustee. This process ensures that the confidential VM (CVM) is running the expected software stack and hasn't been tampered with.
632
632
633
-
**Secrets for clients**
633
+
**Secret with custom keys for clients** (Optional)
634
634
635
-
You must create one or more secrets to share with attested clients.
635
+
You can create a secret that contains one or more custom keys for Trustee clients.
636
636
637
-
**Resource access policy**
637
+
**Resource access policy** (Optional)
638
638
639
639
You must configure a policy for the Trustee policy engine to determine which resources to access.
640
640
641
641
Don't confuse the Trustee policy engine with the Attestation Service policy engine, which determines the validity of TEE evidence.
642
642
643
-
**Attestation policy**
643
+
**Attestation policy** (Optional)
644
644
645
-
Optional: You can overwrite the default attestation policy by creating your own attestation policy.
645
+
You can overwrite the default attestation policy by creating your own attestation policy.
646
646
647
647
**Provisioning Certificate Caching Service for TDX**
648
648
@@ -786,9 +786,83 @@ If your TEE is Intel Trust Domain Extensions (TDX), you must configure the Provi
786
786
`$ oc apply -f tdx-config.yaml`
787
787
788
788
789
+
**Create a secret for container image signature verification**
790
+
791
+
If you use container image signature verification, you must create a secret that contains the public container image signing key. The Key Broker Service on the Trustee cluster uses the secret to verify the signature, ensuring that only trusted and authenticated container images are deployed in your environment.
792
+
793
+
1. Create a secret for container image signature verification by running the following command:
794
+
795
+
```
796
+
$ oc apply secret generic <type>
797
+
--from-file=<tag>=./<public_key_file>
798
+
-n trustee-operator-system
799
+
```
800
+
801
+
- Specify the KBS secret type, for example, `img-sig`.
802
+
- Specify the secret tag, for example, `pub-key`, and the public container image signing key.
803
+
804
+
1. Record the `<type>` value. You must add this value to the spec.kbsSecretResources key when you create the KbsConfig custom resource.
805
+
806
+
**Create the container image signature verification policy**
807
+
808
+
You create the container image signature verification policy because signature verification is always enabled. **If this policy is missing, the pods will not start.** If you are not using container image signature verification, you create the policy without signature verification.
809
+
810
+
1. Create a security-policy-config.json file according to the following examples:
811
+
812
+
Without signature verification:
813
+
814
+
```
815
+
{
816
+
"default": [
817
+
{
818
+
"type": "insecureAcceptAnything"
819
+
}],
820
+
"transports": {}
821
+
}
822
+
```
823
+
824
+
With signature verification:
825
+
826
+
```
827
+
{
828
+
"default": [
829
+
{
830
+
"type": "insecureAcceptAnything"
831
+
],
832
+
"transports": {
833
+
"<transport>": {
834
+
"<registry>/<image>":
835
+
[
836
+
{
837
+
"type": "sigstoreSigned",
838
+
"keyPath": "kbs:///default/<type>/<tag>"
839
+
}
840
+
]
841
+
}
842
+
}
843
+
}
844
+
```
845
+
846
+
- Specify the image repository for transport, for example, "docker":. For more information, see containers-transports 5.
847
+
- Specify the container registry and image, for example, "quay.io/my-image".
848
+
- Specify the type and tag of the container image signature verification secret that you created, for example, img-sig/pub-key.
849
+
850
+
1. Create the security policy by running the following command:
851
+
852
+
```
853
+
$ oc apply secret generic security-policy \
854
+
--from-file=osc=./<security-policy-config.json> \
855
+
-n trustee-operator-system
856
+
```
857
+
858
+
Do not alter the secret type, security-policy, or the key, osc.
859
+
860
+
The security-policy secret is specified in the `spec.kbsSecretResources` key of the KbsConfig custom resource.
861
+
862
+
789
863
### Create the KbsConfig custom resource
790
864
791
-
You must create the KbsConfig custom resource to launch Trustee. Then, you check the Trustee pods and pod logs to verify the configuration.
865
+
You must create the KbsConfig custom resource to launch Trustee.
792
866
793
867
1. Create a `kbsconfig-cr.yaml` manifest file:
794
868
@@ -817,7 +891,9 @@ You must create the KbsConfig custom resource to launch Trustee. Then, you check
817
891
818
892
`$ oc apply -f kbsconfig-cr.yaml`
819
893
820
-
#### Verification
894
+
#### Verify the Trustee configuration
895
+
896
+
Verity the Trustee configuration by checking the Trustee pods and logs
821
897
822
898
1. Set the default project by running the following command:
0 commit comments