Esamina gli insight sui criteri per i bucket Cloud Storage

Questa pagina mostra come gestire gli insight sui criteri a livello di bucket, che sono risultati basati sul machine learning sull'utilizzo delle autorizzazioni per i bucket di Cloud Storage. Gli insight sui criteri possono aiutarti a identificare quali entità hanno autorizzazioni di cui non hanno bisogno.

Questa pagina è incentrata sugli insight dei criteri per i bucket. Il motore per suggerimenti offre anche insight sui criteri per progetti, cartelle e organizzazioni.

A volte, gli insight sui criteri a livello di bucket sono collegati a consigli sui ruoli. I suggerimenti dei ruoli suggeriscono le azioni che puoi intraprendere per risolvere i problemi identificati dalle informazioni sui criteri a livello di bucket.

Prima di iniziare

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire gli insight sui criteri a livello di bucket, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto per cui vuoi gestire gli insight:

  • Per visualizzare gli insight sui criteri a livello di bucket: Visualizzatore motore per suggerimenti IAM (roles/recommender.iamViewer)
  • Per modificare gli insight sui criteri a livello di bucket: Amministratore motore per suggerimenti IAM (roles/recommender.iamAdmin)

Per maggiori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire gli insight sui criteri a livello di bucket. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

  • Per visualizzare gli approfondimenti sui criteri a livello di bucket:
    • recommender.iamPolicyInsights.get
    • recommender.iamPolicyInsights.list
  • Per modificare gli approfondimenti sui criteri a livello di bucket: recommender.iamPolicyInsights.update

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Elenco insight sui criteri a livello di bucket

Per elencare tutti gli insight sui criteri a livello di bucket per il progetto, utilizza uno dei seguenti metodi:

gcloud

Utilizza il comando gcloud recommender insights list per visualizzare tutti gli insight sui criteri a livello di bucket per il tuo progetto.

Prima di eseguire il comando, sostituisci i seguenti valori:

  • PROJECT_ID: l'ID del progetto per il quale vuoi elencare gli insight.
  • LOCATION: la località dei bucket di cui vuoi elencare gli approfondimenti.
gcloud recommender insights list --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION\
    --filter="insightSubtype:PERMISSIONS_USAGE_STORAGE_BUCKET"

L'output elenca tutti gli insight sui criteri a livello di bucket per il tuo progetto nella località specificata. Ad esempio:

INSIGHT_ID                            CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME     SEVERITY  INSIGHT_SUBTYPE                   DESCRIPTION
00dd7eb5-15c2-4fb3-a9b2-1a85f842462b  SECURITY  ACTIVE         2022-05-24T07:00:00Z  CRITICAL  PERMISSIONS_USAGE_STORAGE_BUCKET  2 of the permissions in this role binding were used in the past 90 days.
04307297-f57c-416d-9323-38abac450db0  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       PERMISSIONS_USAGE_STORAGE_BUCKET  2 of the permissions in this role binding were used in the past 90 days.
04845da5-74ba-46b4-a0f3-47d83095c261  SECURITY  ACTIVE         2022-05-24T07:00:00Z  CRITICAL  PERMISSIONS_USAGE_STORAGE_BUCKET  1 of the permissions in this role binding were used in the past 90 days.
0a39f643-d7a8-4c11-b490-fecd74290fb5  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       PERMISSIONS_USAGE_STORAGE_BUCKET  2 of the permissions in this role binding were used in the past 90 days.
0a4cee48-777b-4dea-a2b0-702b70da4b6f  SECURITY  ACTIVE         2022-05-24T07:00:00Z  CRITICAL  PERMISSIONS_USAGE_STORAGE_BUCKET  0 of the permissions in this role binding were used in the past 90 days.
0b2d147c-b26e-4afe-8fab-449c6e793750  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       PERMISSIONS_USAGE_STORAGE_BUCKET  0 of the permissions in this role binding were used in the past 90 days.
0b5eacc5-ba9a-45f6-aea2-bcdc33ce2a2d  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       PERMISSIONS_USAGE_STORAGE_BUCKET  1 of the permissions in this role binding were used in the past 90 days.
0bb3032d-721c-44e8-b464-5293f235281c  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       PERMISSIONS_USAGE_STORAGE_BUCKET  3 of the permissions in this role binding were used in the past 90 days.

REST

Il metodo insights.list dell'API motore per suggerimenti elenca tutti gli insight sui criteri a livello di bucket per il tuo progetto.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto per il quale vuoi elencare gli insight.
  • LOCATION: la località dei bucket di cui vuoi elencare gli approfondimenti.

Metodo HTTP e URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights?filter=insightSubtype%20%3D%20PERMISSIONS_USAGE_STORAGE_BUCKET

