Skip to content

Instantly share code, notes, and snippets.

@seeker815
Last active February 2, 2023 06:44
Show Gist options
  • Save seeker815/4b8df54ee2a41bccb5ec84547582b13b to your computer and use it in GitHub Desktop.
Save seeker815/4b8df54ee2a41bccb5ec84547582b13b to your computer and use it in GitHub Desktop.
service account gap
const saApiAdmin = new gcp.serviceaccount.Account(`sa-apiadmin-${projectEnv}`, {
accountId: `sa-apiadmin-${projectEnv}`,
displayName: `A service account used for bucket access for API`,
});
const storageRWRole = new gcp.projects.IAMCustomRole(`role-api-storage-rw-${projectEnv}`, {
description: "Bucket/pubsub read write role",
permissions: [
"storage.objects.create",
"storage.objects.list",
"storage.objects.get",
"storage.objects.update",
"storage.multipartUploads.create",
"storage.multipartUploads.listParts",
"storage.multipartUploads.abort",
"resourcemanager.projects.getIamPolicy",
],
roleId: `roleapistoragerw${projectEnv}`,
title: `role-api-storage-rw-${projectEnv}`,
});
const saApiAdminIam = new gcp.serviceaccount.IAMBinding("saapiadmin-account-iam", {
serviceAccountId: saApiAdmin.name,
role: storageRWRole.id,
members: [pulumi.concat("serviceAccount", ":", saApiAdmin.email)],
});
export const saAdmin = saApiAdmin.email;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment