IAMe chiavi di contesto delle AWS STS condizioni - AWS Identity and Access Management

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

IAMe chiavi di contesto delle AWS STS condizioni

È possibile utilizzare l'Conditionelemento di una JSON policy per testare il valore delle chiavi incluse nel contesto di richiesta di tutte le AWS richieste. Queste chiavi forniscono informazioni sulla richiesta in sé o sulle risorse a cui la richiesta fa riferimento. È possibile controllare che le chiavi abbiano determinati valori prima di consentire l'operazione richiesta dall'utente. Questo ti offre un controllo granulare su quando le tue dichiarazioni JSON politiche corrispondono o meno a una richiesta in arrivo. Per informazioni su come utilizzare l'Conditionelemento in una JSON politica, consulta. IAMJSONelementi politici: Condition

Questo argomento descrive le chiavi definite e fornite dal IAM servizio (con un iam: prefisso) e dal servizio AWS Security Token Service (AWS STS) (con un sts: prefisso). Diversi altri AWS servizi forniscono anche chiavi specifiche del servizio che sono rilevanti per le azioni e le risorse definite da quel servizio. Per ulteriori informazioni, consulta Azioni, risorse e chiavi di condizione per i AWS servizi. La documentazione relativa a un servizio che supporta le chiavi di condizione contiene spesso ulteriori informazioni. Ad esempio, per informazioni sulle chiavi che puoi utilizzare nelle policy per le risorse Amazon S3, consulta Chiavi di policy Amazon S3 nella Guida per l'utente di Amazon Simple Storage Service.

Chiavi disponibili per IAM

È possibile utilizzare le seguenti chiavi condizionali nelle politiche che controllano l'accesso alle IAM risorse:

sono: AssociatedResourceArn

Funziona con ARNgli operatori.

Speciifica ARN la risorsa a cui questo ruolo verrà associato nel servizio di destinazione. La risorsa in genere appartiene al servizio a cui l'entità sta passando il ruolo. A volte, la risorsa potrebbe appartenere a un terzo servizio. Ad esempio, potresti passare ad Amazon EC2 Auto Scaling un ruolo che usano su un'istanza AmazonEC2. In questo caso, la condizione corrisponderebbe a quella ARN dell'EC2istanza Amazon.

Questa chiave condizionale si applica solo all'PassRoleazione inclusa in una politica. Non può essere usata per limitare altre operazioni.

Utilizzare questa chiave di condizione in un criterio per consentire a un'entità di passare un ruolo, ma solo se tale ruolo è associato alla risorsa specificata. È possibile utilizzare caratteri jolly (*) per consentire operazioni eseguite su un tipo specifico di risorsa senza limitare la regione o l'ID risorsa. Ad esempio, puoi consentire a un IAM utente o a un ruolo di trasferire qualsiasi ruolo al EC2 servizio Amazon da utilizzare con istanze nella regione us-east-1 ous-west-1. L'IAMutente o il ruolo non sarebbero autorizzati a trasferire ruoli ad altri servizi. Inoltre, non consente EC2 ad Amazon di utilizzare il ruolo con istanze in altre regioni.

