Downloading Certified Container images from IBM Entitled Registry
You can pull the Sterling B2B Integrator or Sterling File Gateway Certified Container images from IBM Entitled Registry into the cluster or mirror the images in case of an air-gapped environment. For details, refer to Mirroring Certified Container images in an air-gapped environment.
- Linux® on x86-64 bit CPU architecture (AMD64)
- Linux® on Z (s390x).
- Linux® on PowerLE (ppc64le).
When you pull images from the Entitled Registry, the system downloads the images matching the client architecture automatically. For example, if you pull images from a client or container platform cluster node with s390x architecture, the system downloads images for s390x architecture automatically. For every installation, you can set up your architecture preference in the Helm Charts configuration file. For more information, refer to Configuring the Certified Container.
- IBM® Sterling
B2B Integrator v6.1.2.0
Certified Container
- cp.icr.io/cp/ibm-b2bi/b2bi:6.1.2.0
- cp.icr.io/cp/ibm-b2bi/b2bi-dbsetup:6.1.2.0
- cp.icr.io/cp/ibm-b2bi/b2bi-purge:6.1.2.0
- cp.icr.io/cp/ibm-b2bi/b2bi-ps:6.1.2.0
- cp.icr.io/cp/opencontent-common-utils:1.1.36
- IBM Sterling
File Gateway v6.1.2.0
Certified Container
- cp.icr.io/cp/ibm-sfg/sfg:6.1.2.0
- cp.icr.io/cp/ibm-sfg/sfg-dbsetup:6.1.2.0
- cp.icr.io/cp/ibm-sfg/sfg-purge:6.1.2.0
- cp.icr.io/cp/ibm-sfg/sfg-ps:6.1.2.0
- cp.icr.io/cp/opencontent-common-utils:1.1.36
- IBM Sterling
B2B Integrator v6.1.2.1
Certified Container
- cp.icr.io/cp/ibm-b2bi/b2bi:6.1.2.1
- cp.icr.io/cp/ibm-b2bi/b2bi-dbsetup:6.1.2.1
- cp.icr.io/cp/ibm-b2bi/b2bi-purge:6.1.2.1
- cp.icr.io/cp/ibm-b2bi/b2bi-ps:6.1.2.1
- cp.icr.io/cp/ibm-b2bi/b2bi-resources:6.1.2.1
- cp.icr.io/cp/opencontent-common-utils:1.1.54
- IBM Sterling
File Gateway v6.1.2.1
Certified Container
- cp.icr.io/cp/ibm-sfg/sfg:6.1.2.1
- cp.icr.io/cp/ibm-sfg/sfg-dbsetup:6.1.2.1
- cp.icr.io/cp/ibm-sfg/sfg-purge:6.1.2.1
- cp.icr.io/cp/ibm-sfg/sfg-ps:6.1.2.1
- cp.icr.io/cp/ibm-sfg/sfg-resources:6.1.2.1
- cp.icr.io/cp/opencontent-common-utils:1.1.54
- IBM Sterling
B2B Integrator v6.1.2.2
Certified Container
- cp.icr.io/cp/ibm-b2bi/b2bi:6.1.2.2
- cp.icr.io/cp/ibm-b2bi/b2bi-dbsetup:6.1.2.2
- cp.icr.io/cp/ibm-b2bi/b2bi-purge:6.1.2.2
- cp.icr.io/cp/ibm-b2bi/b2bi-ps:6.1.2.2
- cp.icr.io/cp/ibm-b2bi/b2bi-resources:6.1.2.2
- cp.icr.io/cp/opencontent-common-utils:1.1.60
- IBM Sterling
File Gateway v6.1.2.2
Certified Container
- cp.icr.io/cp/ibm-sfg/sfg:6.1.2.2
- cp.icr.io/cp/ibm-sfg/sfg-dbsetup:6.1.2.2
- cp.icr.io/cp/ibm-sfg/sfg-purge:6.1.2.2
- cp.icr.io/cp/ibm-sfg/sfg-ps:6.1.2.2
- cp.icr.io/cp/ibm-sfg/sfg-resources:6.1.2.2
- cp.icr.io/cp/opencontent-common-utils:1.1.60
- IBM Sterling
B2B Integrator v6.1.2.3 Certified Container
- cp.icr.io/cp/ibm-b2bi/b2bi:6.1.2.3
- IBM Sterling
File Gateway v6.1.2.3 Certified Container
- cp.icr.io/cp/ibm-sfg/sfg:6.1.2.3
- Ensure that you have obtained the Entitlement key.
- Log in to MyIBM Container Software Library with the IBM ID and Password that are associated with the entitled software. In case, you are not directed to the entitlement page, click Get an entitlement key and obtain the Entitlement Key.
- In the Entitlement key section, click Copy key to copy the entitlement key to the clipboard.
- Save the Entitlement Key to a safe location for later use.
To confirm your Entitlement Key is valid, click View library provided in the left of the page. You can view the list of products that you are entitled to. If Sterling B2B Integrator or Sterling File Gateway is not listed, or if the View library link is disabled, it indicates that the identity with which you are logged in to the container library does not have an entitlement for Sterling B2B Integrator or Sterling File Gateway. In this case, the Entitlement Key is not valid for installing the software.
- Set Entitled Registry information by completing the following steps:
- Run export commands that set ENTITLED_REGISTRY to
cp.icr.io
. - Set ENTITLED_REGISTRY_USER to
cp
. - Set ENTITLED_REGISTRY_KEY to the entitlement key that you saved to a safe location.
- Run export commands that set ENTITLED_REGISTRY to
- Optional. Log in to Entitled Registry using the following
docker login
command to validate the Entitled Registry credentials:
Configure Helm to Pull images directly from the IBM entitled Registrydocker login "$ENTITLED_REGISTRY" -u "$ENTITLED_REGISTRY_USER" -p "$ENTITLED_REGISTRY_KEY
- Run the following command to create Docker pull Secret for pulling the images from IBM Entitled Registry:
kubectl create secret docker-registry <secret name> --docker-username="cp" --docker-password="<Entitled registry API key>" --docker-email="<email address" --docker-server="cp.icr.io" -n <namespace>
- Update the service account or Helm Chart image pull secret configurations with the above Secret name.For example:
Pull images manually and push to an internal registryvalues.global.pullSecret: ibm-entitlement-key
- Follow these steps to download and push images to an OpenShift or a local image registry.
- Download the image using the
docker or podman pull
command.docker pull cp.icr.io/cp/ibm-b2bi/b2bi:6.1.2.0 podman pull cp.icr.io/cp/ibm-b2bi/b2bi:6.1.2.0
- Tag the downloaded image with the correct local or OpenShift registry.
For example:docker tag <imageid> <registry URL>:<tag> podman tag <imageid> <registry URL>:<tag>
docker tag 76b3dc4c111 my-registry/my-namespace/b2bi:6.1.2.0
- Push the Docker image using the
docker or podman push
command.
For example:docker push <registry URL>:<tag> podman push <registry URL>:<tag>
docker push 76b3dc4c111 my-registry/my-namespace/b2bi:6.1.2.0
- Download the image using the
- Run the following command to create a Docker pull secret for pulling the images from the Registry
kubectl create secret docker-registry <name of secret> --docker-server= <your-registry-server> --docker-username=<your-username> --docker-password=<your-password> --docker-email=<your-email>
Configure this pull secret in the service account used for deployment using this command:kubectl patch serviceaccount <service-account-name> -p '{"imagePullSecrets": [{"name": "<pull-secret-name>"}]}'
Note: If you do not create a separate service account, the service account name is "default." - Optionally update the Helm Chart image pull secret configurations with the above Secret name.For example:
values.global.pullSecret: <pull-secret-name>
Image signature verification (Optional)
You can verify and ensure only IBM signed images are pulled in your environment by setting up image signature verification.
Prerequisites- Ensure access to Entitled Registry (ER).
- Ensure
Skopeo
package is installed from GitHub. - Ensure a local image repository is available to pull the image from ER.
- Download and extract the container files listed below. For v6.1.2.1 and v6.1.2.2 image_sign.zip, and for v6.1.2.3 onwards images_sign.zip. The zip file contains:
b2bpublickey.gpg
- Public key used to verify the signature of the container image.certificate.pem and chain0.pem
- Certificate chain used to verify the validity of the certificate used to sign the container image.
Setting up automatic signature enforcement
Perform the following steps to set up automatic signature verification:
- Make the required changes in the
/etc/containers/policy.json
file. Set"default" : "type"
asreject
and add an entry for the ER repository in"transports"
.{ "default": [ { "type":"reject" } ], "transports": { "docker": { "cp.icr.io/cp/ibm-b2bi/b2bi": [{ "type": "signedBy", "keyType": "GPGKeys", "keyPath": "<b2bpublickey.gpg>"}] } } }
Note: To extract older unsigned images in your environment, change thepolicy.json
to set"type":"insecureAcceptAnything"
for ER repository, as shown below.{ "default": [ { "type":"insecureAcceptAnything" } ], "transports": { "docker": { "cp.icr.io/cp/ibm-b2bi/b2bi": [{ "type": "insecureAcceptAnything"} ] } } }
- Execute the following command to pull image from ER to your internal Docker
repository.
skopeo copy docker://cp.icr.io/cp/ibm-b2bi/b2bi:<tag> docker://<local_repository>:<tag> --src-creds iamapikey:key --dest-creds username:password For example, skopeo copy docker://cp.icr.io/cp/ibm-b2bi/b2bi:6.1.2.0 docker://dockerrepo:5000/b2bi:6.1.2.0 --src-creds iamapikey:key –dest-creds myuser:mypwd
Verifying signature manually
- Import the public key from the IBM package to the customer on prem keyring and note
the fingerprint.
sudo gpg2 --import <b2bpublickey.gpg>
- Pull the image locally.
sudo skopeo copy docker:// cp.icr.io/cp/ibm-b2bi/b2bi:6.1.2.0 dir:<imagedir> --src-creds iamapikey:key
- Verify the signature manually.
sudo skopeo standalone-verify <imagedir>/manifest.json <local image reference /repo:tag> <gpgkeyfingerprint> <imagedir>/signature #verify that the image pulled was signed by the private pair of the gpg public key. Remove spaces from gpgkeyfingerprint #The gpgkeyfingerprint can be retrieved using sudo gpg2 --fingerprint
- Compare the certificate to contain the public
key.
openssl x509 -text -in <certificate.pem> #shows the certificate details, e.g. it is signed by IBM and Digicert gpg2 -v --list-packets <public.gpg> #shows the public key details
You can compare the exponent/data of the public key and the certificate to see that the public key is indeed the one within the certificate.
Certificate Modulus:00:e2:45:27:25:e9:a3:1f:c2:37:27:ac:4c:89:86: ae:32:d5:2a:84:69:3b:01:cb:54:34:b0:b3:1b:6d: ....... Exponent: 65537 (0x10001) Public key: pkey[0]: E2452725E9A31FC23727AC4C8986AE32D52A84693B01CB5434B0B31B6D pkey[1]: 010001
Note: You can use the following command to validate that the certificate used for signing the image is not expired:openssl ocsp -no_nonce -issuer <chain0.pem> -cert <certificate.pem> -VAfile <chain0.pem> -text -url http://ocsp.digicert.com -respout ocsptest
Important: The certificate is refreshed once in two years.