Опция, которую я изучал, приведена ниже.
При чтении документа https://cloud.google.com/security-command-center/docs/how-to-api-list-assets#listing_all_assets обнаруживается, что мы можем получить список всех активов с помощью API Security Command Center.
Ниже приведен код, приведенный в документации.
static ImmutableList<ListAssetsResult> listAssets(OrganizationName organizationName) {
try (SecurityCenterClient client = SecurityCenterClient.create()) {
// Start setting up a request for to search for all assets in an organization.
// OrganizationName organizationName = OrganizationName.of(/*organizationId=*/"123234324");
ListAssetsRequest.Builder request =
ListAssetsRequest.newBuilder().setParent(organizationName.toString());
// Call the API.
ListAssetsPagedResponse response = client.listAssets(request.build());
// This creates one list for all assets. If your organization has a large number of assets
// this can cause out of memory issues. You can process them incrementally by returning
// the Iterable returned response.iterateAll() directly.
ImmutableList<ListAssetsResult> results = ImmutableList.copyOf(response.iterateAll());
System.out.println("All assets:");
System.out.println(results);
return results;
} catch (IOException e) {
throw new RuntimeException("Couldn't create client.", e);
}
}
Выполнение команд в командном центре безопасности возвращает ошибку "PERMISSION_DENIED: разрешение 'securitycenter.assets.list' отказано в ресурсе 'organization / {organization" -id} '(или ресурс может не существовать) "в ответ.
Согласно следующему документу https://cloud.google.com/security-command-center/docs/access-control, разрешение' securitycenter.assets.list 'должно быть установлено на УРОВЕНЬ ОРГАНИЗАЦИИ, который проблематичен c.
Я ищу возможность обойти вышеупомянутую проблему, когда мне не нужны разрешения на уровне организации или какой-либо другой API, который помог бы мне сделать это.