Google Cloud Recomendador
Este documento fornece orientações para ajudar a configurar e integrar o Google Cloud Recommender com o Google Security Operations.
Pré-requisitos
Certifique-se de que conclui todos os passos pré-requisitos antes de configurar a integração.
Crie e configure a função IAM
Na Google Cloud consola, aceda à página Funções da IAM.
Clique em Criar função para criar uma função personalizada com as autorizações necessárias para a integração.
Para uma nova função personalizada, indique o Título, a Descrição e um ID exclusivo.
Defina o Role Launch Stage como General Availability.
Adicione as seguintes autorizações à função criada:
iam.roles.createiam.roles.deleteiam.roles.getiam.roles.listiam.roles.undeleteiam.roles.updateiam.serviceAccounts.createiam.serviceAccounts.deleteiam.serviceAccounts.disableiam.serviceAccounts.enableiam.serviceAccounts.getiam.serviceAccounts.getIamPolicyiam.serviceAccounts.listiam.serviceAccounts.setIamPolicyiam.serviceAccounts.undeleteiam.serviceAccounts.updaterecommender.iamPolicyInsights.getrecommender.iamPolicyInsights.listrecommender.iamPolicyLateralMovementInsights.getrecommender.iamPolicyLateralMovementInsights.listrecommender.iamPolicyRecommendations.getrecommender.iamPolicyRecommendations.listrecommender.iamPolicyRecommendations.updaterecommender.iamServiceAccountInsights.getrecommender.iamServiceAccountInsights.listrecommender.locations.getrecommender.locations.listresourcemanager.folders.getresourcemanager.folders.getIamPolicyresourcemanager.folders.setIamPolicyresourcemanager.organizations.getresourcemanager.organizations.getIamPolicyresourcemanager.organizations.setIamPolicyresourcemanager.projects.getresourcemanager.projects.getIamPolicyresourcemanager.projects.listresourcemanager.projects.setIamPolicysecuritycenter.assets.listsecuritycenter.findings.groupsecuritycenter.findings.listsecuritycenter.findings.listFindingPropertyNamessecuritycenter.findings.setMutesecuritycenter.findings.setStatesecuritycenter.sources.getsecuritycenter.sources.listsecuritycenter.userinterfacemetadata.get
Clique em Criar.
Criar uma conta de serviço
Para criar uma conta de serviço, siga o procedimento para criar uma conta de serviço.
Depois de criar uma conta de serviço, transfira-a como um ficheiro JSON. Tem de fornecer o conteúdo de um ficheiro JSON transferido quando configurar os parâmetros de integração.
Integre o Google Cloud Recommender com o Google SecOps
Para obter instruções detalhadas sobre como configurar uma integração no Google SecOps SOAR, consulte o artigo Configure integrações.
Entradas de integração
Para configurar a integração, use os seguintes parâmetros:
| Parâmetros | |
|---|---|
API Root |
Obrigatório
A raiz da API do serviço Google Cloud Recommender. O valor predefinido é |
Organization ID |
Opcional
O ID da organização que deve ser usado com a integração do Google Cloud Recommender. |
User's Service Account |
Obrigatório
O conteúdo da conta de serviço do Google Cloud Recommender. Certifique-se de que fornece o conteúdo completo do ficheiro JSON da conta de serviço que transferiu quando criou uma conta de serviço. |
Verify SSL |
Opcional
Quando selecionado, o parâmetro verifica se o certificado SSL para a ligação ao servidor do Recomendador é válido. Google Cloud Selecionada por predefinição. |
Ações
Aplique recomendações da IAM
Aplique as recomendações da IAM com base na entrada fornecida.
Esta ação só funciona com as google.iam.policy.Recommender
recomendações.
Entidades
A ação não é executada em entidades.
Dados de ações
Para configurar a ação, use os seguintes parâmetros:
| Parâmetros | |
|---|---|
IAM Recommendations JSON |
Obrigatório
O resultado JSON da recomendação. O resultado JSON pode ser fornecido como um marcador de posição a partir das ações List recommendations ou Get recommendation. |
Resultados da ação
| Tipo de saída da ação | |
|---|---|
| Fixação à parede da caixa | N/A |
| Link da parede da caixa | N/A |
| Mesa de parede para caixas | N/A |
| Tabela de enriquecimento | N/A |
| Estatísticas da entidade | N/A |
| Insight | N/A |
| Resultado JSON | Disponível |
| Widget OOTB | N/A |
| Resultado do script | Disponível |
Resultado do script
| Nome do resultado do script | Valor |
|---|---|
| is_success | Verdadeiro/Falso |
Resultado JSON
{
"applied_recommendations": [
{
"name": "projects/PROJECT_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/217d3019-bae5-4a52-9968-787fdd546a53",
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"lastRefreshTime": "2023-07-28T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 610
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/-",
"value": "USER_ID@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/compute.instanceAdmin"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "USER_ID@example.com",
"/iamPolicy/bindings/*/role": "roles/compute.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"member": "user:USER_ID@example.com",
"removedRole": "roles/compute.admin",
"addedRoles": [
"roles/compute.instanceAdmin"
],
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "SUCCEEDED",
"stateMetadata": {
"applied_by": "bulk_apply_by_automated_script-2023-08-11"
}
},
"etag": "\"892d57ee41baa03e\"",
"recommenderSubtype": "REPLACE_ROLE",
"associatedInsights": [
{
"insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID"
}
],
"priority": "P4"
},
{
"name": "projects/PROJECT_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID",
"description": "Replace the current role with a smaller role to cover the permissions needed.",
"lastRefreshTime": "2023-07-28T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 19
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "add",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/-",
"value": "user:USER_ID@example.com",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
}
},
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:USER_ID@example.com",
"/iamPolicy/bindings/*/role": "roles/storage.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"member": "user:USER_ID@example.com",
"removedRole": "roles/storage.admin",
"addedRoles": [
"roles/storage.objectAdmin"
],
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "SUCCEEDED",
"stateMetadata": {
"applied_by": "bulk_apply_by_automated_script-2023-08-11"
}
},
"etag": "\"af7635ffeb512998\"",
"recommenderSubtype": "REPLACE_ROLE",
"associatedInsights": [
{
"insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID"
}
],
"priority": "P4"
}
],
"failed_recommendations": []
}
Parede da caixa
A ação fornece as seguintes mensagens de saída:
| Mensagem de saída | Descrição da mensagem |
|---|---|
Successfully applied provided IAM recommendations. |
A ação foi concluída com êxito. |
Successfully applied provided IAM recommendation, but some of the
recommendations were not applied. |
A ação foi concluída com êxito. |
No provided IAM recommendations were applied. |
Falha na recomendação. |
Error executing action ACTION_NAME. |
A ação devolveu um erro. |
Receba uma recomendação
Receba uma recomendação específica do serviço Google Cloud Recommender.
Entidades
A ação não é executada em entidades.
Dados de ações
Para configurar a ação, use os seguintes parâmetros:
| Parâmetros | |
|---|---|
Recommendation name |
Obrigatório
Especifica o nome da recomendação a devolver. A ação aceita vários valores como uma string separada por vírgulas. Exemplo da entrada esperada:
projects/projectname/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0f262740-bf4a-4c3d-9573-0da3345cf3f7
|
Resultados da ação
| Tipo de saída da ação | |
|---|---|
| Fixação à parede da caixa | N/A |
| Link da parede da caixa | N/A |
| Mesa de parede para caixas | N/A |
| Tabela de enriquecimento | N/A |
| Estatísticas da entidade | N/A |
| Insight | N/A |
| Resultado JSON | Disponível |
| Widget OOTB | N/A |
| Resultado do script | Disponível |
Resultado do script
| Nome do resultado do script | Valor |
|---|---|
| is_success | Verdadeiro/Falso |
Resultado JSON
[
{
"name": "name",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2023-07-28T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 68
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com",
"/iamPolicy/bindings/*/role": "roles/monitoring.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"member": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com",
"removedRole": "roles/monitoring.admin",
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/"
}
],
"priority": "P4"
}
]
Parede da caixa
A ação fornece as seguintes mensagens de saída:
| Mensagem de saída | Descrição da mensagem |
|---|---|
Successfully found recommendation in the Google Cloud Recommender
service. |
A ação foi concluída com êxito. |
No recommendations were found in the Google Cloud Recommender
service.
|
Os dados não estão disponíveis. |
Error executing action ACTION_NAME. |
A ação devolveu um erro. |
Recomendações de listas
Liste as recomendações disponíveis no Google Cloud serviço de recomendações.
Entidades
A ação não é executada em entidades.
Dados de ações
Para configurar a ação, use os seguintes parâmetros:
| Parâmetros | |
|---|---|
Recommendation Filter |
Opcional
Especifica o filtro para obter as recomendações. O parâmetro deve ser uma string num dos seguintes formatos:
Se não for indicado nenhum valor, a ação obtém o ID do projeto a partir da conta de serviço configurada. |
Recommendation Location |
Obrigatório
Especifica a Google Cloud localização para obter recomendações. A predefinição é |
Recommendation State |
Opcional
Especifica o estado da recomendação a devolver. A predefinição é Os valores possíveis são os seguintes:
|
Recommendation Priority |
Opcional
Especifica a prioridade de uma recomendação a devolver. Podem ser especificados vários valores como uma string separada por vírgulas. |
Recommender Subtype |
Opcional
Especifica o subtipo de recomendador devolvido. A predefinição é Os valores possíveis são os seguintes:
|
Max Records To Return |
Opcional
Especifica o número de registos a devolver. Se não for indicado nenhum valor, a ação devolve 50 registos por predefinição. |
Resultados da ação
| Tipo de saída da ação | |
|---|---|
| Fixação à parede da caixa | N/A |
| Link da parede da caixa | N/A |
| Mesa de parede para caixas | Disponível |
| Tabela de enriquecimento | N/A |
| Estatísticas da entidade | N/A |
| Insight | N/A |
| Resultado JSON | Disponível |
| Widget OOTB | N/A |
| Resultado do script | Disponível |
Resultado do script
| Nome do resultado do script | Valor |
|---|---|
| is_success | Verdadeiro/Falso |
Resultado JSON
[
{
"name": "name",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2023-07-27T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 68
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID",
"/iamPolicy/bindings/*/role": "roles/monitoring.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/",
"member": "serviceAccount:SERVICE_ACCOUNT_ID",
"removedRole": "roles/monitoring.admin",
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects/i/locations/global/insightTypes/"
}
],
"priority": "P4"
},
{
"name": "name",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2023-07-27T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 5
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "user:USER_ID@example.com",
"/iamPolicy/bindings/*/role": "roles/chroniclesm.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects",
"member": "user:USER_ID@example.com",
"removedRole": "roles/chroniclesm.admin",
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects"
}
],
"priority": "P4"
}
]
Parede da caixa
A ação fornece as seguintes mensagens de saída:
| Mensagem de saída | Descrição da mensagem |
|---|---|
Successfully found recommendations for the provided criteria in
the Google Cloud Recommender service. |
A ação foi concluída com êxito. |
No recommendations were found for the provided criteria in the
Google Cloud Recommender service. |
Não existem dados disponíveis. |
Error executing action ACTION_NAME. |
A ação devolveu um erro. |
A ação fornece a seguinte tabela de registo de ocorrências:
| Recomendações disponíveis | |
|---|---|
| Colunas |
|
Tchim-tchim
Teste a conetividade ao serviço Google Cloud Recommender com os parâmetros fornecidos na página de configuração da integração no separador Google SecOps Marketplace.
Entidades
A ação não é executada em entidades.
Dados de ações
N/A
Resultados da ação
| Tipo de saída da ação | |
|---|---|
| Fixação à parede da caixa | N/A |
| Link da parede da caixa | N/A |
| Mesa de parede para caixas | N/A |
| Tabela de enriquecimento | N/A |
| Estatísticas da entidade | N/A |
| Insight | N/A |
| Resultado JSON | N/A |
| Widget OOTB | N/A |
| Resultado do script | Disponível |
Resultado do script
| Nome do resultado do script | Valor |
|---|---|
| is_success | Verdadeiro/Falso |
Parede da caixa
A ação fornece as seguintes mensagens de saída:
| Mensagem de saída | Descrição da mensagem |
|---|---|
Successfully connected to the Google Cloud Recommender service
with the provided connection parameters! |
A ação foi concluída com êxito. |
Failed to connect to the Google Cloud Recommender service!
|
A ação devolveu um erro. |
Atualize a recomendação
Atualize a recomendação no Google Cloud serviço de recomendações.
Entidades
A ação não é executada em entidades.
Dados de ações
Use os seguintes parâmetros para configurar a ação:
| Parâmetros | |
|---|---|
Recommendation name |
Obrigatório
Especifica o nome da recomendação a atualizar. A ação aceita vários valores como uma string separada por vírgulas. Exemplo da entrada esperada:
|
Recommendation State |
Opcional
Especifica o estado para o qual a recomendação deve mudar. A predefinição é Os valores possíveis são os seguintes:
|
Recommendation Result |
Opcional
Especifica o resultado para o qual a recomendação deve ser alterada. A predefinição é Os valores possíveis são os seguintes:
|
Resultados da ação
| Tipo de saída da ação | |
|---|---|
| Fixação à parede da caixa | N/A |
| Link da parede da caixa | N/A |
| Mesa de parede para caixas | N/A |
| Tabela de enriquecimento | N/A |
| Estatísticas da entidade | N/A |
| Insight | N/A |
| Resultado JSON | Disponível |
| Widget OOTB | N/A |
| Resultado do script | Disponível |
Resultado do script
| Nome do resultado do script | Valor |
|---|---|
| is_success | Verdadeiro/Falso |
Resultado JSON
[
{
"name": "name",
"description": "This role has not been used during the observation window.",
"lastRefreshTime": "2023-07-28T07:00:00Z",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 68
}
}
},
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"resourceType": "cloudresourcemanager.googleapis.com/Project",
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilters": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com",
"/iamPolicy/bindings/*/role": "roles/monitoring.admin"
}
}
]
}
],
"overview": {
"resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
"member": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com",
"removedRole": "roles/monitoring.admin",
"minimumObservationPeriodInDays": "0"
}
},
"stateInfo": {
"state": "ACTIVE"
},
"etag": "",
"recommenderSubtype": "REMOVE_ROLE",
"associatedInsights": [
{
"insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/"
}
],
"priority": "P4"
}
]
Parede da caixa
A ação fornece as seguintes mensagens de saída:
| Mensagem de saída | Descrição da mensagem |
|---|---|
Successfully updated recommendation in the Google Cloud
Recommender service. |
A ação foi concluída com êxito. |
No recommendations were found in the Google Cloud Recommender
service.
|
Os dados não estão disponíveis. |
Error executing action ACTION_NAME. |
A ação devolveu um erro. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.