title: GCP cloud storage: 403-Forbidden while executing `Storage.BucketAccessControls.List` request
body: <p>I am trying to list ACLs for Google cloud storage buckets using the Java client. I am creating the client like this:</p>
  
  <pre><code>  // create client
    GoogleCredential credential = GoogleCredential.fromStream(jsonCredentialsString));
  
    if(credential.createScopedRequired()) {
      credential = credential.createScoped(StorageScopes.all());
    }
  
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
  
    return new Storage.Builder(httpTransport, jsonFactory, credential)
        .setApplicationName("app")
        .build();
  </code></pre>
  
  <p>Now using this client I get <strong>200 OK</strong> to execute <code>Buckets.List</code> request but I get a <strong>403</strong> error while running the <code>Storage.BucketAccessControls.List</code> request.</p>
  
  <p>I am using <em>service account credentials</em>. This is the error I get </p>
  
  <pre><code>com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
  {
    "code" : 403,
    "errors" : [ {
      "domain" : "global",
      "message" : "Forbidden",
      "reason" : "forbidden"
    } ],
    "message" : "Forbidden"
  }
  </code></pre>
  
  <p>What is the correct way to authenticate requests in this case?</p>