Logica di valutazione della policy multiaccount
Puoi consentire a un principale in un account di accedere alle risorse in un secondo account. Questo è chiamato accesso tra account. Quando consenti l'accesso tra account, l'account in cui si trova il principale viene denominato l'account attendibile . L'account in cui si trova la risorsa è l'account che concede fiducia .
Per consentire l'accesso tra account, collega una policy basata sulle risorse alla risorsa che desideri condividere. Devi inoltre collegare una policy basata sull'identità all'identità che agisce come il principale nella richiesta. La policy basata su risorse nell'account che concede fiducia deve specificare il principale dell'account attendibile che avrà accesso alla risorsa. Puoi specificare l'intero account o i relativi utenti IAM, i principali utente federato AWS STS, i ruoli IAM o le sessioni del ruolo assunto. Puoi anche specificare un servizio AWS come un principale. Per ulteriori informazioni, consulta Come specificare un principale.
La policy basata su identità del principale deve consentire l'accesso richiesto alla risorsa nel servizio che concede fiducia. A questo scopo, specifica l'ARN della risorsa.
In IAM, puoi collegare una policy basata sulle risorse a un ruolo IAM per consentire ai principali in altri account di assumere tale ruolo. La policy basata sulle risorse del ruolo è denominata policy di attendibilità del ruolo. Dopo aver assunto tale ruolo, i principali consentiti possono utilizzare le credenziali temporanee risultanti per accedere a più risorse nell'account. Questo accesso è definito nella policy di autorizzazioni basata su identità del ruolo. Per informazioni sul perché consentire l'accesso tra account utilizzando i ruoli è diverso dal consentire l'accesso tra account utilizzando altre policy basate sulle risorse, consulta Accesso alle risorse multi-account in IAM.
Importante
Altri servizi possono influire sulla logica di valutazione dei criteri. Ad esempio, AWS Organizations supporta le policy di controllo del servizio e le policy di controllo delle risorse che possono essere applicate a principali e risorse in uno o più account. AWS Resource Access Manager supporta i frammenti di policy che controllano le azioni che i principali possono eseguire sulle risorse con essi condivise.
Determinare se una richiesta tra account è consentita
Per le richieste tra account, il richiedente nell'AccountA attendibile deve disporre di una policy basata su identità. Tale policy deve consentire di effettuare una richiesta alla risorsa nell' che concede fiducia AccountB. Inoltre, la policy basata sulle risorse nell'AccountB deve consentire al richiedente nell'AccountA di accedere alla risorsa.
Quando effettui una richiesta tra account, AWS esegue due valutazioni. AWS valuta la richiesta nell'account che concede fiducia e nell'account attendibile. Per ulteriori informazioni su come una richiesta viene valutata all'interno di un singolo account, consulta In che modo la logica del codice di applicazione AWS valuta le richieste per consentire o negare l'accesso. La richiesta è consentita solo se entrambe le valutazioni restituiscono come decisione Allow.
-
Quando un principale in un account effettua una richiesta per accedere a una risorsa in un altro account, questa è una richiesta tra account.
-
Il principale che esegue la richiesta esiste nell'account attendibile (
AccountA). Quando AWS valuta questo account, controlla la policy basata su identità e le eventuali policy che possono limitare una policy basata su identità. Per ulteriori informazioni, consulta Valutazione delle policy basate su identità con i limiti delle autorizzazioni. -
La risorsa richiesta esiste nell'account che concede fiducia (
AccountB). Quando AWS valuta questo account, controlla la policy basata sulle risorse collegata alla risorsa richiesta e le eventuali policy che possono limitare una policy basata sulle risorse. Per ulteriori informazioni, consulta Valutazione delle policy basate su identità con policy basate su risorse. -
AWS consente la richiesta solo se entrambe le valutazioni della policy dell'account consentono la richiesta.
Il seguente diagramma di flusso fornisce un'illustrazione più dettagliata di come viene presa una decisione di valutazione delle policy per una richiesta multi-account. Ricordiamo che AWS consente la richiesta solo se entrambe le valutazioni della policy dell'account consentono la richiesta.
Esempio di valutazione della policy multiaccount
Nell'esempio seguente viene illustrato uno scenario in cui a un utente in un account vengono concesse autorizzazioni da una policy basata sulle risorse in un secondo account.
Supponiamo che Carlos sia uno sviluppatore con un ruolo IAM denominato Demo nell'account 111111111111. Vuole salvare un file nel bucket amzn-s3-demo-bucket-production-logs di Amazon S3 nell'account 222222222222.
Supponiamo inoltre che la policy seguente sia collegata al ruolo IAM Demo.
L'istruzione AllowS3ListRead in questa policy consente a Carlos di visualizzare un elenco di tutti i bucket in Amazon S3. L'istruzione AllowS3ProductionObjectActions consente a Carlos l'accesso completo al bucket amzn-s3-demo-bucket-production.
Inoltre, la seguente policy basata sulle risorse (denominata policy del bucket) è collegata al bucket amzn-s3-demo-bucket-production nell'account 222222222222.
Questa policy consente al ruolo Demo di accedere agli oggetti nel bucket amzn-s3-demo-bucket-production. Il ruolo può creare e modificare, ma non eliminare gli oggetti nel bucket. Il ruolo non riesce a gestire il bucket da solo.
Quando Carlos esegue la richiesta di salvataggio di un file nel bucket amzn-s3-demo-bucket-production-logs, AWS determina quali siano le policy applicabili alla richiesta. In questo caso, la policy basata su identità collegata al ruolo Demo è la sola policy valida nell'account 111111111111. Nell'account 222222222222, non esiste una policy basata sulle risorse collegata al bucket amzn-s3-demo-bucket-production-logs. Quando AWS valuta l'account 111111111111, restituisce come decisione Deny. Questo perché l'istruzione DenyS3Logs nella policy basata su identità nega esplicitamente l'accesso a qualsiasi bucket di log. Per ulteriori informazioni su come una richiesta viene valutata all'interno di un singolo account, consulta In che modo la logica del codice di applicazione AWS valuta le richieste per consentire o negare l'accesso.
Poiché la richiesta viene negata esplicitamente all'interno di uno degli account, la decisione finale è di negare la richiesta.
Supponi che Carlos si renda conto del suo errore e cerchi di salvare il file nel bucket Production. AWS controlla innanzitutto l'account 111111111111 per determinare se la richiesta è consentita. Vale solo la policy basata su identità e consente la richiesta. AWS controlla quindi l'account 222222222222. Vale solo la policy basata sulle risorse collegata al bucket Production e consente la richiesta. Poiché entrambi gli account consentono la richiesta, la decisione finale è di consentire la richiesta.