Skip to content

Commit 256ff2b

Browse files
committed
OSDOCS-12745: Rotating OIDC bound service account signer keys
1 parent 5e07f8a commit 256ff2b

File tree

7 files changed

+643
-177
lines changed

7 files changed

+643
-177
lines changed

_attributes/common-attributes.adoc

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,6 @@ endif::openshift-origin[]
320320
:vmw-first: VMware vSphere
321321
:vmw-full: VMware vSphere
322322
:vmw-short: vSphere
323-
324-
325323
//Token-based auth products
326324
//AWS Security Token Service
327325
:sts-first: Security Token Service (STS)
@@ -333,8 +331,6 @@ endif::openshift-origin[]
333331
//Google Cloud Platform Workload Identity
334332
:gcp-wid-first: Google Cloud Platform Workload Identity
335333
:gcp-wid-short: GCP Workload Identity
336-
337-
338334
// Cluster API terminology
339335
// Cluster CAPI Operator
340336
:cluster-capi-operator: Cluster CAPI Operator
@@ -365,9 +361,8 @@ endif::openshift-origin[]
365361
// Cluster API Provider VMware vSphere
366362
:cap-vsphere-first: Cluster API Provider VMware vSphere
367363
:cap-vsphere-short: Cluster API Provider vSphere
368-
369364
// Hosted control planes related attributes
370365
:hcp-capital: Hosted control planes
371366
:hcp: hosted control planes
372367
:mce: multicluster engine for Kubernetes Operator
373-
:mce-short: multicluster engine Operator
368+
:mce-short: multicluster engine Operator

