用于从计算实例连接到 Bigtable 的身份验证
Auth for connecting to Bigtable from a compute instance
我有一个应用程序使用 com.google.cloud.bigtable.hbase1_2.BigtableConnection
class 连接到 Google Bigtable。这是计算引擎 VM 中的 运行,它设置了默认范围加上 https://www.googleapis.com/auth/bigtable.data
范围(reading/writing 到 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
是否有任何其他方法可以做到这一点,或者是否有配置 属性 我缺少?
所以,我发现它需要访问范围和正确的 IAM 角色才能分配给实例,然后它就可以工作了。范围是
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/bigtable.admin.table
并且 IAM 角色应包括 Bigtable User
角色。
我有一个应用程序使用 com.google.cloud.bigtable.hbase1_2.BigtableConnection
class 连接到 Google Bigtable。这是计算引擎 VM 中的 运行,它设置了默认范围加上 https://www.googleapis.com/auth/bigtable.data
范围(reading/writing 到 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
是否有任何其他方法可以做到这一点,或者是否有配置 属性 我缺少?
所以,我发现它需要访问范围和正确的 IAM 角色才能分配给实例,然后它就可以工作了。范围是
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/bigtable.admin.table
并且 IAM 角色应包括 Bigtable User
角色。