Per inviare la richiesta, espandi una delle seguenti opzioni:

La risposta elenca tutti gli insight sui criteri a livello di bucket per il tuo progetto nella località specificata. Ad esempio:

{
  "insights": [
    {
      "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b",
      "description": "2 of the permissions in this role binding were used in the past 90 days.",
      "content": {
        "role": "roles/storage.legacyBucketReader",
        "member": "allUsers",
        "condition": {
          "expression": "",
          "title": "",
          "description": "",
          "location": ""
        },
        "exercisedPermissions": [
          {
            "permission": "storage.buckets.get"
          },
          {
            "permission": "storage.objects.list"
          }
        ],
        "inferredPermissions": [],
        "currentTotalPermissionsCount": "3"
      },
      "lastRefreshTime": "2022-05-24T07:00:00Z",
      "observationPeriod": "7772400s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883"
        }
      ],
      "targetResources": [
        "//storage.googleapis.com/bucket-1"
      ],
      "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET",
      "etag": "\"2a8784e529b80aea\"",
      "severity": "CRITICAL"
    },
    {
      "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/04307297-f57c-416d-9323-38abac450db0",
      "description": "2 of the permissions in this role binding were used in the past 90 days.",
      "content": {
        "role": "roles/storage.legacyBucketReader",
        "member": "projectViewer:my-project",
        "condition": {
          "expression": "",
          "title": "",
          "description": "",
          "location": ""
        },
        "exercisedPermissions": [
          {
            "permission": "storage.buckets.get"
          },
          {
            "permission": "storage.objects.list"
          }
        ],
        "inferredPermissions": [],
        "currentTotalPermissionsCount": "3"
      },
      "lastRefreshTime": "2022-05-24T07:00:00Z",
      "observationPeriod": "7772400s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/f3198e63-7f76-462e-a980-8e6370ff32d6"
        }
      ],
      "targetResources": [
        "//storage.googleapis.com/bucket-2"
      ],
      "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET",
      "etag": "\"5b60b935f27caf2c\"",
      "severity": "LOW"
    }
  ]
}

Per scoprire di più sui componenti di un approfondimento, consulta Esaminare gli insight sui criteri a livello di bucket in questa pagina.

Ottenere un singolo approfondimento del criterio a livello di bucket

Per ottenere maggiori informazioni su un singolo approfondimento, tra cui la descrizione, lo stato e gli eventuali suggerimenti a cui è associato, utilizza uno dei seguenti metodi:

gcloud

Utilizza il comando gcloud recommender insights describe con il tuo ID approfondimento per visualizzare le informazioni su un singolo approfondimento.

  • INSIGHT_ID: l'ID dell'approfondimento che vuoi visualizzare. Per trovare l'ID, elenca gli insight per il tuo progetto.
  • PROJECT_ID: l'ID del progetto per il quale vuoi gestire gli insight.
  • LOCATION: la località del bucket di cui vuoi ottenere gli insight.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION

L'output mostra l'approfondimento. Ad esempio, il seguente approfondimento indica che tutti gli utenti (allUsers) hanno il ruolo Lettore bucket legacy (roles/storage.legacyBucketReader) nel bucket bucket-1, ma che questo ruolo ha utilizzato solo due delle autorizzazioni in quel ruolo negli ultimi 90 giorni:

associatedRecommendations:
- recommendation: projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  currentTotalPermissionsCount: '3'
  exercisedPermissions:
  - permission: storage.buckets.get
  - permission: storage.objects.list
  inferredPermissions: []
  member: allUsers
  role: roles/storage.legacyBucketReader
description: 2 of the permissions in this role binding were used in the past 90 days.
etag: '"2a8784e529b80aea"'
insightSubtype: PERMISSIONS_USAGE_STORAGE_BUCKET
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b
observationPeriod: 7772400s
severity: CRITICAL
stateInfo:
  state: ACTIVE
targetResources:
- //storage.googleapis.com/bucket-1

Per scoprire di più sui componenti di un approfondimento, consulta Esaminare gli insight sui criteri a livello di bucket in questa pagina.

REST

Il metodo insights.get del motore per suggerimenti riceve un singolo approfondimento.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto per il quale vuoi gestire gli insight.
  • LOCATION: la località del bucket di cui vuoi ottenere gli insight.
  • INSIGHT_ID: l'ID dell'approfondimento che vuoi visualizzare. Se non conosci l'ID insight, puoi trovarlo elencando gli insight nel tuo progetto. L'ID di un approfondimento è tutto dopo insights/ nel campo name per l'approfondimento.

Metodo HTTP e URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID

Per inviare la richiesta, espandi una delle seguenti opzioni:

