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
@@ -619,35 +619,151 @@ Create a secure route with edge TLS termination for Trustee. External ingress tr
619
619
`$ oc apply -f kbs-config-cm.yaml`
620
620
621
621
622
+
### Configure Trustee
622
623
623
-
### Configure attestation policies
624
+
Configure the following Trustee settings:
624
625
625
-
You can configure the following attestation policy settings:
626
-
627
-
**Reference values**
626
+
**Configure reference values**
628
627
629
628
You can configure reference values for the Reference Value Provider Service (RVPS) by specifying the trusted digests of your hardware platform.
630
629
631
630
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
631
633
-
**Secrets for clients**
632
+
1. Create an `rvps-configmap.yaml` manifest file:
633
+
634
+
```
635
+
apiVersion: v1
636
+
kind: ConfigMap
637
+
metadata:
638
+
name: rvps-reference-values
639
+
namespace: trustee-operator-system
640
+
data:
641
+
reference-values.json: |
642
+
[
643
+
]
644
+
```
645
+
646
+
For `reference-values.json` specify the trusted digests for your hardware platform if required. Otherwise, leave it empty.
647
+
648
+
1. Create the RVPS config map by running the following command:
649
+
650
+
`$ oc apply -f rvps-configmap.yaml`
651
+
652
+
653
+
654
+
655
+
<!--
634
656
635
-
You must create one or more secrets to share with attested clients.
657
+
**Secret with custom keys for clients** (Optional)
636
658
637
-
**Resource access policy**
659
+
You can create a secret that contains one or more custom keys for Trustee clients.
660
+
661
+
**Resource access policy** (Optional)
638
662
639
663
You must configure a policy for the Trustee policy engine to determine which resources to access.
640
664
641
665
Don't confuse the Trustee policy engine with the Attestation Service policy engine, which determines the validity of TEE evidence.
642
666
643
-
**Attestation policy**
667
+
-->
668
+
669
+
**Create your own attestation policy**
670
+
671
+
You can overwrite the default attestation policy by creating your own attestation policy.
672
+
673
+
1. Create an attestation-policy.yaml manifest file according to the following example:
For the `package policy`, the attestation policy follows the Open Policy Agent specification. In this example, the attestation policy compares the claims provided in the attestation report to the reference values registered in the RVPS database. The attestation process is successful only if all the values match.
730
+
731
+
1. Create the attestation policy config map by running the following command:
732
+
733
+
`$ oc apply -f attestation-policy.yaml`
644
734
645
-
Optional: You can overwrite the default attestation policy by creating your own attestation policy.
646
735
647
736
**Provisioning Certificate Caching Service for TDX**
648
737
649
738
If your TEE is Intel Trust Domain Extensions (TDX), you must configure the Provisioning Certificate Caching Service (PCCS). The PCCS retrieves Provisioning Certification Key (PCK) certificates and caches them in a local database.
For `pccs_url`, specify the PCCS URL, for example, https://localhost:8081/sgx/certification/v4/.
757
+
758
+
1. Create the TDX config map by running the following command:
759
+
760
+
`$ oc apply -f tdx-config.yaml`
761
+
762
+
763
+
764
+
<!--
765
+
766
+
651
767
1. Create an `rvps-configmap.yaml` manifest file:
652
768
653
769
```
@@ -701,7 +817,7 @@ If your TEE is Intel Trust Domain Extensions (TDX), you must configure the Provi
701
817
702
818
`$ oc apply -f resourcepolicy-configmap.yaml`
703
819
704
-
1. Optional: Create an attestation-policy.yaml manifest file according to the following example:
820
+
1. Create an attestation-policy.yaml manifest file according to the following example:
705
821
706
822
```
707
823
apiVersion: v1
@@ -785,10 +901,88 @@ If your TEE is Intel Trust Domain Extensions (TDX), you must configure the Provi
785
901
786
902
`$ oc apply -f tdx-config.yaml`
787
903
904
+
-->
905
+
906
+
**Create a secret for container image signature verification**
907
+
908
+
If you use container image signature verification, you must create a secret that contains the public container image signing key. The Trustee Operator uses the secret to verify the signature, ensuring that only trusted and authenticated container images are deployed in your environment.
909
+
910
+
1. Create a secret for container image signature verification by running the following command:
911
+
912
+
```
913
+
$ oc apply secret generic <type> \
914
+
--from-file=<tag>=./<public_key_file> \
915
+
-n trustee-operator-system
916
+
```
917
+
918
+
- Specify the KBS secret type, for example, `img-sig`.
919
+
- Specify the secret tag, for example, `pub-key`, and the public container image signing key.
920
+
921
+
1. Record the `<type>` value. You must add this value to the spec.kbsSecretResources key when you create the KbsConfig custom resource.
922
+
923
+
**Create the container image signature verification policy**
924
+
925
+
You must create the container image signature verification policy because signature verification is always enabled.
926
+
927
+
> [!IMPORTANT]
928
+
> 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.
929
+
>
930
+
1. Create a security-policy-config.json file according to the following examples:
931
+
932
+
Without signature verification:
933
+
934
+
```
935
+
{
936
+
"default": [
937
+
{
938
+
"type": "insecureAcceptAnything"
939
+
}],
940
+
"transports": {}
941
+
}
942
+
```
943
+
944
+
With signature verification:
945
+
946
+
```
947
+
{
948
+
"default": [
949
+
{
950
+
"type": "insecureAcceptAnything"
951
+
],
952
+
"transports": {
953
+
"<transport>": {
954
+
"<registry>/<image>":
955
+
[
956
+
{
957
+
"type": "sigstoreSigned",
958
+
"keyPath": "kbs:///default/<type>/<tag>"
959
+
}
960
+
]
961
+
}
962
+
}
963
+
}
964
+
```
965
+
966
+
- Specify the image repository for transport, for example, "docker".
967
+
- Specify the container registry and image, for example, "quay.io/my-image".
968
+
- Specify the type and tag of the container image signature verification secret that you created, for example, "img-sig/pub-key".
969
+
970
+
1. Create the security policy by running the following command:
971
+
972
+
```
973
+
$ oc apply secret generic security-policy \
974
+
--from-file=osc=./<security-policy-config.json> \
975
+
-n trustee-operator-system
976
+
```
977
+
978
+
Do not alter the secret type, security-policy, or the key, osc.
979
+
980
+
The security-policy secret is specified in the `spec.kbsSecretResources` key of the KbsConfig custom resource.
981
+
788
982
789
983
### Create the KbsConfig custom resource
790
984
791
-
You must create the KbsConfig custom resource to launch Trustee. Then, you check the Trustee pods and pod logs to verify the configuration.
985
+
You must create the KbsConfig custom resource to launch Trustee.
792
986
793
987
1. Create a `kbsconfig-cr.yaml` manifest file:
794
988
@@ -809,15 +1003,25 @@ You must create the KbsConfig custom resource to launch Trustee. Then, you check
- Specify the `type` value of the container image signature verification secret if you created the secret, for example, `img-sig`.
1014
+
- Uncomment `tdxConfigSpec.kbsTdxConfigMapName: tdx-config` for Intel Trust Domain Extensions.
1015
+
- Uncomment `kbsAttestationPolicyConfigMapName: attestation-policy` if you create a customized attestation policy.
1016
+
- Uncomment `kbsServiceType: <service_type>` if you create a service type, other than the default ClusterIP service, to expose applications within the cluster external traffic. You can specify `NodePort`, `LoadBalancer`, or `ExternalName`.
1017
+
816
1018
1. Create the KbsConfig custom resource by running the following command:
817
1019
818
1020
`$ oc apply -f kbsconfig-cr.yaml`
819
1021
820
-
#### Verification
1022
+
#### Verify the Trustee configuration
1023
+
1024
+
Verify the Trustee configuration by checking the Trustee pods and logs.
821
1025
822
1026
1. Set the default project by running the following command:
0 commit comments