{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": {"iam:PassedToService": "ec2.amazonaws.com"}, "ArnLike": { "iam:AssociatedResourceARN": [ "arn:aws:ec2:us-east-1:111122223333:instance/*", "arn:aws:ec2:us-west-1:111122223333:instance/*" ] } } }
Nota

AWS servizi che supportano iam: supportano PassedToService anche questa chiave di condizione.

sono: AWSServiceName

Lavora con operatori stringa.

Speciifica il AWS servizio a cui è associato questo ruolo.

In questo esempio, consenti a un'entità di creare un ruolo collegato ai servizi se il nome del servizio è access-analyzer.amazonaws.com.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "access-analyzer.amazonaws.com" } } }] }
iam: FIDO -certificazione

Lavora con operatori stringa.

Verifica il livello di FIDO certificazione del MFA dispositivo al momento della registrazione di una chiave di FIDO sicurezza. La certificazione del dispositivo viene recuperata da FIDOAlliance Metadata Service () MDS. Se lo stato o il livello di certificazione della chiave di FIDO sicurezza cambia, questa non verrà aggiornata a meno che il dispositivo non venga annullato e registrato nuovamente per recuperare le informazioni di certificazione aggiornate.

Valori possibili di L1, L1plus, L2, L2plus, L3, L3plus

In questo esempio, registri una chiave di sicurezza e recuperi la certificazione FIDO Level 1 plus per il tuo dispositivo.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-certification": "L1plus" } } } ] }
iam: FIDO - -140-2 certification FIPS

Lavora con operatori stringa.

Verifica il livello di certificazione di convalida FIPS -140-2 del MFA dispositivo al momento della registrazione di una chiave di sicurezza. FIDO La certificazione del dispositivo viene recuperata da FIDOAlliance Metadata Service (). MDS Se lo stato o il livello di certificazione della chiave di FIDO sicurezza cambia, questa non verrà aggiornata a meno che il dispositivo non venga annullato e registrato nuovamente per recuperare le informazioni di certificazione aggiornate.

Valori possibili di L1, L2, L3, L4

In questo esempio, si registra una chiave di sicurezza e si recupera la certificazione FIPS -140-2 di livello 2 per il dispositivo.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-2-certification": "L2" } } } ] }
iam: - -140-3 - certificazione FIDO FIPS

Lavora con operatori stringa.

Verifica il livello di certificazione di convalida FIPS -140-3 del MFA dispositivo al momento della registrazione di una chiave di sicurezza. FIDO La certificazione del dispositivo viene recuperata da FIDOAlliance Metadata Service (). MDS Se lo stato o il livello di certificazione della chiave di FIDO sicurezza cambia, questa non verrà aggiornata a meno che il dispositivo non venga annullato e registrato nuovamente per recuperare le informazioni di certificazione aggiornate.

Valori possibili di L1, L2, L3, L4

In questo esempio, si registra una chiave di sicurezza e si recupera la certificazione FIPS -140-3 di livello 3 per il dispositivo.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-3-certification": "L3" } } } ] }
Sono: RegisterSecurityKey

Lavora con operatori stringa.

Verifica lo stato attuale dell'abilitazione del MFA dispositivo.

Valori possibili di Create o Activate.

In questo esempio, si registra una chiave di sicurezza e si recupera la certificazione FIPS -140-3 di livello 1 per il dispositivo.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Create" } } }, { "Effect": "Allow", "Action": "iam:EnableMFADevice", "Resource": "*", "Condition": { "StringEquals": { "iam:RegisterSecurityKey" : "Activate", "iam:FIDO-FIPS-140-3-certification": "L1" } } } ] }
Sono: OrganizationsPolicyId

Lavora con operatori stringa.

Verifica che la politica con l' AWS Organizations ID specificato corrisponda alla politica utilizzata nella richiesta. Per visualizzare un esempio di IAM politica che utilizza questa chiave di condizione, vedereIAM: visualizzazione delle informazioni dell'ultimo accesso al servizio per una policy di Organizations.

Io sono: PassedToService

Lavora con operatori stringa.

Specifica il principale del servizio a cui un ruolo può essere passato. Questa chiave di condizione si applica solo all'PassRoleazione in una politica. Non può essere usata per limitare altre operazioni.

Quando si utilizza questa chiave di condizione in una policy, specificare il servizio utilizzando un principale del servizio. Il principale di un servizio è il nome di un servizio che può essere specificato nell'elemento Principal di una policy. Il formato tipico è SERVICE_NAME_URL.amazonaws.com.

Puoi utilizzare iam:PassedToService per limitare gli utenti in modo che possano passare ruoli solo a servizi specifici. Ad esempio, un utente potrebbe creare un ruolo di servizio che si fida della scrittura CloudWatch di dati di log in un bucket Amazon S3 per suo conto. L'utente deve quindi collegare una policy di autorizzazione e una policy di affidabilità al nuovo ruolo di servizio. In questo caso, la policy di affidabilità deve specificare cloudwatch.amazonaws.com nell'elemento Principal. Per visualizzare una policy che consenta all'utente di trasferire il ruolo a CloudWatch, consulta. IAM: passa un ruolo IAM a un AWS servizio specifico

Utilizzando questa chiave di condizione, puoi assicurarti che gli utenti creino ruoli di servizio solo per i servizi specificati. Ad esempio, se un utente con la politica precedente tenta di creare un ruolo di servizio per AmazonEC2, l'operazione avrà esito negativo. L'errore si verifica perché l'utente non dispone dell'autorizzazione per passare il ruolo ad AmazonEC2.

A volte si passa un ruolo a un servizio che poi a sua volta lo passa a un servizio diverso. iam:PassedToService include solo il servizio finale che assume il ruolo, non il servizio intermedio che lo passa.

Nota

Alcuni servizi non supportano questa chiave di condizione.

Io sono: PermissionsBoundary

Funziona con ARNgli operatori.

Verifica che la politica specificata sia allegata come limite di autorizzazioni alla risorsa IAM principale. Per ulteriori informazioni, consulta Limiti delle autorizzazioni per le entità IAM

IAM: politica ARN

Funziona con ARN gli operatori.

Verifica l'Amazon Resource Name (ARN) di una policy gestita nelle richieste che coinvolgono una policy gestita. Per ulteriori informazioni, consulta Controllo dell'accesso alle policy.

io:ResourceTag/key-name

Lavora con operatori stringa.

Controlla che il tag collegato alla risorsa dell'identità (utente o ruolo) corrisponda al nome e al valore della chiave specificata.

Nota

IAMe AWS STS supportano sia la chiave di iam:ResourceTag IAM condizione che la chiave di condizione aws:ResourceTag globale.

È possibile aggiungere attributi personalizzati alle IAM risorse sotto forma di coppia chiave-valore. Per ulteriori informazioni sui tag per IAM le risorse, vedere. Tag per AWS Identity and Access Management le risorse È possibile utilizzare ResourceTag per controllare l'accesso alle AWS risorse, incluse IAM le risorse. Tuttavia, poiché IAM non supporta i tag per i gruppi, non è possibile utilizzare i tag per controllare l'accesso ai gruppi.

Questo esempio mostra come creare una policy basata sull'identità che consenta di eliminare gli utenti con il tag status=terminated. Per utilizzare questo criterio, sostituisci il italicized placeholder text nella politica di esempio con le tue informazioni. Quindi, segui le indicazioni fornite in Creazione di una policy o Modifica di una policy.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:DeleteUser", "Resource": "*", "Condition": {"StringEquals": {"iam:ResourceTag/status": "terminated"}} }] }

Chiavi disponibili per la AWS OIDC federazione

Puoi utilizzare la OIDC federazione per fornire credenziali di sicurezza temporanee agli utenti che sono stati autenticati tramite un provider di identità (IdP) compatibile con OpenID Connect a un provider di identità IAM OpenID OIDC Connect () nel tuo account. AWS Esempi di tali fornitori includono GitHub Amazon Cognito, Login with Amazon e Google. È possibile utilizzare token di identità e token di accesso del proprio IdP, nonché token di account di servizio concessi ai carichi di lavoro di Amazon Elastic Kubernetes Service.

Puoi utilizzare le chiavi contestuali AWS OIDC delle condizioni per scrivere politiche che limitino l'accesso degli utenti federati alle risorse associate a un provider, un'app o un utente specifico. Queste chiavi vengono in genere utilizzate nelle policy di trust di un ruolo. Definisci le chiavi delle condizioni utilizzando il nome del OIDC provider (token.actions.githubusercontent.com) seguito da un claim (:aud):token.actions.githubusercontent.com:aud.

Alcune chiavi delle condizioni di OIDC federazione possono essere utilizzate nella sessione di ruolo per autorizzare l'accesso alle risorse. Se il valore è nella colonna Disponibile nella sessione, è possibile utilizzare queste chiavi di condizione nelle politiche per definire a quali utenti è consentito accedere in altri AWS servizi. Quando un'attestazione non è disponibile nella sessione, la chiave del contesto della OIDC condizione può essere utilizzata solo in una politica di fiducia dei ruoli per l'AssumeRoleWithWebIdentityautenticazione iniziale.

Seleziona il tuo IdP per vedere in che modo i claim del tuo IdP mappano le chiavi del contesto IAM delle condizioni. AWS

Default

L'impostazione predefinita elenca le OIDC attestazioni standard e il modo in cui vengono mappate per AWS STS condizionare le chiavi di contesto. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le chiavi delle AWS STS condizioni con i valori nella colonna del JWTclaim IdP. Usa questa mappatura se il tuo IdP non è elencato nelle opzioni della scheda.

GitHub Actions Workflows e Google sono alcuni esempi IdPs che utilizzano l'implementazione predefinita nel loro OIDC JWT token ID.

AWS STS chiave di condizione Reclamo IdP JWT Disponibile in sessione

amr

amr

aud

azp

Se non è impostato alcun valoreazp, la chiave di aud condizione corrisponde al aud reclamo.

e-mail

e-mail

No

oaud

aud

No

sub

sub

Per ulteriori informazioni sull'utilizzo delle chiavi di contesto della OIDC condizione con GitHub, consultaConfigurazione di un ruolo per il provider di GitHub OIDC identità. Per ulteriori informazioni sui campi aud e azp di Google, consulta la Guida OpenID Connect di Google Identity Platform .

amr

Lavora con operatori stringa. La chiave è multivalore, il che significa che è possibile testarla in una policy con operatori di definizione di condizioni.

Esempio: token.actions.githubusercontent.com:amr

Il riferimento ai metodi di autenticazione include le informazioni di accesso relative all'utente. La chiave può contenere i seguenti valori:

  • Se l'utente non è autenticato, la chiave contiene solo unauthenticated.

  • Se l'utente è autenticato, la chiave contiene il valore authenticated e il nome del provider di accesso utilizzato nella chiamata (accounts.google.com).

aud

Lavora con operatori stringa.

Esempi:

  • accounts.google.com:aud

  • token.actions.githubusercontent.com:aud

Utilizza la chiave di aud condizione per verificare che il pubblico corrisponda a quello specificato nella politica. Puoi utilizzare la chiave aud con la sottochiave per lo stesso provider di identità.

Questa chiave condizionale è impostata dai seguenti campi del token:

  • audper il client Google OAuth 2.0 IDs dell'applicazione, quando il azp campo non è impostato. Quando il campo azp è impostato, il campo aud corrisponde alla chiave della condizione accounts.google.com:oaud.

  • azp quando il campo azp è impostato. Questo può accadere per le app ibride in cui un'applicazione web e un'app Android hanno un ID client Google OAuth 2.0 diverso ma condividono lo stesso APIs progetto Google.

Quando si scrive una policy utilizzando la chiave di condizione accounts.google.com:aud, occorre sapere se l'app è un'app ibrida che imposta il campo azp.

Campo azp non impostato

La policy di esempio seguente funziona per le app non ibride che non impostano il campo azp. In questo caso, il valore del campo aud del token ID di Google corrisponde a entrambi i valori della chiave di condizione accounts.google.com:aud e accounts.google.com:oaud.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Federated": "accounts.google.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:aud": "aud-value", "accounts.google.com:oaud": "aud-value", "accounts.google.com:sub": "sub-value" } } } ] }

Campo azp impostato

La policy di esempio seguente funziona per app ibride che impostano il campo azp. In questo caso, il valore del campo aud del token ID di Google corrisponde solo al valore della chiave di condizione accounts.google.com:oaud. Il valore del campo azp corrisponde al valore della chiave di condizione accounts.google.com:aud.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"Federated": "accounts.google.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:aud": "azp-value", "accounts.google.com:oaud": "aud-value", "accounts.google.com:sub": "sub-value" } } } ] }
e-mail

Lavora con operatori stringa.

Esempio: accounts.google.com:email

Questa chiave condizionale convalida l'indirizzo e-mail dell'utente. Il valore di questa dichiarazione potrebbe non essere univoco per questo account e potrebbe cambiare nel tempo, pertanto non dovresti utilizzare questo valore come identificatore principale per verificare il tuo record utente.

oaud

Lavora con operatori stringa.

Esempio: accounts.google.com:oaud

Questa chiave specifica l'altro pubblico (aud) a cui è destinato questo token ID. Deve essere uno dei client OAuth 2.0 IDs dell'applicazione.

sub

Lavora con operatori stringa.

Esempi:

  • accounts.google.com:sub

  • token.actions.githubusercontent.com: sub

Utilizza queste chiavi per verificare che l'oggetto corrisponda a quello specificato nella politica. È possibile utilizzare la chiave sub con la chiave aud per lo stesso provider di identità.

Nella seguente politica sulla fiducia dei ruoli, la chiave sub condition limita il ruolo al GitHib ramo denominatodemo.

{ "Version": "2012-10-17", "Statement": [ "Condition": { "StringEquals": { "token.actions.githubusercontent.com:aud": "sts.amazonaws.com", "token.actions.githubusercontent.com:sub": "repo:octo-org/octo-repo:ref:refs/heads/demo" } } ] }
Amazon Cognito

Questa scheda spiega in che modo Amazon Cognito mappa le OIDC dichiarazioni di AWS STS condizionamento delle chiavi contestuali. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le chiavi delle AWS STS condizioni con i valori nella colonna del JWTclaim IdP.

Per i ruoli utilizzati da Amazon Cognito, le chiavi vengono definite utilizzando cognito-identity.amazonaws.com seguita dall'attestazione.

Per ulteriori informazioni sulla mappatura dei reclami del pool di identità, consulta le mappature dei provider predefinite nella Amazon Cognito Developer Guide. Per ulteriori informazioni sulla mappatura dei claim del pool di utenti, consulta Using the ID token nella Amazon Cognito Developer Guide.

AWS STS chiave di condizione Reclamo IdP JWT Disponibile in sessione

amr

amr

aud

aud

oaud

aud

No

sub

sub

amr

Lavora con operatori stringa. La chiave è multivalore, il che significa che è possibile testarla in una policy con operatori di definizione di condizioni.

Esempio: cognito-identity.amazonaws.com:amr

Il riferimento ai metodi di autenticazione include le informazioni di accesso relative all'utente. La chiave può contenere i seguenti valori:

  • Se l'utente non è autenticato, la chiave contiene solo unauthenticated.

  • Se l'utente è autenticato, la chiave contiene il valore authenticated e il nome del provider di accesso utilizzato nella chiamata (cognito-identity.amazonaws.com).

Ad esempio, la seguente condizione nella politica di fiducia per un ruolo di Amazon Cognito verifica se l'utente non è autenticato.

"Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-2:identity-pool-id" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } }
aud

Lavora con operatori stringa.

Esempio: cognito-identity.amazonaws.com:aud

Il client dell'app del pool di utenti che ha autenticato l'utente. Amazon Cognito restituisce lo stesso valore nell'attestazione client_id del token di accesso.

oaud

Lavora con operatori stringa.

Esempiocognito-identity.amazonaws.com:oaud

Il client dell'app del pool di utenti che ha autenticato l'utente. Amazon Cognito restituisce lo stesso valore nell'attestazione client_id del token di accesso.

sub

Lavora con operatori stringa.

Esempiocognito-identity.amazonaws.com:sub

Un identificatore univoco (UUID), o oggetto, per l'utente autenticato. Il nome utente potrebbe non essere univoco nel pool di utenti. L'affermazione secondaria è il modo migliore per identificare un determinato utente. È possibile utilizzare la chiave sub con la chiave aud per lo stesso provider di identità.

{ "Version": "2012-10-17", "Statement": [ "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-east-1:12345678-abcd-abcd-abcd-123456790ab", "cognito-identity.amazonaws.com:sub": [ "us-east-1:12345678-1234-1234-1234-123456790ab", "us-east-1:98765432-1234-1234-1243-123456790ab" ] } } ] }
Login with Amazon

Questa scheda spiega in che modo Login with Amazon Maps OIDC afferma di AWS STS condizionare le chiavi contestuali AWS. Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le chiavi delle AWS STS condizioni con i valori nella colonna del JWTclaim IdP.

AWS STS chiave di condizione Reclamo IdP JWT Disponibile in sessione

app_id

ID dell'applicazione

sub

ID utente

user_id

ID utente

app_id

Lavora con operatori stringa.

Esempio — www.amazon.com:app_id

Questa chiave specifica il contesto del pubblico che corrisponde al aud campo utilizzato da altri provider di identità.

sub

Lavora con operatori stringa.

Esempio: www.amazon.com:sub

Questa chiave verifica che l'ID utente corrisponda a quello specificato nella politica. È possibile utilizzare la chiave sub con la chiave aud per lo stesso provider di identità.

id_utente

Lavora con operatori stringa.

Esempio — www.amazon.com:user_id

Questa chiave specifica il contesto del pubblico che corrisponde al aud campo utilizzato da altri provider di identità. È possibile utilizzare la user_id chiave con la id chiave per lo stesso provider di identità.

Facebook

Questa scheda spiega in che modo Facebook Maps OIDC afferma di AWS STS condizionare le chiavi contestuali. AWS Puoi utilizzare queste chiavi per controllare l'accesso a un ruolo. A tale scopo, confronta le chiavi delle AWS STS condizioni con i valori nella colonna del JWTclaim IdP.

AWS STS chiave di condizione Reclamo IdP JWT Disponibile in sessione

app_id

ID dell'applicazione

id

id

app_id

Lavora con operatori stringa.

Esempio — graph.facebook.com:app_id

Questa chiave verifica che il contesto del pubblico corrisponda al aud campo utilizzato da altri provider di identità.

id

Lavora con operatori stringa.

Esempio: graph.facebook.com:id

Questa chiave ha verificato che l'ID dell'applicazione (o del sito) corrisponda a quello specificato nella politica.

Ulteriori informazioni sulla OIDC federazione

Chiavi disponibili per la AWS STS federazione SAML basata

Se si utilizza la federazione SAML basata utilizzando AWS Security Token Service (AWS STS), è possibile includere chiavi di condizione aggiuntive nella politica.

SAMLpolitiche di fiducia nei ruoli

Nella policy di affidabilità di un ruolo è possibile includere le chiavi seguenti, che consentono di stabilire se il chiamante è autorizzato ad assumere il ruolo. Ad eccezione disaml:doc, tutti i valori derivano dall'SAMLasserzione. Tutti gli elementi dell'elenco sono disponibili nell'editor visivo della IAM console quando si crea o si modifica una politica con condizioni. Gli elementi contrassegnati con [] possono avere un valore che è un elenco del tipo specificato.

saml:aud

Lavora con operatori stringa.

Un endpoint URL al quale vengono presentate SAML le asserzioni. Il valore di questa chiave proviene dal campo SAML Recipient dell'asserzione, non dal campo Audience.

esempio: [] commonName

Lavora con operatori stringa.

Questo è un attributo commonName.

saml:cn[]

Lavora con operatori stringa.

Questo è un attributo eduOrg.

saml:doc

Lavora con operatori stringa.

Rappresenta il principale utilizzato per assumere il ruolo. Il formato è account-ID/provider-friendly-name, ad esempio123456789012/SAMLProviderName. Il valore Account-ID si riferisce all'account che possiede il SAML provider.

saml:edupersonaffiliation[]

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:edupersonassurance[]

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:edupersonentitlement[]

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:edupersonnickname[]

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:edupersonorgdn

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:edupersonorgunitdn[]

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:edupersonprimaryaffiliation

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:edupersonprimaryorgunitdn

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:edupersonprincipalname

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:edupersonscopedaffiliation[]

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:edupersontargetedid[]

Lavora con operatori stringa.

Questo è un attributo eduPerson.

saml:eduorghomepageuri[]

Lavora con operatori stringa.

Questo è un attributo eduOrg.

saml:eduorgidentityauthnpolicyuri[]

Lavora con operatori stringa.

Questo è un attributo eduOrg.

saml:eduorglegalname[]

Lavora con operatori stringa.

Questo è un attributo eduOrg.

saml:eduorgsuperioruri[]

Lavora con operatori stringa.

Questo è un attributo eduOrg.

saml:eduorgwhitepagesuri[]

Lavora con operatori stringa.

Questo è un attributo eduOrg.

esempio: [] givenName

Lavora con operatori stringa.

Questo è un attributo givenName.

saml:iss

Lavora con operatori stringa.

L'emittente, che è rappresentato da un. URN

saml:mail[]

Lavora con operatori stringa.

Questo è un attributo mail.

saml:name[]

Lavora con operatori stringa.

Questo è un attributo name.

saml:namequalifier

Lavora con operatori stringa.

Un valore hash basato sul nome descrittivo del SAML provider. Il valore è la concatenazione dei seguenti valori, in ordine e separati da un carattere '/':

  1. Il valore di risposta Issuer (saml:iss)

  2. L'ID dell'account AWS

  3. Il nome descrittivo (l'ultima parte diARN) del SAML provider in IAM

La concatenazione dell'ID dell'account e del nome descrittivo del SAML provider è disponibile come chiave per IAM le politiche. saml:doc Per ulteriori informazioni, consulta Identificazione univoca degli utenti nella federazione basata SAML.

esempio: [] organizationStatus

Lavora con operatori stringa.

Questo è un attributo organizationStatus.

esempio: [] primaryGroup SID

Lavora con operatori stringa.

Questo è un attributo primaryGroupSID.

saml:sub

Lavora con operatori stringa.

Questo è l'oggetto della richiesta, che include un valore che identifica in modo univoco un singolo utente in un'organizzazione (ad esempio, _cbb88bf52c2510eabe00c1642d4643f41430fe25e3).

saml:sub_type

Lavora con operatori stringa.

Questa chiave può avere il valore persistent o essere costituita dall'intero formato Subject e Format URI dagli NameID elementi utilizzati nell'SAMLasserzione. transient Il valore persistent indica che il valore in saml:sub è lo stesso per un utente da una sessione all'altra. Se il valore è transient, l'utente dispone di un valore saml:sub diverso per ogni sessione. Per ulteriori informazioni sull'attributo Format dell'elemento NameID, consulta Configurare SAML le asserzioni per la risposta di autenticazione.

saml:surname[]

Lavora con operatori stringa.

Questo è un attributo surnameuid.

saml:uid[]

Lavora con operatori stringa.

Questo è un attributo uid.

saml: x500 [] UniqueIdentifier

Lavora con operatori stringa.

Questo è un attributo x500UniqueIdentifier.

Per informazioni generali eduPerson e sugli eduOrg attributi, consulta il sito Web Wiki. REFEDS Per un elenco di eduPerson attributi, vedere eduPerson Object Class Specification (201602).

Le chiavi di condizione il cui tipo è un elenco possono includere più valori. Per creare condizioni nelle policy per valori con elenchi, è possibile utilizzare gli operatori di definizione (ForAllValues, ForAnyValue). Ad esempio, per consentire l'accesso a qualsiasi utente la cui affiliazione è "facoltà" o "staff" (ma non "studente") è possibile utilizzare una condizione come la seguente:

"Condition": { "ForAllValues:StringLike": { "saml:edupersonaffiliation":[ "faculty", "staff"] } }

Chiavi di contesto di federazione SAML basate su AWS STS più servizi

Alcune chiavi di condizione di federazione SAML basate su di esse possono essere utilizzate nelle richieste successive per autorizzare AWS operazioni su altri servizi e AssumeRole chiamate. Queste sono le seguenti chiavi di condizione che possono essere utilizzate nelle politiche di fiducia dei ruoli quando i principali federati assumono un altro ruolo e nelle politiche delle risorse di altri AWS servizi per autorizzare l'accesso alle risorse da parte dei principali federati. Per ulteriori informazioni sull'utilizzo di queste chiavi, vedere Informazioni sulla federazione basata su 2.0. SAML

Seleziona una chiave di condizione per visualizzarne la descrizione.

Nota

Non sono disponibili altre chiavi di condizione di federazione SAML basate su altre chiavi di federazione dopo la risposta di autenticazione iniziale del provider di identità esterno (IdP).

Chiavi disponibili per AWS STS

È possibile utilizzare le seguenti chiavi di condizione nelle IAM politiche di fiducia dei ruoli per i ruoli che vengono assunti utilizzando le operazioni AWS Security Token Service (AWS STS).

saml:sub

Lavora con operatori stringa.

Questo è l'oggetto della richiesta, che include un valore che identifica in modo univoco un singolo utente in un'organizzazione (ad esempio, _cbb88bf52c2510eabe00c1642d4643f41430fe25e3).

set: AWSServiceName

Lavora con operatori stringa.

Utilizzare questa chiave per specificare il servizio in cui è possibile utilizzare un token al portatore. Quando si utilizza questa chiave di condizione in una policy, specificare il servizio utilizzando un principale del servizio. Il principale di un servizio è il nome di un servizio che può essere specificato nell'elemento Principal di una policy. Ad esempio, codeartifact.amazonaws.com è il responsabile del AWS CodeArtifact servizio.

Disponibilità: questa chiave è presente nelle richieste che ottengono un token di connessione. Non è possibile effettuare una chiamata diretta per AWS STS ottenere un token al portatore. Quando si eseguono alcune operazioni in altri servizi, il servizio richiede il token del portatore per conto dell'utente.

Alcuni AWS servizi richiedono l'autorizzazione per ottenere un token AWS STS service bearer prima di poter accedere alle loro risorse a livello di programmazione. Ad esempio, AWS CodeArtifact richiede che le entità utilizzino token portatori per eseguire alcune operazioni. Il comando aws codeartifact get-authorization-token restituisce un token di connessione. È quindi possibile utilizzare il token bearer per eseguire operazioni. AWS CodeArtifact Per ulteriori informazioni sui token del portatore, vedere Token service bearer.

È possibile utilizzare questa chiave di condizione per consentire ai principal di ottenere un token di portatore da utilizzare con un servizio specifico.

set: DurationSeconds

Lavora con operatori numerici.

Usa questa chiave per specificare la durata (in secondi) che un principale può utilizzare per ottenere un token al AWS STS portatore.

Disponibilità: questa chiave è presente nelle richieste che ottengono un token di connessione. Non è possibile effettuare una chiamata diretta per ottenere un token AWS STS al portatore. Quando si eseguono alcune operazioni in altri servizi, il servizio richiede il token del portatore per conto dell'utente. La chiave non è presente per le operazioni AWS STS di assume-role.

Alcuni AWS servizi richiedono l'autorizzazione per ottenere un token AWS STS service bearer prima di poter accedere alle loro risorse a livello di programmazione. Ad esempio, AWS CodeArtifact richiede che le entità utilizzino token portatori per eseguire alcune operazioni. Il comando aws codeartifact get-authorization-token restituisce un token di connessione. È quindi possibile utilizzare il token bearer per eseguire operazioni. AWS CodeArtifact Per ulteriori informazioni sui token del portatore, vedere Token service bearer.

set: ExternalId

Lavora con operatori stringa.

Utilizzate questa chiave per richiedere che un principale fornisca un identificatore specifico quando assume un IAM ruolo.

Disponibilità: questa chiave è presente nella richiesta quando il principale fornisce un ID esterno mentre assume un ruolo utilizzando o. AWS CLI AWS API

Un identificatore univoco che può essere richiesto quando assumi un ruolo in un altro account. Se l'amministratore dell'account a cui appartiene il ruolo ha fornito un ID esterno, specifica questo valore nel parametro ExternalId. Questo valore può essere qualsiasi stringa, ad esempio una passphrase o un numero di account. La funzione principale dell'ID esterno è quella di risolvere e prevenire il problema del "confused deputy" (delegato confuso). Per ulteriori informazioni sull'ID esterno e il problema del "confused deputy", consulta Accesso a Account AWS proprietà di terzi.

Il valore ExternalId deve avere un minimo di 2 caratteri e un massimo di 1.224 caratteri. Il valore deve essere alfanumerico senza spazi. Può anche includere i seguenti simboli: più (+), uguale (=), virgola (,), punto (.), chiocciola (@), due punti (:), barra (/) e trattino (-).

sts:RequestContext//chiave di contesto

Lavora con operatori stringa.

Utilizza questa chiave per confrontare le coppie chiave-valore del contesto di sessione incorporate nell'asserzione di contesto firmata dall'emittente del token affidabile passata nella richiesta con i valori chiave-valore del contesto specificati nella policy di attendibilità del ruolo.

Disponibilità: questa chiave è presente nella richiesta quando viene fornita un'asserzione di contesto nel parametro di ProvidedContexts richiesta mentre si assume un ruolo utilizzando l'operazione. AWS STS AssumeRoleAPI

Questa chiave di contesto è formattata come "sts:RequestContext/context-key":"context-value" dove context-key e context-value rappresentano una coppia chiave-valore di contesto. Quando più chiavi di contesto sono incorporate nell'asserzione di contesto firmata passata nella richiesta, è presente una chiave di contesto per ogni coppia chiave-valore. È necessario concedere l'autorizzazione per l'azione sts:SetContext nella policy di attendibilità del ruolo per consentire a un principale di impostare le chiavi di contesto all'interno del token di sessione risultante. Per ulteriori informazioni sulle chiavi di contesto supportate di IAM Identity Center che possono essere utilizzate con questa chiave, consulta le chiavi di AWS STS condizione per IAM Identity Center nella Guida per l'AWS IAM Identity Center utente.

È possibile utilizzare questa chiave in una policy di attendibilità del ruolo per applicare un controllo di accesso granulare in base all'utente o ai suoi attributi quando assume un ruolo. Dopo aver assunto il ruolo, l'attività viene visualizzata nei AWS CloudTrail log all'interno dell'AdditionalEventDataattributo, contenenti le coppie chiave-valore del contesto della sessione impostate dal provider del contesto nella richiesta di assunzione del ruolo. Ciò consente agli amministratori di distinguere tra le sessioni di ruolo quando un ruolo viene utilizzato da principali diversi. Le coppie chiave-valore vengono impostate dal provider di contesto specificato, non da o. AWS CloudTrail AWS STS Ciò consente al provider di contesto il controllo sul contesto incluso nei CloudTrail log e nelle informazioni sulla sessione.

set: RequestContextProviders

Funziona con ARNgli operatori.

Utilizzate questa chiave per confrontare il provider di contesto ARN nella richiesta con il provider di contesto ARN specificato nella policy di fiducia del ruolo.

Disponibilità: questa chiave è presente nella richiesta quando viene fornita un'asserzione di contesto nel parametro di ProvidedContexts richiesta mentre si assume un ruolo utilizzando l' AWS STS AssumeRoleAPIoperazione.

La condizione di esempio seguente verifica che il provider di contesto ARN passato nella richiesta corrisponda alla condizione ARN specificata nella politica di fiducia del ruolo.

"Condition": { "ForAllValues:ArnEquals": { "sts:RequestContextProviders": [ "arn:aws:iam::aws:contextProvider/IdentityCenter" ] } }
set: RoleSessionName

Lavora con operatori stringa.

Utilizzare questa chiave per confrontare il nome di sessione specificato da un'entità principale quando si assume un ruolo con il valore specificato nella policy.

Disponibilità: questa chiave è presente nella richiesta quando il principale assume il ruolo utilizzando il AWS Management Console CLI comando any assume-role o qualsiasi operazione. AWS STS AssumeRole API

È possibile utilizzare questa chiave in una policy di attendibilità del ruolo per richiedere che gli utenti forniscano un nome di sessione specifico quando assumono un ruolo. Ad esempio, è possibile richiedere che IAM gli utenti specifichino il proprio nome utente come nome di sessione. Dopo che l'IAMutente ha assunto il ruolo, l'attività viene visualizzata nei AWS CloudTrail registri con il nome di sessione corrispondente al nome utente. Ciò consente agli amministratori di distinguere tra le sessioni di ruolo quando un ruolo viene utilizzato da principali diversi.

La seguente politica di attendibilità dei ruoli richiede che IAM gli utenti inclusi nell'account 111122223333 forniscano il proprio nome IAM utente come nome della sessione quando assumono il ruolo. Questo requisito viene applicato utilizzando la variabile di condizione aws:username nella chiave di condizione. Questa politica consente IAM agli utenti di assumere il ruolo a cui è associata la politica. Questa politica non consente a nessuno che utilizzi credenziali temporanee di assumere il ruolo perché la username variabile è presente solo per IAM gli utenti.

Importante

È possibile utilizzare qualsiasi chiave di condizione a valore singolo come variabile. Non è possibile utilizzare una chiave della condizione multi-valore come variabile.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RoleTrustPolicyRequireUsernameForSessionName", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Condition": { "StringLike": {"sts:RoleSessionName": "${aws:username}"} } } ] }

Quando un amministratore visualizza il AWS CloudTrail registro di un'azione, può confrontare il nome della sessione con i nomi utente del proprio account. Nell'esempio seguente, l'utente denominato matjac ha eseguito l'operazione utilizzando il ruolo denominato MateoRole. L'amministratore può quindi contattare Mateo Jackson, che ha il nome dell'utente matjac.

"assumedRoleUser": { "assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:matjac", "arn": "arn:aws:sts::111122223333:assumed-role/MateoRole/matjac" }

Se si consente l'accesso tra account mediante i ruoli, gli utenti di un account possono assumere un ruolo in un altro account. L'ARNutente con il ruolo assunto elencato in CloudTrail include l'account in cui esiste il ruolo. Non include l'account dell'utente che ha assunto il ruolo. Gli utenti sono univoci solo all'interno di un account. Pertanto, ti consigliamo di utilizzare questo metodo per controllare CloudTrail i registri solo per i ruoli assunti dagli utenti negli account che amministri. Gli utenti potrebbero utilizzare lo stesso nome utente in più account.

set: SourceIdentity

Lavora con operatori stringa.

Utilizza questa chiave per confrontare l'identità di origine che un principale specifica quando si assume un ruolo con il valore specificato nella policy.

Disponibilità: questa chiave è presente nella richiesta quando il principale fornisce un'identità di origine assumendo un ruolo utilizzando qualsiasi CLI comando o operazione AWS STS assume-role. AWS STS AssumeRole API

È possibile utilizzare questa chiave in una policy di attendibilità del ruolo per richiedere che gli utenti forniscano un nome di sessione specifico quando assumono un ruolo. Ad esempio, è possibile richiedere alla forza lavoro o alle identità federate di specificare un valore per l'identità di origine. Puoi configurare il provider di identità (IdP) per utilizzare uno degli attributi associati agli utenti, ad esempio un nome utente o un messaggio di posta elettronica come identità di origine. L'IdP passa quindi l'identità di origine come attributo nelle asserzioni o nelle affermazioni a cui invia. AWS Il valore dell'attributo di identità di origine identifica l'utente o l'applicazione che assume il ruolo.

Dopo che l'utente assume il ruolo, l'attività viene visualizzata in Log di AWS CloudTrail con il valore dell'identità di origine impostato. In questo modo è più facile per gli amministratori determinare chi o cosa ha eseguito le azioni con un ruolo. AWS Per consentire a un'identità di impostare un'identità di origine, è necessario concedere le autorizzazioni per l'operazione sts:SetSourceIdentity.

A differenza di sts:RoleSessionName, dopo aver impostato l'identità di origine, il valore non può essere modificato. È presente nel contesto della richiesta di tutte le operazioni intraprese con il ruolo dall'identità di origine. Il valore persiste nelle sessioni di ruolo successive quando si utilizzano le credenziali di sessione per assumere un altro ruolo. L'assunzione di un ruolo partendo da un altro si chiama concatenamento del ruolo.

È possibile utilizzare la chiave di condizione aws:SourceIdentityglobale per controllare ulteriormente l'accesso alle AWS risorse in base al valore dell'identità di origine nelle richieste successive.

La seguente politica di attendibilità dei ruoli consente AdminUser all'IAMutente di assumere un ruolo nell'account111122223333. Inoltre, concede l'autorizzazione all'AdminUser per impostare un'identità di origine, purché il set di identità di origine sia DiegoRamirez.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAdminUserAssumeRole", "Effect": "Allow", "Principal": {"AWS": " arn:aws:iam::111122223333:user/AdminUser"}, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": {"sts:SourceIdentity": "DiegoRamirez"} } } ] }

Per ulteriori informazioni sull'utilizzo dell'identità di origine, consulta Monitoraggio e controllo delle operazioni intraprese con i ruoli assunti.

set: TransitiveTagKeys

Lavora con operatori stringa.

Utilizzare questa chiave per confrontare le chiavi dei tag di sessione transitivi nella richiesta con quelle specificate nella policy.

Disponibilità: questa chiave è presente nella richiesta quando si effettua una richiesta utilizzando credenziali di sicurezza temporanee. Queste includono le credenziali create utilizzando qualsiasi operazione di assume-role o l'operazione GetFederationToken.

Quando si effettua una richiesta utilizzando credenziali di sicurezza temporanee, il contesto della richiesta include la chiave di contesto aws:PrincipalTag. Questa chiave include un elenco di tag di sessione, tag di sessione transitivi e tag di ruolo. I tag di sessione transitivi sono tag che persistono in tutte le sessioni successive quando si utilizzano le credenziali di sessione per assumere un altro ruolo. L'assunzione di un ruolo partendo da un altro si chiama concatenamento del ruolo.

È possibile utilizzare questa chiave di condizione in una policy per richiedere l'impostazione di specifici tag di sessione come transitivi quando si assume un ruolo o si federa un utente.