2017-08-09 108 views
1

我有一个应用程序使用com.google.cloud.bigtable.hbase1_2.BigtableConnection类连接到Google Bigtable。这是运行在一个计算引擎虚拟机中,默认范围设置加上https://www.googleapis.com/auth/bigtable.data范围(读/写Bigtable时需要)。当属性google.bigtable.auth.json.keyfile设置为适当的验证文件时,连接正常工作。Auth从计算实例连接到Bigtable

但是,我想避免设置此属性,只使用为该实例设置的范围,以便密钥文件不必保存在实例上。这似乎并不奏效。错误消息是

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

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

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

并且IAM角色应该包括Bigtable User角色。

+0

很高兴听到您解决了您的问题!你可以请[接受你自己的答案](http://blog.stackoverflow.com/2009/01/accept-your-own-answers/),以便这个问题被标记为关闭?谢谢! –