GoogleCloudPlatform / GoogleCloudPlatform/pubsec-declarative-toolkit

Regression: The networking-sa service account used by the hub-env requires the role roles/resourcemanager.organizationAdmin

Open
#603 1 comment 0 reactions 1 assignee Claimed by @fmichaelobrien View on GitHub
automation fortinet
Dominant language
Shell
Stars
36
Forks
26
PR merge metrics
No merged PRs in 30d

Description

Part of #446
spawned https://github.com/GoogleCloudPlatform/pubsec-declarative-toolkit/issues/602
```
moving on to remaining dependencies
ichael@cloudshell:~/kcc-oi/kpt (kcc-oi-3552)$ kubectl get gcp -n networking | grep False
computedisk.compute.cnrm.cloud.google.com/hub-mgmt-data-disk 24m False UpdateFailed 24m
computeinstance.compute.cnrm.cloud.google.com/hub-fgt-primary-instance 155m False DependencyNotFound 155m
computeinstance.compute.cnrm.cloud.google.com/hub-fgt-secondary-instance 155m False DependencyNotFound 155m
iampolicymember.iam.cnrm.cloud.google.com/fortigatesdn-sa-fortigatesdnviewer-role-permissions 155m False UpdateFailed 155m

michael@cloudshell:~/kcc-oi/kpt (kcc-oi-3552)$ kubectl describe iampolicymember.iam.cnrm.cloud.google.com/fortigatesdn-sa-fortigatesdnviewer-role-permissions -n networking

Message: Update call failed: error fetching live state for resource: error reading underlying resource: summary: Error when reading or editing Resource "organization \"459065442144\"" with IAM Member: Role "organizations/459065442144/roles/FortigateSdnViewer" Member "serviceAccount:fortigatesdn-sa@xxdmu-admin1-hub-oi11.iam.gserviceaccount.com": Error retrieving IAM policy for organization "459065442144": googleapi: Error 403: The caller does not have permission, forbidden

it needs the same as in core-landing-zone
gcloud organizations add-iam-policy-binding "${ORG_ID}" --member="serviceAccount:${SA_EMAIL}" --role=roles/iam.organizationRoleAdmin --condition=None --quiet > /dev/null 1>&1

michael@cloudshell:~/kcc-oi/kpt (kcc-oi-3552)$ gcloud organizations add-iam-policy-binding "${ORG_ID}" --member="serviceAccount:${SA_EMAIL}" --role=roles/iam.organizationRoleAdmin --condition=None --quiet > /dev/null 1>&1
Updated IAM policy for organization [459065442144].

```
before
Screenshot 2023-10-23 at 22 12 01
after
Screenshot 2023-10-23 at 22 12 41

```
update not picking up - trying delete
michael@cloudshell:~/kcc-oi/kpt (kcc-oi-3552)$ kubectl delete iampolicymember.iam.cnrm.cloud.google.com/fortigatesdn-sa-fortigatesdnviewer-role-permissions -n networking
iampolicymember.iam.cnrm.cloud.google.com "fortigatesdn-sa-fortigatesdnviewer-role-permissions" deleted

not yet
reconcile phase started
computedisk.compute.cnrm.cloud.google.com/hub-mgmt-data-disk reconcile pending
computeinstance.compute.cnrm.cloud.google.com/hub-fgt-primary-instance reconcile pending
computeinstance.compute.cnrm.cloud.google.com/hub-fgt-secondary-instance reconcile pending
iampolicymember.iam.cnrm.cloud.google.com/fortigatesdn-sa-fortigatesdnviewer-role-permissions reconcile pending
iampolicymember.iam.cnrm.cloud.google.com/hub-admin-serviceaccountuser-permissions reconcile successful
iamserviceaccount.iam.cnrm.cloud.google.com/hub-fortigatesdn-sa reconcile successful
iamserviceaccount.iam.cnrm.cloud.google.com/hub-managementvm-sa reconcile successful
project.resourcemanager.cnrm.cloud.google.com/xxdmu-admin1-hub-oi11 reconcile successful
iampolicymember.iam.cnrm.cloud.google.com/fortigatesdn-sa-fortigatesdnviewer-role-permissions reconcile failed

brute force -add owner but first try Organization Administrator (for policy creation) like the core-landing-zone package

gcloud organizations add-iam-policy-binding "${ORG_ID}" --member="serviceAccount:${SA_EMAIL}" --role=roles/resourcemanager.organizationAdmin --condition=None --quiet > /dev/null 1>&1

michael@cloudshell:~/kcc-oi/kpt (kcc-oi-3552)$ gcloud organizations add-iam-policy-binding "${ORG_ID}" --member="serviceAccount:${SA_EMAIL}" --role=roles/resourcemanager.organizationAdmin --condition=None --quiet > /dev/null 1>&1
Updated IAM policy for organization [459065442144].

be patient took 5 min
Warning UpdateFailed 3m36s (x7 over 5m48s) iampolicymember-controller Update call failed: error setting policy member: error applying changes: summary: Error applying IAM policy for organization "459065442144": Error setting IAM policy for organization "459065442144": googleapi: Error 403: The caller does not have permission, forbidden
Normal UpToDate 90s iampolicymember-controller The resource is up to date

Warning UpdateFailed 3m36s (x7 over 5m48s) iampolicymember-controller Update call failed: error setting policy member: error applying changes: summary: Error applying IAM policy for organization "459065442144": Error setting IAM policy for organization "459065442144": googleapi: Error 403: The caller does not have permission, forbidden
Normal UpToDate 90s iampolicymember-controller The resource is up to date

specifically

iampolicymember.iam.cnrm.cloud.google.com/fortigatesdn-sa-fortigatesdnviewer-role-permissions 6m31s True UpToDate 2m12s

```
full network-sa service account roles
```
Access Context Manager Admin
Compute Shared VPC Admin

MISSING...
Organization Administrator
Service Account Admin

optional
Organization Role Administrator
```

Screenshot 2023-10-23 at 22 22 23

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.