La risposta contiene l'approfondimento. Ad esempio, il seguente approfondimento indica che tutti gli utenti (allUsers) hanno il ruolo Lettore bucket legacy (roles/storage.legacyBucketReader) nel bucket bucket-1, ma che questo ruolo ha utilizzato solo due delle autorizzazioni in quel ruolo negli ultimi 90 giorni:

{
  "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b",
  "description": "2 of the permissions in this role binding were used in the past 90 days.",
  "content": {
    "role": "roles/storage.legacyBucketReader",
    "member": "allUsers",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [
      {
        "permission": "storage.buckets.get"
      },
      {
        "permission": "storage.objects.list"
      }
    ],
    "inferredPermissions": [],
    "currentTotalPermissionsCount": "3"
  },
  "lastRefreshTime": "2022-05-24T07:00:00Z",
  "observationPeriod": "7772400s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883"
    }
  ],
  "targetResources": [
    "//storage.googleapis.com/bucket-1"
  ],
  "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET",
  "etag": "\"2a8784e529b80aea\"",
  "severity": "CRITICAL"
}

Per scoprire di più sui componenti di un approfondimento, consulta Esaminare gli insight sui criteri a livello di bucket in questa pagina.

Esamina gli approfondimenti sulle norme a livello di bucket

Dopo aver ricevuto un singolo insight, puoi esaminarne i contenuti per comprendere lo schema di utilizzo delle risorse evidenziato.

I contenuti di un approfondimento sono determinati dai relativi sottotipi. Gli insight sui criteri a livello di bucket (google.iam.policy.Insight) hanno il sottotipo PERMISSIONS_USAGE_STORAGE_BUCKET.

Gli approfondimenti PERMISSIONS_USAGE_STORAGE_BUCKET hanno i seguenti componenti, non necessariamente in questo ordine:

  • associatedRecommendations: gli identificatori per eventuali consigli associati all'approfondimento. Se non sono disponibili suggerimenti associati all'approfondimento, questo campo è vuoto.
  • category: la categoria degli insight IAM è sempre SECURITY.
  • content: segnala l'utilizzo dell'autorizzazione di un'entità per un ruolo specifico. Questo campo contiene i seguenti componenti:

    • condition: qualsiasi condizione associata all'associazione che concede l'entità al ruolo. Se non ci sono condizioni, questo campo contiene una condizione vuota.
    • exercisedPermissions: le autorizzazioni nel ruolo utilizzato dall'entità durante il periodo di osservazione.
    • inferredPermissions: le autorizzazioni del ruolo che il motore per suggerimenti ha determinato, tramite ML, di cui probabilmente l'entità ha bisogno in base alle autorizzazioni che ha utilizzato.
    • member: l'entità il cui utilizzo dell'autorizzazione è stato analizzato.
    • role: il ruolo per cui è stato analizzato l'utilizzo dell'autorizzazione.
  • description: un riepilogo leggibile degli insight.
  • etag: un identificatore univoco per lo stato corrente di un approfondimento. Ogni volta che l'approfondimento cambia, viene assegnato un nuovo valore etag.

    Per modificare lo stato di un approfondimento, devi fornire il etag dell'approfondimento esistente. L'uso dell'etag garantisce che le operazioni vengano eseguite solo se l'approfondimento non è cambiato dall'ultimo recupero.

  • insightSubtype: il sottotipo di approfondimento.
  • lastRefreshTime: la data dell'ultimo aggiornamento dell'approfondimento, che indica l'aggiornamento dei dati utilizzati per generare l'approfondimento.
  • name: il nome dell'approfondimento, nel seguente formato:

    projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID

    I segnaposto hanno i seguenti valori:

    • PROJECT_ID: l'ID del progetto in cui è stato generato l'approfondimento.
    • LOCATION: la località del bucket a cui è destinato l'approfondimento.
    • INSIGHT_ID: un ID univoco per l'approfondimento.
  • observationPeriod: periodo di tempo che precede l'approfondimento. L'origine dati utilizzata per generare l'approfondimento termina alle ore lastRefreshTime e inizia da lastRefreshTime meno observationPeriod.
  • stateInfo: gli insight vengono sottoposti a più transizioni di stato dopo che vengono proposti:

    • ACTIVE: l'approfondimento è stato generato, ma non sono state eseguite azioni oppure è stata eseguita un'azione senza aggiornare lo stato dell'approfondimento. Gli insight attivi vengono aggiornati quando i dati sottostanti cambiano.
    • ACCEPTED: sono state intraprese alcune azioni in base alle informazioni ottenute. Gli approfondimenti vengono accettati quando un consiglio associato è stato contrassegnato come CLAIMED, SUCCEEDED o FAILED oppure quando l'approfondimento è stato accettato direttamente. Quando un approfondimento è nello stato ACCEPTED, il contenuto dell'approfondimento non può cambiare. Gli approfondimenti accettati vengono conservati per 90 giorni dopo essere stati accettati.
  • targetResources: il nome completo della risorsa del bucket a cui è destinato l'approfondimento. Ad esempio: //storage.googleapis.com/my-bucket.

