diff --git a/website/source/docs/auth/gcp.html.md b/website/source/docs/auth/gcp.html.md
index e944f8d34b..0f7dadb94a 100644
--- a/website/source/docs/auth/gcp.html.md
+++ b/website/source/docs/auth/gcp.html.md
@@ -141,24 +141,53 @@ scope:
https://www.googleapis.com/auth/cloud-platform
```
-### Required Permissions
+### Required GCP Permissions
-The credentials given to Vault must have the following roles:
+#### Vault Server Permissions
+
+**For `iam`-type Vault roles**, Vault can be given the following roles:
```text
roles/iam.serviceAccountKeyAdmin
-roles/browser
```
-Note that this is the permission **given to the Vault servers**. The IAM
-service account or GCE instance that is authenticating _against_ Vault must
-have the following role:
+**For `gce`-type Vault roles**, Vault can be given the following roles:
+
+```text
+roles/compute.viewer
+```
+
+If you instead wish to create a custom role with only the exact GCP permissions
+required, use the following list of permissions:
+
+```text
+iam.serviceAccounts.get
+iam.serviceAccountKeys.get
+compute.instances.get
+compute.instanceGroups.list
+compute.instanceGroups.listInstances
+```
+
+These allow Vault to:
+
+* verify the service account, either directly authenticating or associated with
+ authenticating GCE instance, exists
+* get the corresponding public keys for verifying JWTs signed by service account
+ private keys.
+* verify authenticating GCE instances exist
+* compare bound fields for GCE roles (zone/region, labels, or membership
+ in given instance groups)
+
+#### Permissions For Authenticating Against Vault
+
+Note that the previously mentioned permissions are given to the _Vault servers_.
+The IAM service account or GCE instance that is **authenticating against Vault**
+must have the following role:
```text
roles/iam.serviceAccountTokenCreator
```
-
## Group Aliases
As of Vault 1.0, roles can specify an `add_group_aliases` boolean parameter