Condizioni IAM per l'accesso granulare
In questa pagina viene descritto come limitare l'accesso alle connessioni utilizzando le condizioni IAM.
Una condizione IAM ti consente di avere un controllo granulare sulle risorse di Integration Connectors. Per impostazione predefinita, un utente o un ruolo di Integration Connectors può eseguire tutte le operazioni supportate su una connessione. Utilizzando le condizioni IAM, puoi limitare un utente o un ruolo specifico in modo che esegua solo operazioni selezionate su una connessione. Ad esempio, puoi limitare un utente in modo che possa modificare solo le connessioni il cui nome inizia con test-connection e non abbia altre autorizzazioni sulle connessioni, come la sottoscrizione agli eventi o la visualizzazione dei metadati dello schema.
Prima di iniziare
Integration Connectors utilizza Identity and Access Management (IAM) di Google Cloud per gestire i ruoli e le autorizzazioni per le risorse di Integration Connectors. Pertanto, prima di specificare o modificare le condizioni in IAM per le risorse di Integration Connectors, acquisisci familiarità con i seguenti concetti di IAM:
- Risorsa
- Gerarchia delle risorse
- Ruoli
- Ruoli personalizzati
- Autorizzazioni
- Autorizzazioni solo per i genitori
Aggiunta di condizioni IAM
Per aggiungere una condizione IAM a una risorsa di Integration Connectors, devi disporre delle seguenti informazioni:
- URI della risorsa denominata: ogni risorsa in Integration Connectors ha un URI della risorsa univoco. Ad esempio, l'URI della risorsa di connessione è
projects/PROJECT_ID/locations/CONNECTION_LOCATION/connections/{connection_name}. Per l'elenco completo di tutti gli URI disponibili, consulta Risorse REST di Integration Connectors. Per controllare le autorizzazioni di accesso per una risorsa a livello granulare, devi denominare la risorsa in base a una convenzione di denominazione. In base ai tuoi requisiti, puoi decidere la convenzione di denominazione che vuoi utilizzare. Ad esempio, puoi aggiungere il prefissomarketing-per tutte le connessioni di proprietà del team di marketing. In questo esempio, l'URI della risorsa per le connessioni del team di marketing inizierà conprojects/PROJECT_ID/locations/CONNECTION_LOCATION/connections/marketing-. - Autorizzazioni solo per i genitori: controlla se una risorsa o una delle sue risorse figlio richiede l'autorizzazione solo per i genitori. Per saperne di più, consulta Autorizzazioni solo per i genitori.
- Tipo di risorsa: puoi restringere ulteriormente l'ambito delle risorse filtrando in base a un tipo di risorsa nella condizione. Integration Connectors supporta le condizioni per le seguenti risorse:
Nome della risorsa Tipo di risorsa Connessione connectors.googleapis.com/Connection ManagedZone connectors.googleapis.com/ManagedZone EndpointAttachment connectors.googleapis.com/EndpointAttachment EventSubscription connectors.googleapis.com/EventSubscription ConnectionSchemaMetadata connectors.googleapis.com/ConnectionSchemaMetadata
Esempi
La tabella seguente elenca le condizioni delle risorse di esempio che puoi applicare a un utente o a un ruolo di Integration Connectors.
| Condizione della risorsa IAM | Descrizione |
|---|---|
(resource.name.startsWith
("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-") && resource.type == "connectors.googleapis.com/Connection")
|| (resource.type != "connectors.googleapis.com/Connection"
&& resource.name.extract("/operations/{operation}") == "") |
Un utente o un ruolo a cui applichi questa condizione può eseguire solo le seguenti operazioni:
L'utente non può visualizzare, annullare o eliminare singole operazioni a lunga esecuzione. Per consentire all'utente di monitorare l'avanzamento delle operazioni, consulta Consenti agli utenti con limitazioni di monitorare le operazioni. |
(resource.name.startsWith
("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-") && resource.type == "connectors.googleapis.com/Connection") ||
(resource.name.startsWith ("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-") && resource.type == "connectors.googleapis.com/ConnectionSchemaMetadata")
|| (resource.type != "connectors.googleapis.com/Connection"
&& resource.type != "connectors.googleapis.com/ConnectionSchemaMetadata"
&& resource.name.extract("/operations/{operation}") == "") |
Un utente o un ruolo a cui applichi questa condizione può eseguire solo le seguenti operazioni:
L'utente non può visualizzare, annullare o eliminare singole operazioni a lunga esecuzione. |
Consenti agli utenti con limitazioni di monitorare le operazioni
Quando le condizioni negli esempi precedenti escludono le operazioni, un utente con limitazioni può comunque creare, aggiornare ed eliminare le connessioni che è autorizzato a gestire, ma non può controllare lo stato delle operazioni a lunga esecuzione risultanti. Se un utente con limitazioni deve monitorare le operazioni, concedigli un ruolo personalizzato separato senza una condizione, che contenga solo l'autorizzazione connectors.operations.get.
Con questo ruolo, l'utente può visualizzare qualsiasi operazione nel progetto, incluse le operazioni per le connessioni a cui non può accedere in altro modo. Si tratta delle stesse informazioni di connessione che l'utente può già visualizzare perché può elencare tutte le connessioni. Non concedere le autorizzazioni connectors.operations.cancel o connectors.operations.delete agli utenti il cui accesso è limitato da una condizione, perché queste autorizzazioni consentirebbero loro di annullare o eliminare le operazioni per qualsiasi connessione nel progetto.
Aggiunta di condizioni IAM per i service account di Application Integration
Puoi applicare le condizioni IAM al account di servizio di Application Integration, in modo da limitare le connessioni
a cui il account di servizio può accedere durante l'esecuzione dell'integrazione. Ad esempio, puoi limitare un account di servizio in modo che possa accedere solo alle connessioni il cui nome inizia con marketing-.
Per saperne di più, consulta Applica le condizioni IAM a un service account.
La tabella seguente elenca le condizioni delle risorse di esempio che puoi applicare per un account di servizio di Application Integration.
| Condizione della risorsa IAM | Descrizione |
|---|---|
resource.name.startsWith
("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-") |
Il account di servizio a cui applichi questa condizione può eseguire solo le connessioni il cui nome inizia con marketing-. |
Passaggi successivi
Consulta le seguenti informazioni nella documentazione IAM:
- Aggiunta di un'associazione di ruoli condizionale a una policy
- Modifica un'associazione di ruoli condizionale esistente
- Rimozione di un'associazione di ruoli condizionale