Google Java SDK를 사용하여 서비스 계정을 만들고 관리하고 있습니다. 일반적으로 잘 작동합니다. 그러나 새로 생성 된 ServiceAccount에 'bigquery.jobUser'역할을 추가하려고 시도하지만 API가 역할이 내 리소스에 유효하지 않다고 알려줍니다.Java SDK ("지원되지 않음")를 사용하여 ServiceAccount에 bigquery.jobUser 역할을 제공 하시겠습니까?
이 영역에서 찾을 수있는 Java SDK에 대한 많은 설명서가 없으므로 아마도 내 리소스를 지정하는 과정에서 분명히 잘못된 작업을하고 있습니다.
누군가가 이걸 볼 수 있고 어떤 것이 튀어 나오는지 확인할 수 있습니까? 나는 일이에서 봤는데 내가 "sooooo를 가까이 있어요처럼 ....
// assume successful service account creation:
serviceAccount = create.execute();
// now set the IAM policy for bigquery.user for this service account.
String[] serviceAccountsArray = new String[] {"serviceAccount:" + serviceAccount.getEmail()};
String targetRole = "roles/bigquery.jobUser";
LinkedList<Binding> bindings = new LinkedList<>();
Binding targetBinding = new Binding();
targetBinding.setRole(targetRole);
bindings.add(targetBinding);
targetBinding.setMembers(Arrays.asList(serviceAccountsArray));
Policy policy = new Policy();
policy.setBindings(bindings);
SetIamPolicyRequest setIamPolicyRequest = new SetIamPolicyRequest();
setIamPolicyRequest.setPolicy(policy);
Iam.Projects.ServiceAccounts.SetIamPolicy setIamPolicy = iam.
projects()
.serviceAccounts()
.setIamPolicy("projects/" + bigQueryProjectId + "/serviceAccounts/" + serviceAccount.getEmail(), setIamPolicyRequest);
Policy newPolicy = setIamPolicy.execute();
을 불행하게도 나는 항상 다음과 같은 예외 얻을 느낌 :
com.google.api.client.googleapis.json.GoogleJsonResponseException:
400 Bad Request
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Role roles/bigquery.jobUser is not supported for this resource.",
"reason" : "badRequest"
} ],
"message" : "Role roles/bigquery.jobUser is not supported for this resource.",
"status" : "INVALID_ARGUMENT"
}
미리 정의 된 다른 역할에 대해 작동합니까? https://cloud.google.com/bigquery/docs/access-control#bigquery.user –
읽어 주셔서 감사합니다 ... 불행히도, 나는 그 문서에서 정의 된 모든 역할/bigquery. * 역할을 시도했습니다. Java SDK를 사용하여 서비스 계정에 역할을 추가하는 올바른 방법을 근본적으로 오해해야하지만이 작업에 대한 설명서 나 코드 샘플을 찾을 수 있으면 당황 스럽습니다. – SantaCruzDeveloper