Integrar o Inventário de recursos do Cloud ao Google SecOps
Este documento explica como integrar o Inventário de recursos do Cloud ao Google Security Operations (Google SecOps).
Versão da integração: 12.0
Na plataforma Google SecOps, a integração do Inventário de recursos do Cloud é chamada de Inventário de recursos do Google Cloud.
Antes de começar
Para usar a integração, você precisa de um papel do Identity and Access Management (IAM) e de uma Google Cloud conta de serviço.
Criar e configurar um papel personalizado do IAM
Para criar um papel personalizado do IAM e configurar uma permissão específica para ele, siga estas etapas:
No console do Google Cloud , acesse a página Papéis do IAM.
Clique em Criar papel para criar um papel personalizado com as permissões necessárias para a integração.
Para uma nova função personalizada, forneça o Título, a Descrição e um ID exclusivo.
Defina o Estágio de lançamento da função como Disponibilidade geral.
Adicione a seguinte permissão ao papel criado:
cloudasset.assets.searchAllResources
Criar e configurar uma conta de serviço
Para integrar o Inventário de recursos do Cloud ao Google SecOps, use uma conta de serviço atual ou crie uma nova. Para orientações sobre como criar uma conta de serviço, consulte Criar contas de serviço.
A integração do Inventário de recursos do Cloud exige que você conceda à sua conta de serviço o papel personalizado criado na seção anterior e o papel Cloud Asset Viewer.
Se você não usar um e-mail de identidade da carga de trabalho para configurar a integração, crie uma chave de conta de serviço em JSON depois de criar uma conta de serviço. Você precisa fornecer todo o conteúdo do arquivo de chave JSON baixado ao configurar os parâmetros de integração.
Por motivos de segurança, recomendamos que você use endereços de e-mail de identidade da carga de trabalho em vez de chaves JSON da conta de serviço. Para mais informações sobre as identidades de carga de trabalho, consulte Identidades para cargas de trabalho.
Conceder uma função personalizada a um principal
Depois de conceder a nova função personalizada a um principal selecionado, ele poderá mudar permissões para qualquer usuário na sua organização.
Para conceder o papel personalizado a um principal, siga estas etapas:
No console do Google Cloud , acesse a página IAM.
No campo Filtro, cole o valor do e-mail da identidade de carga de trabalho que você usa para a integração do Inventário de recursos do Cloud e pesquise o principal atual.
Clique em Editar principal. A caixa de diálogo Editar acesso a "PROJECT" será aberta.
Em Atribuir papéis, clique em Adicionar outro papel.
Selecione os papéis predefinidos do Inventário de recursos do Cloud.
Clique em Salvar.
Parâmetros de integração
A integração do Cloud Asset Inventory exige os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
API Root |
Obrigatório
A raiz da API da instância do Inventário de recursos do Cloud. O valor padrão é |
Organization ID |
Opcional
O ID da organização a ser usado na integração do Inventário de recursos do Cloud. |
Project ID |
Opcional O ID do projeto a ser usado para a integração do Inventário de recursos do Cloud. Se você não definir um valor para esse parâmetro, a integração vai recuperar o ID do projeto do conteúdo do arquivo JSON fornecido no parâmetro |
User's Service Account |
Obrigatório
O conteúdo do arquivo JSON da chave da conta de serviço. É possível configurar esse parâmetro ou o Para configurar esse parâmetro, forneça todo o conteúdo do arquivo JSON da chave da conta de serviço que você baixou ao criar uma conta de serviço. |
Quota Project ID |
Opcional O ID do projeto Google Cloud que você usa para
APIs Google Cloud e faturamento. Para usar esse parâmetro, conceda o papel Se você não definir um valor para esse parâmetro, a integração vai extrair o ID do projeto da sua conta de serviço Google Cloud . |
Workload Identity Email |
Opcional O endereço de e-mail do cliente da sua conta de serviço. É possível configurar esse parâmetro ou o Para representar contas de serviço com a federação de identidade da carga de trabalho,
conceda o papel |
Verify SSL |
Obrigatório
Se selecionada, a integração verifica se o certificado SSL para conexão com o servidor do Inventário de recursos do Cloud é válido. Essa opção é selecionada por padrão. |
Para instruções detalhadas sobre como configurar uma integração no Google SecOps, consulte Configurar integrações.
Você pode fazer mudanças mais tarde, se necessário. Depois de configurar uma instância de integração, você pode usá-la em playbooks. Para mais informações sobre como configurar e oferecer suporte a várias instâncias, consulte Suporte a várias instâncias.
Ações
Para mais informações sobre ações, consulte Responder a ações pendentes na Sua mesa de trabalho e Realizar uma ação manual.
Recurso de enriquecimento
Use a ação Enriquecer recurso para enriquecer informações sobre um recurso Google Cloudusando o Inventário de recursos do Cloud.
A ação não é executada em entidades do Google SecOps.
Entradas de ação
Para configurar a ação Enriquecer recurso, use os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Resource Names |
Obrigatório
Uma lista separada por vírgulas que contém os nomes dos recursos para buscar detalhes. Para configurar esse parâmetro, insira o nome completo do recurso de metadados no seguinte formato: |
Fields To Return |
Opcional
Uma lista de campos separados por vírgulas a serem retornados. O valor padrão é Exemplos de valores:
A ação sempre retorna o campo Há também uma opção para configurar filtros avançados. Por exemplo, para
retornar uma chave específica de |
Saídas de ação
A ação Enriquecer recurso fornece as seguintes saídas:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Anexo do Painel de Casos | Indisponível |
| Link do Painel de Casos | Indisponível |
| Tabela do painel de casos | Indisponível |
| Tabela de enriquecimento | Indisponível |
| Resultado JSON | Disponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Resultado JSON
O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Enriquecer recurso:
[
{
"Entity": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT/keys/KEY_ID",
"EntityResult": {
"additionalAttributes": {
"email": "email@example.iam.gserviceaccount.com",
"uniqueId": 123456789
},
"name": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT/keys/KEY_ID",
"assetType": "iam.googleapis.com/ServiceAccountKey",
"project": "projects/PROJECT",
"displayName": "projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com/keys/KEY_ID",
"createTime": "2022-05-26T17:35:07Z",
"versionedResources": [
{
"version": "v1",
"resource": {
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED",
"name": "projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com/keys/KEY_ID",
"validAfterTime": "2022-05-26T17:35:07Z",
"validBeforeTime": "9999-12-31T23:59:59Z"
}
}
],
"organization": "organizations/ORGANIZATION",
"parentFullResourceName": "//iam.googleapis.com/projects/PROJECT/serviceAccounts/SERVICE_ACCOUNT@PROJECT.iam.gserviceaccount.com",
"parentAssetType": "iam.googleapis.com/ServiceAccount"
}
}
]
Mensagens de saída
A ação Enrich Resource pode retornar as seguintes mensagens de saída:
| Mensagem de resposta | Descrição da mensagem |
|---|---|
|
A ação foi concluída. |
Error executing action "Enrich resources". Reason:
ERROR_REASON |
A ação falhou. Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais. |
Resultado do script
A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Enriquecer recurso:
| Nome do resultado do script | Valor |
|---|---|
is_success |
True ou False |
Acessar snapshot de recurso
Use a ação Receber snapshot de recurso para receber informações sobre o recurso usando o Inventário de recursos do Cloud.
Essa ação não é executada em entidades do Google SecOps.
Entradas de ação
Para configurar a ação Get Resource Snapshot, use os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Resource Names |
Obrigatório Uma lista separada por vírgulas de recursos para buscar detalhes. Para configurar esse parâmetro, insira o nome completo do recurso de metadados no seguinte formato: |
Fields To Return |
Opcional Uma lista de campos separados por vírgulas a serem retornados. Insira cada campo no seguinte formato: assets.FIELD
Exemplos de valores: A ação sempre retorna o campo O valor padrão é |
Saídas de ação
A ação Receber snapshot de recurso fornece as seguintes saídas:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Anexo do Painel de Casos | Indisponível |
| Link do Painel de Casos | Indisponível |
| Tabela do painel de casos | Indisponível |
| Tabela de enriquecimento | Indisponível |
| Resultado JSON | Disponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Resultado JSON
Os exemplos a seguir mostram as saídas de resultados JSON recebidas ao usar a ação Receber snapshot de recurso:
Resultado JSON para Google Cloud
[ { "Entity": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/example-instance", "EntityResult": { "window": { "startTime": "2023-08-14T19:43:41.805828Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/example-instance", "assetType": "compute.googleapis.com/Instance", "resource": { "version": "v1", "discoveryDocumentUri": "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest", "discoveryName": "Instance", "parent": "//cloudresourcemanager.googleapis.com/projects/example-project-id", "data": { "description": "", "serviceAccounts": [ { "email": "user@example.com", "scopes": [ "https://www.googleapis.com/auth/devstorage.read_only", "https://www.googleapis.com/auth/logging.write", "https://www.googleapis.com/auth/monitoring.write", "https://www.googleapis.com/auth/servicecontrol", "https://www.googleapis.com/auth/service.management.readonly", "https://www.googleapis.com/auth/trace.append" ] } ], "lastStartTimestamp": "2022-05-26T01:44:52.756-07:00", "deletionProtection": false, "name": "example-name", "keyRevocationActionType": "NONE_ON_KEY_REVOCATION", "canIpForward": false, "shieldedInstanceIntegrityPolicy": { "updateAutoLearnPolicy": true }, "zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "resourceStatus": {}, "scheduling": { "onHostMaintenance": "MIGRATE", "preemptible": false, "provisioningModel": "STANDARD", "automaticRestart": true }, "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/machineTypes/e2-micro", "confidentialInstanceConfig": { "enableConfidentialCompute": false }, "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance", "id": "example-id", "fingerprint": "example-fingerprint", "startRestricted": false, "networkInterfaces": [ { "network": "https://www.googleapis.com/compute/v1/projects/example-project/global/networks/example-network", "stackType": "IPV4_ONLY", "name": "example", "subnetwork": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/subnetworks/example-network-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External NAT", "natIP": "192.0.2.1", "networkTier": "PREMIUM" } ], "fingerprint": "example-fingerprint", "networkIP": "203.0.113.2" } ], "allocationAffinity": { "consumeAllocationType": "ANY_ALLOCATION" }, "labelFingerprint": "example-label", "shieldedInstanceConfig": { "enableSecureBoot": false, "enableVtpm": true, "enableIntegrityMonitoring": true }, "cpuPlatform": "Intel Broadwell", "creationTimestamp": "2022-05-26T01:44:40.323-07:00", "status": "RUNNING", "disks": [ { "guestOsFeatures": [ { "type": "VIRTIO_SCSI_MULTIQUEUE" }, { "type": "SEV_CAPABLE" }, { "type": "UEFI_COMPATIBLE" }, { "type": "GVNIC" } ], "interface": "SCSI", "shieldedInstanceInitialState": { "dbxs": [ { "content": "2gcDBhMRFQAAAAAAAAAAABENAAAAAvEOndK", "fileType": "BIN" } ], "dbx": [ { "fileType": "BIN", "content": "2gcDBhMRFQAAAAAAAAAAABENAAAAAvEOndK" } ] }, "diskSizeGb": "10", "deviceName": "example-device-name", "type": "PERSISTENT", "source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/example-instance", "boot": true, "licenses": [ "https://www.googleapis.com/compute/v1/projects/example-project/global/licenses" ], "index": 0, "autoDelete": true, "mode": "READ_WRITE" } ], "tags": { "items": [ "http-server" ], "fingerprint": "example-fingerprint" }, "displayDevice": { "enableDisplay": false }, "reservationAffinity": { "consumeReservationType": "ANY_ALLOCATION" } }, "location": "us-central1-a" }, "ancestors": [ "projects/example-project-id", "organizations/example-org-id" ], "updateTime": "2023-08-14T19:43:41.805828Z" } } }, { "Entity": "//iam.googleapis.com/projects/example-project/serviceAccounts/example-account-id", "EntityResult": { "window": { "startTime": "2023-12-22T13:37:50Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//iam.googleapis.com/projects/example-project/serviceAccounts/example-account-id", "assetType": "iam.googleapis.com/ServiceAccount", "resource": { "version": "v1", "discoveryDocumentUri": "https://iam.googleapis.com/$discovery/rest", "discoveryName": "ServiceAccount", "parent": "//cloudresourcemanager.googleapis.com/projects/example-project-id", "data": { "name": "projects/example-project/serviceAccounts/cloud-asset-inventory-auto@example-project.iam.gserviceaccount.com", "projectId": "example-project", "email": "cloud-asset-inventory-auto@example-project.iam.gserviceaccount.com", "uniqueId": "example-account-id", "displayName": "Cloud Asset Inventory Automation", "oauth2ClientId": "example-account-id" } }, "ancestors": [ "projects/example-project-id", "organizations/example-org-id" ], "updateTime": "2023-12-22T13:37:50Z" } } } ]
Resultado JSON para AWS
[ { "Entity": "//cloudasset.googleapis.com/organizations/example-org-id/otherCloudConnections/aws/arn:aws:s3:::aps-max-test-bucket", "EntityResult": { "assets": [ { "window": { "startTime": "2024-01-24T17:51:03.412233028Z", "endTime": "2262-04-11T23:47:16.854775807Z" }, "asset": { "name": "//cloudasset.googleapis.com/organizations/example-org-id/otherCloudConnections/aws/arn:aws:s3:::aps-max-test-bucket", "assetType": "cloudasset.googleapis.com/AWS::S3::Bucket", "resource": { "version": "v1", "discoveryDocumentUri": "n/a", "discoveryName": "n/a", "data": { "dataSourceProvider": "AMAZON_WEB_SERVICES", "supplementaryConfigurations": { "PublicAccessBlockConfiguration": { "BlockPublicPolicy": true, "RestrictPublicBuckets": true, "BlockPublicAcls": true, "IgnorePublicAcls": true }, "TagSet": [ { "Key": "my-key2", "Value": "my-value2" }, { "Key": "my-key1", "Value": "my-value1" } ], "ServerSideEncryptionConfiguration": { "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" }, "BucketKeyEnabled": true } ] }, "AccessControlPolicy": { "Grants": [ { "Grantee": { "DisplayName": "example", "ID": "example-id", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" } ], "Owner": { "DisplayName": "example", "ID": "example-id" } } }, "configuration": { "Name": "aps-max-test-bucket", "CreationDate": "2023-12-04T15:29:50+00:00" }, "tags": { "my-key2": "my-value2", "my-key1": "my-value1" }, "originalResourceName": "arn:aws:s3:::aps-max-test-bucket", "awsAccount": "arn:aws:organizations::example-id:account/example-account/example-account-id" }, "location": "global" }, "ancestors": [ "organizations/example-org-id" ], "updateTime": "2024-01-24T17:51:03.412233028Z" } } ] } } ]
Mensagens de saída
A ação Get Resource Snapshot pode retornar as seguintes mensagens de saída:
| Mensagem de resposta | Descrição da mensagem |
|---|---|
Successfully returned information about the following resources
using Google Cloud Asset Inventory:
ASSET_IDENTIFIER
|
A ação foi concluída. |
Error executing action "Get Resource Snapshot". Reason:
ERROR_REASON |
A ação falhou. Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais. |
Resultado do script
A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Receber snapshot do recurso:
| Nome do resultado do script | Valor |
|---|---|
is_success |
True ou False |
Listar papéis da conta de serviço
Use a ação List Service Account Roles para listar os papéis relacionados à conta de serviço Google Cloud usando o Inventário de recursos do Cloud.
Essa ação não é executada em entidades do Google SecOps.
Entradas de ação
Para configurar a ação List Service Account Roles, use os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Service Accounts |
Obrigatório Uma lista separada por vírgulas de contas de serviço para buscar detalhes. |
Check Roles |
Opcional Uma lista separada por vírgulas de papéis a serem verificados em relação
à conta de serviço, como |
Check Permissions |
Opcional Uma lista separada por vírgulas de permissões a serem verificadas em relação à conta de serviço, como |
Expand Permissions |
Opcional Se selecionada, a ação vai retornar informações sobre todas as permissões exclusivas relacionadas ao recurso. Não selecionada por padrão. |
Max Roles To Return |
Obrigatório O número de papéis relacionados à conta de serviço que serão retornados. O valor padrão é 100. |
Max Permissions To Return |
Obrigatório O número de permissões relacionadas à conta de serviço a serem retornadas. |
Saídas de ação
A ação List Service Account Roles fornece as seguintes saídas:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Anexo do Painel de Casos | Indisponível |
| Link do Painel de Casos | Indisponível |
| Tabela do painel de casos | Indisponível |
| Tabela de enriquecimento | Indisponível |
| Resultado JSON | Disponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Resultado JSON
O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação List Service Account Roles:
{
"roles": ["role1", "role2"],
"unique_permissions": ["permission1", "permission2"]
}
Mensagens de saída
A ação List Service Account Roles pode retornar as seguintes mensagens de saída:
| Mensagem de resposta | Descrição da mensagem |
|---|---|
|
A ação foi concluída. |
Error executing action "List Service Account Roles". Reason:
ERROR_REASON |
A ação falhou. Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais. |
Ping
Use a ação Ping para testar a conectividade com o Inventário de recursos do Cloud.
A ação não é executada em entidades do Google SecOps.
Entradas de ação
Nenhuma.
Saídas de ação
A ação Ping fornece as seguintes saídas:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Anexo do Painel de Casos | Indisponível |
| Link do Painel de Casos | Indisponível |
| Tabela do painel de casos | Indisponível |
| Tabela de enriquecimento | Indisponível |
| Resultado JSON | Indisponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Mensagens de saída
A ação Ping pode retornar as seguintes mensagens de saída:
| Mensagem de resposta | Descrição da mensagem |
|---|---|
Successfully connected to the Google Cloud Asset Inventory
server with the provided connection parameters! |
A ação foi concluída. |
Failed to connect to the Google Cloud Asset Inventory server!
|
A ação falhou. |
Resultado do script
A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Ping:
| Nome do resultado do script | Valor |
|---|---|
is_success |
True ou False |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.