Contrassegna un approfondimento del criterio a livello di bucket come ACCEPTED

Se intervieni in base a un insight attivo, puoi contrassegnare questo insight come ACCEPTED. Lo stato ACCEPTED indica all'API motore per suggerimenti che hai intrapreso un'azione in base a queste informazioni, il che aiuta a perfezionare i consigli per te.

Gli approfondimenti accettati vengono conservati per 90 giorni dopo che sono stati contrassegnati come ACCEPTED.

gcloud

Utilizza il comando gcloud recommender insights mark-accepted con il tuo ID approfondimento per contrassegnare un approfondimento come ACCEPTED.

  • INSIGHT_ID: l'ID dell'approfondimento che vuoi visualizzare. Per trovare l'ID, elenca gli insight per il tuo progetto.
  • PROJECT_ID: l'ID del progetto per il quale vuoi gestire gli insight.
  • LOCATION: la località del bucket di cui vuoi contrassegnare gli insight come ACCEPTED.
  • ETAG: un identificatore per una versione degli insight. Per ottenere etag, procedi nel seguente modo:

    1. Acquisisci informazioni utilizzando il comando gcloud recommender insights describe.
    2. Trova e copia il valore etag dall'output, comprese le virgolette. Ad esempio, "d3cdec23cc712bd0".
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION \
    --etag=ETAG

L'output mostra l'approfondimento, ora con lo stato ACCEPTED:

associatedRecommendations:
- recommendation: projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  currentTotalPermissionsCount: '3'
  exercisedPermissions:
  - permission: storage.buckets.get
  - permission: storage.objects.list
  inferredPermissions: []
  member: allUsers
  role: roles/storage.legacyBucketReader
description: 2 of the permissions in this role binding were used in the past 90 days.
etag: '"0187c0362e4bcea7"'
insightSubtype: PERMISSIONS_USAGE_STORAGE_BUCKET
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b
observationPeriod: 7772400s
severity: CRITICAL
stateInfo:
  state: ACCEPTED
targetResources:
- //storage.googleapis.com/bucket-1

Per scoprire di più sulle informazioni sullo stato per un insight, consulta Approfondimenti sulle norme a livello di bucket in questa pagina.

REST

L'API insights.markAccepted del motore per suggerimenti contrassegna un insight come ACCEPTED.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto per il quale vuoi gestire gli insight.
  • LOCATION: la località del bucket di cui vuoi contrassegnare gli insight come ACCEPTED.
  • INSIGHT_ID: l'ID dell'approfondimento che vuoi visualizzare. Se non conosci l'ID insight, puoi trovarlo elencando gli insight nel tuo progetto. L'ID di un approfondimento è tutto dopo insights/ nel campo name per l'approfondimento.
  • ETAG: un identificatore per una versione degli insight. Per ottenere etag, procedi nel seguente modo:
    1. Ottieni insight utilizzando il metodo insights.get.
    2. Trova e copia il valore etag dalla risposta.

Metodo HTTP e URL:

POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID:markAccepted

Corpo JSON richiesta:

{
  "etag": "ETAG"
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

La risposta contiene l'approfondimento, ora con lo stato ACCEPTED:

{
  "name": "projects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/00dd7eb5-15c2-4fb3-a9b2-1a85f842462b",
  "description": "2 of the permissions in this role binding were used in the past 90 days.",
  "content": {
    "role": "roles/storage.legacyBucketReader",
    "member": "allUsers",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [
      {
        "permission": "storage.buckets.get"
      },
      {
        "permission": "storage.objects.list"
      }
    ],
    "inferredPermissions": [],
    "currentTotalPermissionsCount": "3"
  },
  "lastRefreshTime": "2022-05-24T07:00:00Z",
  "observationPeriod": "7772400s",
  "stateInfo": {
    "state": "ACCEPTED"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/us/recommenders/google.iam.policy.Recommender/recommendations/4a31a9d4-5132-4616-8a1f-fb07fad01883"
    }
  ],
  "targetResources": [
    "//storage.googleapis.com/bucket-1"
  ],
  "insightSubtype": "PERMISSIONS_USAGE_STORAGE_BUCKET",
  "etag": "\"9a5485cdc1f05b58\"",
  "severity": "CRITICAL"
}

Per scoprire di più sulle informazioni sullo stato per un insight, consulta Approfondimenti sulle norme a livello di bucket in questa pagina.

Passaggi successivi