<p>I am using getSignedUrl to get a public authenticated url for a video. It is working fine in my local machine. But after deploying it in GKE, it is not working. I have checked a related question on <a href="https://stackoverflow.com/questions/53305784/signingerror-with-firebase-getsignedurl">SigningError with Firebase getSignedUrl()</a>. But I don't see a service account for GKE to configure those roles. I have already assigned full storage and service enabled permissions to the cluster while creating the kubernetes cluester.</p>
<p>Do I have to add any more permissions to get rid of this error or should I do anything else.</p>

smnth90
<p>This issue got fixed. I have followed this link <a href="https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform#console" rel="nofollow noreferrer">https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform#console</a> to fix this issue.</p>
<p>We have to access the service account from the GKE. Google cloud service accounts are not directly accessed by the GKE. I have Followed the below steps to access google cloud service account from GKE.</p>
<ol>
<li>We have to create service account with the required roles - Storage Object Creator and Service Account Token Creator.</li>
<li>Generate a key and save the json file in your app for one time.</li>
<li>Add volume, volumeMounts, GOOGLE_APPLICATION_CREDENTIALS env variable to deployment.yaml</li>
<li>Use <code>kubectl create secret generic [key name] --from-file=key.json=PATH-TO-KEY-FILE.json </code></li>
<li>Deploy your manifest using <code>kubectl apply -f deployment.yaml</code>.</li>
</ol>
<p>These steps will provide access to storage and service account which will fix the signingError.</p>