_unused_topics/manually-creating-iam-gcp.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include::modules/alternatives-to-storing-admin-secrets-in-kube-system.adoc[level
1414
.Additional resources
1515

1616
* xref:../../authentication/managing_cloud_provider_credentials/cco-mode-gcp-workload-identity.adoc#cco-mode-gcp-workload-identity[Using manual mode with GCP Workload Identity]
17-
* xref:../../post_installation_configuration/cluster-tasks.adoc#post-install-rotate-remove-cloud-creds[Rotating or removing cloud provider credentials]
17+
* xref:../../post_installation_configuration/cluster-tasks.adoc#post-install-remove-cloud-creds[Removing cloud provider credentials]
1818
1919
For a detailed description of all available CCO credential modes and their supported platforms, see xref:../../authentication/managing_cloud_provider_credentials/about-cloud-credential-operator.adoc#about-cloud-credential-operator[About the Cloud Credential Operator].
2020

modules/cco-ccoctl-configuring.adoc

Lines changed: 3 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Module included in the following assemblies:
22
//
33
//Postinstall and update content
4-
// * post_installation_configuration/cluster-tasks.adoc
4+
// * post_installation_configuration/changing-cloud-credentials-configuration.adoc
55
// * updating/preparing_for_updates/preparing-manual-creds-update.adoc
66
//
77
//Platforms that must use `ccoctl` and update content
@@ -169,155 +169,8 @@ ifdef::update[]
169169
* You have extracted the `CredentialsRequest` custom resources (CRs) from the {product-title} release image and ensured that a namespace that matches the text in the `spec.secretRef.namespace` field exists in the cluster.
170170
endif::update[]
171171
172-
//AWS permissions needed when running ccoctl during install (I think we can omit from upgrade, since they already have an appropriate AWS account if they are upgrading).
173-
ifdef::aws-sts[]
174-
* You have created an AWS account for the `ccoctl` utility to use with the following permissions:
175-
+
176-
.Required AWS permissions
177-
[%collapsible]
178-
====
179-
**Required `iam` permissions**
180-
181-
* `iam:CreateOpenIDConnectProvider`
182-
* `iam:CreateRole`
183-
* `iam:DeleteOpenIDConnectProvider`
184-
* `iam:DeleteRole`
185-
* `iam:DeleteRolePolicy`
186-
* `iam:GetOpenIDConnectProvider`
187-
* `iam:GetRole`
188-
* `iam:GetUser`
189-
* `iam:ListOpenIDConnectProviders`
190-
* `iam:ListRolePolicies`
191-
* `iam:ListRoles`
192-
* `iam:PutRolePolicy`
193-
* `iam:TagOpenIDConnectProvider`
194-
* `iam:TagRole`
195-
196-
**Required `s3` permissions**
197-
198-
* `s3:CreateBucket`
199-
* `s3:DeleteBucket`
200-
* `s3:DeleteObject`
201-
* `s3:GetBucketAcl`
202-
* `s3:GetBucketTagging`
203-
* `s3:GetObject`
204-
* `s3:GetObjectAcl`
205-
* `s3:GetObjectTagging`
206-
* `s3:ListBucket`
207-
* `s3:PutBucketAcl`
208-
* `s3:PutBucketPolicy`
209-
* `s3:PutBucketPublicAccessBlock`
210-
* `s3:PutBucketTagging`
211-
* `s3:PutObject`
212-
* `s3:PutObjectAcl`
213-
* `s3:PutObjectTagging`
214-
215-
**Required `cloudfront` permissions**
216-
217-
* `cloudfront:ListCloudFrontOriginAccessIdentities`
218-
* `cloudfront:ListDistributions`
219-
* `cloudfront:ListTagsForResource`
220-
====
221-
+
222-
If you plan to store the OIDC configuration in a private S3 bucket that is accessed by the IAM identity provider through a public CloudFront distribution URL, the AWS account that runs the `ccoctl` utility requires the following additional permissions:
223-
+
224-
.Additional permissions for a private S3 bucket with CloudFront
225-
[%collapsible]
226-
====
227-
* `cloudfront:CreateCloudFrontOriginAccessIdentity`
228-
* `cloudfront:CreateDistribution`
229-
* `cloudfront:DeleteCloudFrontOriginAccessIdentity`
230-
* `cloudfront:DeleteDistribution`
231-
* `cloudfront:GetCloudFrontOriginAccessIdentity`
232-
* `cloudfront:GetCloudFrontOriginAccessIdentityConfig`
233-
* `cloudfront:GetDistribution`
234-
* `cloudfront:TagResource`
235-
* `cloudfront:UpdateDistribution`
236-
237-
[NOTE]
238-
=====
239-
These additional permissions support the use of the `--create-private-s3-bucket` option when processing credentials requests with the `ccoctl aws create-all` command.
240-
=====
241-
====
242-
endif::aws-sts[]
243-
244-
//Azure permissions needed when running ccoctl during install.
245-
ifdef::azure-workload-id[]
246-
* You have created a global Microsoft Azure account for the `ccoctl` utility to use with the following permissions:
247-
+
248-
.Required Azure permissions
249-
[%collapsible]
250-
====
251-
* Microsoft.Resources/subscriptions/resourceGroups/read
252-
* Microsoft.Resources/subscriptions/resourceGroups/write
253-
* Microsoft.Resources/subscriptions/resourceGroups/delete
254-
* Microsoft.Authorization/roleAssignments/read
255-
* Microsoft.Authorization/roleAssignments/delete
256-
* Microsoft.Authorization/roleAssignments/write
257-
* Microsoft.Authorization/roleDefinitions/read
258-
* Microsoft.Authorization/roleDefinitions/write
259-
* Microsoft.Authorization/roleDefinitions/delete
260-
* Microsoft.Storage/storageAccounts/listkeys/action
261-
* Microsoft.Storage/storageAccounts/delete
262-
* Microsoft.Storage/storageAccounts/read
263-
* Microsoft.Storage/storageAccounts/write
264-
* Microsoft.Storage/storageAccounts/blobServices/containers/write
265-
* Microsoft.Storage/storageAccounts/blobServices/containers/delete
266-
* Microsoft.Storage/storageAccounts/blobServices/containers/read
267-
* Microsoft.ManagedIdentity/userAssignedIdentities/delete
268-
* Microsoft.ManagedIdentity/userAssignedIdentities/read
269-
* Microsoft.ManagedIdentity/userAssignedIdentities/write
270-
* Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/read
271-
* Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
272-
* Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/delete
273-
* Microsoft.Storage/register/action
274-
* Microsoft.ManagedIdentity/register/action
275-
====
276-
endif::azure-workload-id[]
277-
278-
//GCP permissions needed when running ccoctl during install.
279-
ifdef::google-cloud-platform[]
280-
* You have added one of the following authentication options to the GCP account that the installation program uses:
281-
282-
** The **IAM Workload Identity Pool Admin** role.
283-
284-
** The following granular permissions:
285-
+
286-
.Required GCP permissions
287-
[%collapsible]
288-
====
289-
* compute.projects.get
290-
* iam.googleapis.com/workloadIdentityPoolProviders.create
291-
* iam.googleapis.com/workloadIdentityPoolProviders.get
292-
* iam.googleapis.com/workloadIdentityPools.create
293-
* iam.googleapis.com/workloadIdentityPools.delete
294-
* iam.googleapis.com/workloadIdentityPools.get
295-
* iam.googleapis.com/workloadIdentityPools.undelete
296-
* iam.roles.create
297-
* iam.roles.delete
298-
* iam.roles.list
299-
* iam.roles.undelete
300-
* iam.roles.update
301-
* iam.serviceAccounts.create
302-
* iam.serviceAccounts.delete
303-
* iam.serviceAccounts.getIamPolicy
304-
* iam.serviceAccounts.list
305-
* iam.serviceAccounts.setIamPolicy
306-
* iam.workloadIdentityPoolProviders.get
307-
* iam.workloadIdentityPools.delete
308-
* resourcemanager.projects.get
309-
* resourcemanager.projects.getIamPolicy
310-
* resourcemanager.projects.setIamPolicy
311-
* storage.buckets.create
312-
* storage.buckets.delete
313-
* storage.buckets.get
314-
* storage.buckets.getIamPolicy
315-
* storage.buckets.setIamPolicy
316-
* storage.objects.create
317-
* storage.objects.delete
318-
* storage.objects.list
319-
====
320-
endif::google-cloud-platform[]
172+
//Permissions requirements (per platform, for install and key rotation)
173+
include::snippets/ccoctl-provider-permissions-requirements.adoc[]
321174

322175
.Procedure
323176

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
// Module included in the following assemblies:
22
//
3-
// * post_installation_configuration/cluster-tasks.adoc
3+
// * post_installation_configuration/changing-cloud-credentials-configuration.adoc
44

55
:_mod-docs-content-type: PROCEDURE
66
[id="refreshing-service-ids-ibm-cloud_{context}"]
7-
= Rotating API keys
7+
= Rotating {ibm-cloud-title} credentials
88

99
You can rotate API keys for your existing service IDs and update the corresponding secrets.
1010

1111
.Prerequisites
1212

13-
* You have configured the `ccoctl` binary.
13+
* You have configured the `ccoctl` utility.
1414
* You have existing service IDs in a live {product-title} cluster installed.
1515
1616
.Procedure
1717

18-
* Use the `ccoctl` utility to rotate your API keys for the service IDs and update the secrets:
18+
* Use the `ccoctl` utility to rotate your API keys for the service IDs and update the secrets by running the following command:
1919
+
2020
[source,terminal]
2121
----
22-
$ ccoctl <provider_name> refresh-keys \ <1>
23-
--kubeconfig <openshift_kubeconfig_file> \ <2>
24-
--credentials-requests-dir <path_to_credential_requests_directory> \ <3>
22+
$ ccoctl <provider_name> refresh-keys \// <1>
23+
--kubeconfig <openshift_kubeconfig_file> \// <2>
24+
--credentials-requests-dir <path_to_credential_requests_directory> \// <3>
2525
--name <name> <4>
2626
----
2727
<1> The name of the provider. For example: `ibmcloud` or `powervs`.
@@ -34,4 +34,4 @@ $ ccoctl <provider_name> refresh-keys \ <1>
3434
====
3535
If your cluster uses Technology Preview features that are enabled by the `TechPreviewNoUpgrade` feature set, you must include the `--enable-tech-preview` parameter.
3636
====
37-
--
37+
--

0 commit comments

Comments
 (0)