代码之家  ›  专栏  ›  技术社区  ›  talonx

用于从计算实例连接到Bigtable的身份验证

  •  1
  • talonx  · 技术社区  · 7 年前

    我有一个应用程序使用 com.google.cloud.bigtable.hbase1_2.BigtableConnection 班这是在计算引擎VM内运行的,该VM具有设置的默认作用域和 https://www.googleapis.com/auth/bigtable.data 范围(读取/写入Bigtable所需)。当属性 google.bigtable.auth.json.keyfile 设置为适当的身份验证文件。

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

    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 回复  |  直到 7 年前
        1
  •  1
  •   talonx    7 年前

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

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

    Bigtable User