用于从计算实例

时间:2017-08-09 17:39:03

标签: bigtable google-cloud-bigtable

我有一个使用com.google.cloud.bigtable.hbase1_2.BigtableConnection课程连接到Google Bigtable的应用。这是在计算引擎VM中运行的,该VM具有默认范围设置加上https://www.googleapis.com/auth/bigtable.data范围(读取/写入Bigtable所需)。当属性google.bigtable.auth.json.keyfile设置为适当的auth文件时,连接正常。

但是,我想避免设置此属性,只使用为实例设置的作用域,以便不必在实例上保留密钥文件。这似乎不起作用。错误消息是

Caused by: com.google.bigtable.repackaged.io.grpc.StatusRuntimeException: PERMISSION_DENIED: Request had insufficient authentication scopes.
    at com.google.bigtable.repackaged.io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:230)
    at com.google.bigtable.repackaged.io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:211)
    at com.google.bigtable.repackaged.io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:144)
    at com.google.bigtable.admin.v2.BigtableTableAdminGrpc$BigtableTableAdminBlockingStub.listTables(BigtableTableAdminGrpc.java:371)
    at com.google.cloud.bigtable.grpc.BigtableTableAdminGrpcClient.listTables(BigtableTableAdminGrpcClient.java:52)
    at org.apache.hadoop.hbase.client.AbstractBigtableAdmin.requestTableList(AbstractBigtableAdmin.java:258)
    ... 8 more

还有其他方法可以做到这一点,还是我缺少配置属性?

1 个答案:

答案 0 :(得分:1)

因此,我发现它需要将访问范围以及正确的IAM角色分配给实例,然后才能工作。范围是

https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/bigtable.admin.table

,IAM角色应包含Bigtable User角色。