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à.
AWS chiavi di contesto della condizione globale
Quando un principale effettua una richiesta a AWS, AWS raccoglie le informazioni sulla richiesta in un contesto di richiesta. È possibile utilizzare l'Condition
elemento di una JSON politica per confrontare le chiavi nel contesto della richiesta con i valori chiave specificati nella politica. Le informazioni sulla richiesta vengono fornite da diverse origini, tra cui il principale che effettua la richiesta, la risorsa su cui viene effettuata la richiesta e i metadati relativi alla richiesta stessa.
Le chiavi di condizione globali possono essere utilizzate in tutti i servizi AWS
. Sebbene queste chiavi di condizione possano essere utilizzate in tutte le policy, la chiave non è disponibile in tutti i contesti di richiesta. Ad esempio, la chiave di condizione aws:SourceAccount
è disponibile solo quando la chiamata alla risorsa viene effettuata direttamente da un principale del servizio AWS. Per ulteriori informazioni sulle circostanze in cui una chiave globale è inclusa nel contesto della richiesta, consultare le informazioni sulla disponibilità di ogni chiave.
Alcuni servizi singoli creano le proprie chiavi di condizione disponibili nel contesto della richiesta per altri servizi. Le chiavi di condizione tra servizi sono un tipo di chiave di condizione globale che includono un prefisso corrispondente al nome del servizio, ad esempio ec2:
o lambda:
, ma sono disponibili in altri servizi.
Le chiavi delle condizioni specifiche del servizio sono definite per l'uso con un singolo AWS servizio. Ad esempio, Amazon S3 consente di scrivere una policy con la chiave di condizione s3:VersionId
per limitare l'accesso a una versione specifica di un oggetto Amazon S3. Questa chiave di condizione è unica per il servizio, il che significa che funziona solo con le richieste al servizio Amazon S3. Per le chiavi di condizione specifiche del servizio, consulta Azioni, risorse e Chiavi di condizione per AWS i servizi e scegli il servizio di cui desideri visualizzare le chiavi.
Nota
Se si utilizzano chiavi di condizione disponibili solo in alcune circostanze, è possibile utilizzare IfExistsle versioni degli operatori di condizione. Se le chiavi di condizione sono assenti da un contesto di richiesta, la policy può non riuscire a effettuare la valutazione. Ad esempio, utilizzate il seguente blocco di condizioni con ...IfExists
gli operatori per verificare se una richiesta proviene da un intervallo IP specifico o da uno specificoVPC. Se una o entrambe le chiavi non sono incluse nel contesto della richiesta, la condizione restituisce comunque true
. I valori vengono controllati solo se la chiave specificata è inclusa nel contesto della richiesta. Per ulteriori informazioni su come viene valutata una policy quando una chiave non è presente per altri operatori, consulta Operatori di condizione.
"Condition": {
"IpAddressIfExists": {"aws:SourceIp" : ["xxx"] },
"StringEqualsIfExists" : {"aws:SourceVpc" : ["yyy"]}
}
Importante
Per confrontare la condizione con un contesto di richiesta con più valori chiave, devi utilizzare gli operatori su set ForAllValues
o ForAnyValue
. Utilizza gli operatori di insieme solo con le chiavi della condizione multivalore. Non utilizzare operatori con chiavi di condizione a valore singolo. Per ulteriori informazioni, consulta Chiavi di contesto multivalore.
Proprietà del principale | Proprietà di una sessione di ruolo | Proprietà della rete | Proprietà della risorsa | Proprietà della richiesta |
---|---|---|---|---|
AWS: EC2 InstanceSourcePrivate IPv4 |
Chiavi di condizione sensibili
Le seguenti chiavi di condizione sono considerate sensibili perché i loro valori sono generati automaticamente. L'uso di caratteri jolly in queste chiavi di condizione non ha alcun caso d'uso valido, anche con una sottostringa del valore della chiave con un carattere jolly. Questo perché il carattere jolly può associare la chiave di condizione a qualsiasi valore, il che potrebbe rappresentare un rischio per la sicurezza.
Proprietà del principale
Utilizza le chiavi di condizione seguenti per confrontare i dettagli dell'entità che effettua la richiesta con le proprietà del principale specificate nella policy. Per un elenco dei principali che possono effettuare richieste, consulta Come specificare un principale.
Indice
leggi: PrincipalArn
Usa questa chiave per confrontare l'Amazon Resource Name (ARN) del principale che ha effettuato la richiesta con ARN quello specificato nella policy. Per IAM i ruoli, il contesto ARN della richiesta restituisce il ruolo, non quello ARN dell'utente che ha assunto il ruolo.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta per tutte le richieste firmate. Le richieste anonime non includono questa chiave. È possibile specificare i seguenti tipi di principali in questa chiave di condizione:
-
IAMRuolo
-
IAMUtente
-
AWS STS sessione utente federata
-
Account AWS utente root
-
-
Tipo di dati — ARN
AWS consiglia di utilizzare ARNoperatori anziché operatori di stringa durante il confrontoARNs.
-
Tipo di valore: valore singolo
-
Valori di esempio L'elenco seguente mostra il valore del contesto della richiesta restituito per diversi tipi di principali che è possibile specificare nella chiave di condizione
aws:PrincipalArn
:-
IAMrole — Il contesto della richiesta contiene il seguente valore per la chiave di condizione
aws:PrincipalArn
. Non specificate la sessione di ruolo presunta ARN come valore per questa chiave di condizione. Per ulteriori informazioni sul principale della sessione del ruolo assunto, consulta Principali della sessione come ruolo.arn:aws:iam::123456789012:role/role-name
-
IAMutente: il contesto della richiesta contiene il seguente valore per la chiave di condizione
aws:PrincipalArn
.arn:aws:iam::123456789012:user/
user-name
-
AWS STS sessioni utente federate: il contesto della richiesta contiene il seguente valore per la chiave
aws:PrincipalArn
di condizione.arn:aws:sts::123456789012:federated-user/
user-name
-
Account AWS utente root — Il contesto della richiesta contiene il seguente valore per la chiave
aws:PrincipalArn
di condizione. Quando si specifica l'utente root ARN come valore per la chiave diaws:PrincipalArn
condizione, vengono limitate le autorizzazioni solo per l'utente root di. Account AWS Ciò è diverso dallo specificare l'utente root ARN nell'elemento principale di una politica basata sulle risorse, che delega l'autorità a. Account AWS Per ulteriori informazioni sulla specificazione dell'utente root ARN nell'elemento principale di una politica basata sulle risorse, vedere. Account AWS presidiarn:aws:iam::123456789012:root
-
È possibile specificare l'utente root ARN come valore per la chiave di condizione aws:PrincipalArn
nelle politiche di controllo del AWS Organizations servizio (). SCPs SCPssono un tipo di politica organizzativa utilizzata per gestire le autorizzazioni nell'organizzazione e riguardano solo gli account dei membri dell'organizzazione. An SCP limita le autorizzazioni per IAM gli utenti e i ruoli negli account dei membri, incluso l'utente root dell'account membro. Per ulteriori informazioni sull'effetto delle SCPs autorizzazioni, consulta SCPgli effetti sulle autorizzazioni nella Organizations User Guide.
leggi: PrincipalAccount
Utilizzare questa chiave per confrontare l'account a cui appartiene il principale richiedente con l'identificatore dell'account specificato nella policy. Per le richieste anonime, il contesto della richiesta restituisce anonymous
.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta per tutte le richieste, incluse le richieste anonime.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
Nell'esempio seguente, l'accesso è negato tranne che ai principali con il numero di account 123456789012
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessFromPrincipalNotInSpecificAccount", "Action": "
service
:*", "Effect": "Deny", "Resource": [ "arn:aws:service:region:accountID:resource
" ], "Condition": { "StringNotEquals": { "aws:PrincipalAccount": [ "123456789012" ] } } } ] }
seghe: PrincipalOrgPaths
Usa questa chiave per confrontare il AWS Organizations percorso del principale che effettua la richiesta con il percorso indicato nella policy. Tale principale può essere un IAM utente, un IAM ruolo, un utente federato o Utente root dell'account AWS. In una politica, questa chiave di condizione garantisce che il richiedente sia un membro dell'account all'interno della radice o delle unità organizzative specificate (OUs) in. AWS Organizations Un AWS Organizations percorso è una rappresentazione testuale della struttura di un'entità Organizations. Per ulteriori informazioni sull'utilizzo e la comprensione dei percorsi, consultare Informazioni sul percorso dell'entità AWS Organizations.
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta solo se il principale è membro di un'organizzazione. Le richieste anonime non includono questa chiave.
-
Tipo di dati: stringa (elenco)
-
Tipo di valore: multivalore
Nota
L'organizzazione IDs è unica a livello globale, ma l'unità organizzativa IDs e la radice IDs sono uniche solo all'interno di un'organizzazione. Ciò significa che non ci sono due organizzazioni che condividono lo stesso ID organizzazione. Tuttavia, un'altra organizzazione potrebbe avere un'unità organizzativa o un root con il tuo stesso ID. Si consiglia di includere sempre l'ID organizzazione quando si specifica un'unità organizzativa o un root.
Ad esempio, la seguente condizione si riferisce true
ai principali degli account collegati direttamente all'ou-ab12-22222222
unità organizzativa, ma non alla relativa unità organizzativa. OUs
"Condition" : { "ForAnyValue:StringEquals" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}
La seguente condizione si riferisce true
ai principali di un account collegato direttamente all'unità organizzativa o a una delle sue unità secondarie. OUs Quando si include un carattere jolly, è necessario utilizzare l'operatore condizionale StringLike
.
"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*"] }}
La seguente condizione è valida true
per i principali di un account collegato direttamente a una delle unità secondarieOUs, ma non direttamente all'unità organizzativa principale. La condizione precedente è per l'unità organizzativa o per qualsiasi figlio. La condizione seguente è solo per i figli (e tutti i figli di quei figli).
"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/ou-*"] }}
La condizione seguente consente l'accesso per ogni principale nell'organizzazione o-a1b2c3d4e5
, indipendentemente dalla propria unità organizzativa padre.
"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/*"] }}
aws:PrincipalOrgPaths
è una chiave di condizione multivalore. Le chiavi multivalore possono avere più di un valore nel contesto della richiesta. Quando si utilizzano più valori con l'operatore condizionale ForAnyValue
, il percorso del principale deve corrispondere a uno dei percorsi elencati nella policy. Per ulteriori informazioni sulle chiavi di condizione multivalore, consultare Chiavi di contesto multivalore.
"Condition": { "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*", "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*" ] } }
Leggi: ID PrincipalOrg
Utilizza questa chiave per confrontare l'identificatore dell'organizzazione AWS Organizations a cui appartiene il principale richiedente con l'identificatore specificato nella politica.
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta solo se il principale è membro di un'organizzazione. Le richieste anonime non includono questa chiave.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
Questa chiave globale fornisce un'alternativa all'elenco di tutti gli account IDs di un' AWS organizzazione. È possibile utilizzare questa chiave di condizione per specificare semplicemente l'elemento Principal
in una policy basata sulle risorse. È possibile specificare l'ID organizzazione nell'elemento condizionale. Quando si aggiunge e si rimuove un account, le policy che includono la chiave aws:PrincipalOrgID
includono automaticamente anche gli account corretti e non necessitano di aggiornamento manuale.
Ad esempio, la seguente policy del bucket Amazon S3 consente ai membri di qualsiasi account nell'organizzazione o-xxxxxxxxxxx
di aggiungere un oggetto al bucket amzn-s3-demo-bucket
.
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": {"StringEquals": {"aws:PrincipalOrgID":"o-xxxxxxxxxxx"} } } }
Nota
Questa condizione globale vale anche per l'account di gestione di un'organizzazione AWS . Questa policy impedisce a tutti principali esterni all'organizzazione specificata di accedere al bucket Amazon S3. Sono inclusi tutti AWS i servizi che interagiscono con le risorse interne, come AWS CloudTrail l'invio di dati di log ai bucket Amazon S3. Per scoprire come concedere l'accesso ai AWS servizi in modo sicuro, consulta. Leggi: PrincipalIs AWSService
Per ulteriori informazioni su AWS Organizations, consulta What Is AWS Organizations? nella Guida AWS Organizations per l'utente.
aws:PrincipalTag//tag-key
Utilizzare questa chiave per confrontare il tag collegato al principale che effettua la richiesta con il tag specificato nella policy. Se il principale ha più di un tag collegato, il contesto della richiesta include una chiave aws:PrincipalTag
per ogni chiave tag collegata.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta se il principale utilizza un IAM utente con tag allegati. È inclusa per un'entità che utilizza un ruolo IAM con tag collegati o tag di sessione. Le richieste anonime non includono questa chiave.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
È possibile aggiungere attributi personalizzati a un utente o a un ruolo sotto forma di coppia chiave-valore. Per ulteriori informazioni sui tag IAM, consultare Tag per risorse AWS Identity and Access Management. Puoi utilizzare aws:PrincipalTag
per controllare l'accesso per i principali AWS
.
Questo esempio mostra come è possibile creare una politica basata sull'identità che consenta agli utenti con il department=hr
tag di gestire IAM utenti, gruppi o ruoli. Per utilizzare questa politica, sostituisci la italicized placeholder text
politica dell'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:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/
department
": "hr
" } } } ] }
Leggi: PrincipalIs AWSService
Usa questa chiave per verificare se la chiamata alla tua risorsa viene effettuata direttamente da un responsabile AWS del servizio. Ad esempio, AWS CloudTrail utilizza il principale del servizio cloudtrail.amazonaws.com
per scrivere log nel bucket Amazon S3. La chiave di contesto della richiesta è impostata su true (VERO) quando un servizio utilizza un principale del servizio per eseguire un'operazione diretta sulle risorse. La chiave di contesto è impostata su false se il servizio utilizza le credenziali di un IAM principale per effettuare una richiesta per conto del principale. Viene impostata su false anche se il servizio utilizza un ruolo di servizio oppure un ruolo collegato ai servizi per effettuare una chiamata per conto del principale.
-
Disponibilità: questa chiave è presente nel contesto della richiesta per tutte le API richieste firmate che utilizzano AWS credenziali. Le richieste anonime non includono questa chiave.
-
Tipo di dati: booleano
-
Tipo di valore: valore singolo
È possibile utilizzare questa chiave di condizione per limitare l'accesso alle identità attendibili e alle posizioni di rete previste, garantendo al contempo l'accesso ai servizi in modo sicuro. AWS
Nel seguente esempio di policy sui bucket di Amazon S3, l'accesso al bucket è limitato a meno che la richiesta non provenga da vpc-111bbb22
o provenga da un responsabile del servizio, ad esempio. CloudTrail
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExpectedNetworkServicePrincipal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket1
/AWS Logs/AccountNumber
/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22" }, "BoolIfExists": { "aws:PrincipalIsAWSService": "false" } } } ] }
Nel seguente video, scopri ulteriori informazioni su come utilizzare la chiave di condizione aws:PrincipalIsAWSService
in una policy.
leggi: PrincipalServiceName
Utilizza questa chiave per confrontare il nome del principale del servizio nella policy con il prinicpale del servizio che effettua richieste alle risorse. È possibile utilizzare questa chiave per verificare se la chiamata viene effettuata da un principale del servizio specifico. Quando un principale del servizio effettua una richiesta diretta alla risorsa, la chiave aws:PrincipalServiceName
contiene il nome del principale del servizio. Ad esempio, il nome principale del AWS CloudTrail servizio ècloudtrail.amazonaws.com
.
-
Disponibilità: questa chiave è presente nella richiesta quando la chiamata viene effettuata da un responsabile AWS del servizio. Questa chiave non è presente in alcun'altra situazione, tra cui:
-
Se il servizio utilizza un ruolo di servizio oppure un ruolo collegato ai servizi per effettuare una chiamata per conto del principale.
-
Se il servizio utilizza le credenziali di un IAM preside per effettuare una richiesta per conto del preside.
-
Se la chiamata viene effettuata direttamente da un IAM preside.
-
Se la chiamata viene effettuata da un richiedente anonimo.
-
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
È possibile utilizzare questa chiave di condizione per limitare l'accesso alle identità attendibili e alle posizioni di rete previste, garantendo al contempo l'accesso a un AWS servizio in tutta sicurezza.
Nel seguente esempio di policy sui bucket di Amazon S3, l'accesso al bucket è limitato a meno che la richiesta non provenga da vpc-111bbb22
o provenga da un responsabile del servizio, ad esempio. CloudTrail
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExpectedNetworkServicePrincipal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket1
/AWS Logs/AccountNumber
/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22", "aws:PrincipalServiceName": "cloudtrail.amazonaws.com" } } } ] }
leggi: PrincipalServiceNamesList
Questa chiave fornisce un elenco di tutti i nomi dei principali del servizio che appartengono al servizio. Questa è una chiave di condizione avanzata. È possibile utilizzarlo per impedire al servizio di accedere alla risorsa solo da una regione specifica. Alcuni servizi possono creare entità di servizio regionali per indicare una particolare istanza del servizio all'interno di una regione specifica. È possibile limitare l'accesso a una risorsa a una particolare istanza del servizio. Quando un principale del servizio effettua una richiesta diretta alla risorsa, aws:PrincipalServiceNamesList
contiene un elenco non ordinato di tutti i nomi di principali del servizio associati all'istanza regionale del servizio.
-
Disponibilità: questa chiave è presente nella richiesta quando la chiamata viene effettuata da un responsabile AWS del servizio. Questa chiave non è presente in alcun'altra situazione, tra cui:
-
Se il servizio utilizza un ruolo di servizio oppure un ruolo collegato ai servizi per effettuare una chiamata per conto del principale.
-
Se il servizio utilizza le credenziali di un IAM preside per effettuare una richiesta per conto del preside.
-
Se la chiamata viene effettuata direttamente da un IAM preside.
-
Se la chiamata viene effettuata da un richiedente anonimo.
-
-
Tipo di dati: stringa (elenco)
-
Tipo di valore: multivalore
aws:PrincipalServiceNamesList
è una chiave di condizione multivalore. Le chiavi multivalore possono avere più di un valore nel contesto della richiesta. È necessario utilizzare gli operatori di insieme ForAnyValue
o ForAllValues
con gli operatori di condizione di stringa quando si utilizza questa chiave. Per ulteriori informazioni sulle chiavi di condizione multivalore, consultare Chiavi di contesto multivalore.
leggi: PrincipalType
Utilizzare questa chiave per confrontare il tipo di principale che effettua la richiesta con il tipo di principale specificato nella policy. Per ulteriori informazioni, consulta Come specificare un principale. Per esempi specifici di valori chiave principal
, vedi Valori della chiave dell'entità principale.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta per tutte le richieste, incluse le richieste anonime.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
aws:userid
Utilizzare questa chiave per confrontare l'identificatore del principale richiedente con l'ID specificato nella policy. Per gli utenti IAM, il valore del contesto della richiesta è l'ID utente. Per i ruoli IAM, questo formato di valore può variare. Per informazioni dettagliate su come vengono visualizzate le informazioni per diverse entità, consultare Come specificare un principale. Per esempi specifici di valori chiave principal
, vedi Valori della chiave dell'entità principale.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta per tutte le richieste, incluse le richieste anonime.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
aws:username
Utilizzare questa chiave per confrontare il nome utente del richiedente con il nome utente specificato nella policy. Per informazioni dettagliate su come vengono visualizzate le informazioni per diverse entità, consultare Come specificare un principale. Per esempi specifici di valori chiave principal
, vedi Valori della chiave dell'entità principale.
-
Disponibilità: questa chiave è sempre inclusa nel contesto della richiesta per IAM gli utenti. Le richieste anonime e le richieste effettuate utilizzando i IAM ruoli Utente root dell'account AWS o non includono questa chiave. Le richieste effettuate utilizzando le credenziali di IAM Identity Center non includono questa chiave nel contesto.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
Proprietà di una sessione di ruolo
Utilizza le seguenti chiavi di condizione per confrontare le proprietà della sessione di ruolo al momento della generazione della sessione. Queste chiavi di condizione sono disponibili solo quando una richiesta viene effettuata da un principale con credenziali di sessione di ruolo o utente federato. I valori di queste chiavi di condizione sono incorporati nel token di sessione del ruolo.
Un ruolo è un tipo di principale. È inoltre possibile utilizzare le chiavi di condizione della sezione Proprietà del principale per valutare le proprietà di un ruolo quando un ruolo effettua una richiesta.
Indice
- leggi: AssumedRoot
- Leggi: FederatedProvider
- leggi: TokenIssueTime
- leggi: MultiFactorAuthAge
- leggi: MultiFactorAuthPresent
- leggi: ChatbotSourceArn
- AWS: EC2 InstanceSourceVpc
- AWS: EC2 InstanceSourcePrivate IPv4
- Leggi: SourceIdentity
- ec2: RoleDelivery
- ec2: SourceInstanceArn
- colla: RoleAssumedBy
- colla: CredentialIssuingService
- lambda: SourceFunctionArn
- ssm: SourceInstanceArn
- archivio di identità: UserId
leggi: AssumedRoot
Usa questa chiave per verificare se la richiesta è stata effettuata utilizzando AssumeRoot. AssumeRoot
restituisce credenziali a breve termine per una sessione utente root privilegiata che è possibile utilizzare per eseguire azioni privilegiate sugli account dei membri dell'organizzazione. Per ulteriori informazioni, consulta Gestire centralmente l'accesso root per gli account membri.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo quando il principale utilizza le credenziali di AssumeRootper effettuare la richiesta.
-
Tipo di dati: booleano
-
Tipo di valore: valore singolo
Nell'esempio seguente, se utilizzata come politica di controllo del servizio, nega l'utilizzo delle credenziali a lungo termine di un utente root in un AWS Organizations account membro. La politica non impedisce AssumeRoot
alle sessioni di intraprendere azioni, le azioni consentite da una sessione. AssumeRoot
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Deny", "Action":"*", "Resource": "*", "Condition":{ "ArnLike":{ "aws:PrincipalArn":[ "arn:aws:iam::*:root" ] }, "Null":{ "aws:AssumedRoot":"true" } } } ] }
Leggi: FederatedProvider
Utilizzare questa chiave per confrontare il provider dell'identità di emissione (IdP) del principale con l'IdP specificato nella policy. Ciò significa che un IAM ruolo viene assunto utilizzando l'AssumeRoleWithWebIdentity
AWS STS operazione. Quando le credenziali temporanee della sessione come ruolo risultante vengono utilizzate per effettuare una richiesta, il contesto della richiesta identifica l'IdP che ha autenticato l'identità federata originale.
-
Disponibilità: questa chiave è presente quando il principale è un principale della sessione come ruolo e quella sessione è stata emessa quando un ruolo è stato assunto con
AssumeRoleWithWebIdentity
. -
Tipo di dati: stringa *
-
Tipo di valore: valore singolo
* Il tipo di dati dipende dal tuo IdP:
-
Se utilizzi un AWS IdP integrato, come Amazon Cognito, il valore chiave sarà una stringa. Il valore chiave può essere simile a:.
cognito-identity.amazonaws.com
-
Se utilizzi un IdP che non è integrato, ad esempio AWSGitHub
o Amazon EKS, il valore chiave sarà ARN. Il valore chiave può essere simile a: arn:aws:iam::111122223333:oidc-provider/oidc.eks.region.amazonaws.com/id/OIDC_Provider_ID
.
Per ulteriori informazioni sugli annunci IdPs esterniAssumeRoleWithWebIDentity
, vedereScenari comuni. Per ulteriori informazioni, consulta Principali della sessione come ruolo.
leggi: TokenIssueTime
Utilizzare questa chiave per confrontare la data e l'ora in cui sono state emesse le credenziali di sicurezza temporanee con la data e l'ora specificate nella policy.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo quando il principale utilizza credenziali temporanee per effettuare la richiesta. La chiave non è presente nelle AWS CLI AWS SDK richieste o nelle richieste effettuate utilizzando le chiavi di accesso. AWS API
-
Tipo di dati: data
-
Tipo di valore: valore singolo
Per sapere quali servizi supportano l'utilizzo di credenziali temporanee, consulta AWS servizi che funzionano con IAM.
leggi: MultiFactorAuthAge
Utilizza questa chiave per confrontare il numero di secondi trascorsi da quando il principale richiedente è stato autorizzato MFA con il numero specificato nella politica. Per ulteriori informazioni su MFA, consulta AWS Autenticazione a più fattori in IAM.
Importante
Questa chiave condizionale non è presente per le identità federate o le richieste effettuate utilizzando le chiavi di accesso per la firma o AWS CLI le AWS API richieste. AWS SDK Per ulteriori informazioni sull'aggiunta di MFA protezione alle API operazioni con credenziali di sicurezza temporanee, consulta. APIAccesso sicuro con MFA
Per verificare se MFA viene utilizzato per convalidare le identità IAM federate, puoi passare il metodo di autenticazione dal tuo provider di identità AWS come tag di sessione. Per informazioni dettagliate, consultare Passare i tag di sessione in AWS STS. MFAPer far rispettare le IAM identità di Identity Center, puoi abilitare gli attributi per il controllo degli accessi per trasmettere una SAML dichiarazione di asserzione con il metodo di autenticazione dal tuo provider di identità a Identity Center. IAM
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo quando il principale utilizza credenziali temporanee per effettuare la richiesta. Le politiche con MFA condizioni possono essere allegate a:
-
Un utente o un gruppo IAM
-
Una risorsa come un bucket Amazon S3, una SQS coda Amazon o un argomento Amazon SNS
-
La policy di affidabilità di un ruolo IAM che può essere assunto da un utente
-
-
Tipo di dati: numerico
-
Tipo di valore: valore singolo
leggi: MultiFactorAuthPresent
Usa questa chiave per verificare se l'autenticazione a più fattori (MFA) è stata utilizzata per convalidare le credenziali di sicurezza temporanee che hanno effettuato la richiesta.
Importante
Questa chiave di condizione non è presente per le identità federate o le richieste effettuate utilizzando le chiavi di accesso per la firma AWS CLI o le richieste. AWS API AWS SDK Per ulteriori informazioni sull'aggiunta di MFA protezione alle API operazioni con credenziali di sicurezza temporanee, consulta. APIAccesso sicuro con MFA
Per verificare se MFA viene utilizzato per convalidare le identità IAM federate, puoi passare il metodo di autenticazione dal tuo provider di identità AWS come tag di sessione. Per informazioni dettagliate, consultare Passare i tag di sessione in AWS STS. MFAPer far rispettare le IAM identità di Identity Center, puoi abilitare gli attributi per il controllo degli accessi per trasmettere una SAML dichiarazione di asserzione con il metodo di autenticazione dal tuo provider di identità a Identity Center. IAM
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo quando il principale utilizza credenziali temporanee per effettuare la richiesta. Le politiche con MFA condizioni possono essere allegate a:
-
Un utente o un gruppo IAM
-
Una risorsa come un bucket Amazon S3, una SQS coda Amazon o un argomento Amazon SNS
-
La policy di affidabilità di un ruolo IAM che può essere assunto da un utente
-
-
Tipo di dati: booleano
-
Tipo di valore: valore singolo
Le credenziali temporanee vengono utilizzate per autenticare IAM ruoli e IAM utenti con token temporanei provenienti da AssumeRoleo GetSessionTokene utenti di. AWS Management Console
IAMle chiavi di accesso utente sono credenziali a lungo termine, ma in alcuni casi AWS creano credenziali temporanee per conto degli IAM utenti per eseguire operazioni. In questi casi, la chiave aws:MultiFactorAuthPresent
è presente nella richiesta ed è impostata su un valore false
. Esistono due casi comuni in cui ciò può accadere:
-
IAMgli utenti utilizzano AWS Management Console inconsapevolmente credenziali temporanee. Gli utenti accedono alla console utilizzando il nome utente e la password, che sono credenziali a lungo termine. Tuttavia, in background, la console genera credenziali temporanee per conto dell'utente.
-
Se un IAM utente effettua una chiamata a un AWS servizio, il servizio riutilizza le credenziali dell'utente per effettuare un'altra richiesta a un servizio diverso. Ad esempio, quando si chiama Athena per accedere a un bucket Amazon S3 o quando lo si utilizza AWS CloudFormation per creare un'istanza Amazon. EC2 Per la richiesta successiva, AWS utilizza credenziali temporanee.
Per sapere quali servizi supportano l'utilizzo di credenziali temporanee, consulta AWS servizi che funzionano con IAM.
La aws:MultiFactorAuthPresent
chiave non è presente quando un CLI comando API or viene chiamato con credenziali a lungo termine, ad esempio coppie di chiavi di accesso utente. Pertanto, si consiglia, quando si controlla questa chiave, di utilizzare le versioni ...IfExists
degli operatori di condizione.
È importante comprendere che il seguente Condition
elemento non è un modo affidabile per verificare se una richiesta viene autenticata tramite. MFA
##### WARNING: NOT RECOMMENDED #####
"Effect" : "Deny",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "false" } }
Questa combinazione di Deny
effetto, Bool
elemento e false
valore nega le richieste che possono essere autenticate utilizzando ma non lo sono MFA state. Questo vale solo per le credenziali temporanee che supportano l'utilizzo. MFA Questa dichiarazione non nega l'accesso alle richieste effettuate utilizzando credenziali a lungo termine o alle richieste autenticate tramite. MFA Utilizzate questo esempio con cautela perché la sua logica è complicata e non verifica se l'MFAautenticazione -authentication sia stata effettivamente utilizzata.
Inoltre, non utilizzare la combinazione di effetto Deny
, elemento Null
e true
perché ha lo stesso comportamento e la logica è ancora più complessa.
Combinazione consigliata
Si consiglia di utilizzare l'BoolIfExistsoperatore per verificare se una richiesta è autenticata tramite. MFA
"Effect" : "Deny", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }
Questa combinazione di Deny
e false
nega le richieste che non sono autenticate tramite. BoolIfExists
MFA In particolare, nega le richieste provenienti da credenziali temporanee che non includono. MFA Nega inoltre le richieste effettuate utilizzando credenziali a lungo termine, ad esempio AWS API operazioni effettuate utilizzando AWS CLI chiavi di accesso. L'operatore *IfExists
verifica la presenza della chiave aws:MultiFactorAuthPresent
e se potrebbe essere presente o meno, come indicato dalla relativa esistenza. Usalo quando vuoi negare qualsiasi richiesta che non sia autenticata utilizzando. MFA È più sicuro, ma può violare qualsiasi codice o script che utilizza le chiavi di accesso per accedere alla sala operatoria. AWS CLI AWS
API
Combinazioni alternative
È inoltre possibile utilizzare l'BoolIfExistsoperatore per consentire richieste MFA autenticate AWS CLI e/o AWS API richieste effettuate utilizzando credenziali a lungo termine.
"Effect" : "Allow", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "true" } }
Questa condizione è corrispondente se la chiave esiste ed è presente o se la chiave non esiste. Questa combinazione di Allow
e true
consente le richieste autenticate tramite o le richieste che non possono essere autenticate tramiteMFA. BoolIfExists
MFA Ciò significa che AWS CLI AWS API, e AWS SDK le operazioni sono consentite quando il richiedente utilizza le proprie chiavi di accesso a lungo termine. Questa combinazione non consente richieste provenienti da credenziali temporanee che potrebbero, ma non includono. MFA
Quando si crea una politica utilizzando l'editor visivo della IAM console e si sceglie MFAobbligatorio, viene applicata questa combinazione. Questa impostazione richiede MFA l'accesso alla console, ma consente l'accesso programmatico senza. MFA
In alternativa, è possibile utilizzare l'Bool
operatore per consentire le richieste programmatiche e da console solo se autenticate tramite. MFA
"Effect" : "Allow",
"Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "true" } }
Questa combinazione di Allow
Bool
, e true
consente solo MFA richieste autenticate. Questo vale solo per le credenziali temporanee che supportano l'utilizzo. MFA Questa dichiarazione non consente l'accesso alle richieste effettuate utilizzando chiavi di accesso a lungo termine o alle richieste effettuate utilizzando credenziali temporanee senza. MFA
Non utilizzate un costrutto di policy simile al seguente per verificare se la MFA chiave è presente:
##### WARNING: USE WITH CAUTION #####
"Effect" : "Allow",
"Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }
Questa combinazione di Allow
effetto, Null
elemento e false
valore consente solo richieste che possono essere autenticate utilizzandoMFA, indipendentemente dal fatto che la richiesta sia effettivamente autenticata. Ciò consente tutte le richieste eseguite utilizzando credenziali temporanee e nega l'accesso alle credenziali a lungo termine. Utilizzate questo esempio con cautela perché non verifica se l'MFAautenticazione -authentication sia stata effettivamente utilizzata.
leggi: ChatbotSourceArn
Usa questa chiave per confrontare la configurazione della chat di origine ARN impostata dal principale con la configurazione ARN della chat specificata nella politica del IAM ruolo associato alla configurazione del tuo canale. Puoi autorizzare le richieste in base alla sessione di assunzione del ruolo avviata da. AWS Chatbot
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta dal AWS Chatbot servizio ogni volta che viene assunta una sessione di ruolo. Il valore chiave è la configurazione della chatARN, ad esempio quando si esegue un AWS CLI comando da un canale di chat.
-
Tipo di dati: ARN
-
Tipo di valore: valore singolo
-
Valore di esempio:
arn:aws::chatbot::123456789021:chat-configuration/slack-channel/private_channel
La seguente policy nega che Amazon S3 inserisca le richieste nel bucket specificato per tutte le richieste provenienti da un canale Slack.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleS3Deny", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:aws::s3:::amzn-s3-demo-bucket/*", "Condition": { "StringLike": { "aws:ChatbotSourceArn": "arn:aws::chatbot::*:chat-configuration/slack-channel/*" } } } ] }
AWS: EC2 InstanceSourceVpc
Questa chiave identifica il destinatario VPC a cui sono state consegnate le credenziali del EC2 IAM ruolo Amazon. Puoi utilizzare questa chiave in una policy con la chiave aws:SourceVPCglobale per verificare se viene effettuata una chiamata da un VPC (aws:SourceVPC
) che corrisponde al VPC luogo in cui è stata consegnata una credenziale (). aws:Ec2InstanceSourceVpc
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta ogni volta che il richiedente firma le richieste con una credenziale di EC2 ruolo Amazon. Può essere utilizzata nelle IAM politiche, nelle politiche di controllo dei servizi, nelle politiche degli VPC endpoint e nelle politiche delle risorse.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
Questa chiave può essere utilizzata con valori VPC identificativi, ma è particolarmente utile se utilizzata come variabile in combinazione con la chiave di aws:SourceVpc
contesto. La chiave di aws:SourceVpc
contesto è inclusa nel contesto della richiesta solo se il richiedente utilizza un VPC endpoint per effettuare la richiesta. L'impiego di aws:Ec2InstanceSourceVpc
con aws:SourceVpc
consente di utilizzare aws:Ec2InstanceSourceVpc
in modo più ampio, poiché confronta dei valori che in genere cambiano insieme.
Nota
Questa chiave di condizione non è disponibile in EC2 -Classic.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireSameVPC", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:SourceVpc": "${aws:Ec2InstanceSourceVpc}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }
Nell'esempio precedente, l'accesso è negato se il valore di aws:SourceVpc
non corrisponde al valore di aws:Ec2InstanceSourceVpc
. La dichiarazione sulla politica è limitata ai soli ruoli utilizzati come ruoli di EC2 istanza Amazon, verificando l'esistenza della chiave di ec2:SourceInstanceARN
condizione.
La policy consente aws:ViaAWSService
di AWS autorizzare le richieste quando le richieste vengono effettuate per conto dei ruoli delle tue EC2 istanze Amazon. Ad esempio, quando effettui una richiesta da un'EC2istanza Amazon a un bucket Amazon S3 crittografato, Amazon S3 effettua una chiamata a per tuo conto. AWS KMS Alcune chiavi non sono presenti quando viene effettuata la richiesta a. AWS KMS
AWS: EC2 InstanceSourcePrivate IPv4
Questa chiave identifica l'IPv4indirizzo privato dell'interfaccia elastica di rete principale a cui sono state distribuite le credenziali del EC2 IAM ruolo Amazon. È necessario utilizzare questa chiave di condizione con la relativa chiave aws:Ec2InstanceSourceVpc
complementare per garantire una combinazione unica a livello globale di VPC ID e IP privato di origine. Utilizza questa chiave con aws:Ec2InstanceSourceVpc
per assicurarti che la richiesta sia stata effettuata dallo stesso indirizzo IP privato a cui sono state consegnate le credenziali.
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta ogni volta che il richiedente firma le richieste con una credenziale di EC2 ruolo Amazon. Può essere utilizzata nelle IAM politiche, nelle politiche di controllo dei servizi, nelle politiche degli VPC endpoint e nelle politiche delle risorse.
-
Tipo di dati: indirizzo IP
-
Tipo di valore: valore singolo
Importante
Questa chiave non deve essere utilizzata da sola in un'istruzione Allow
. Per definizione, gli indirizzi IP privati non sono univoci a livello globale. È necessario utilizzare la aws:Ec2InstanceSourceVpc
chiave ogni volta che la aws:Ec2InstanceSourcePrivateIPv4
si utilizza per specificare da che cosa possono essere utilizzate le credenziali dell'VPCEC2istanza Amazon.
Nota
Questa chiave di condizione non è disponibile in EC2 -Classic.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:Ec2InstanceSourceVpc": "${aws:SourceVpc}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } }, { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:Ec2InstanceSourcePrivateIPv4": "${aws:VpcSourceIp}" }, "Null": { "ec2:SourceInstanceARN": "false" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }
Leggi: SourceIdentity
Utilizza questa chiave per confrontare l'identità di origine impostata dal principale con l'identità di origine specificata nella policy.
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta dopo che è stata impostata un'identità di origine quando si assume un ruolo utilizzando qualsiasi CLI comando o AWS STS operazione assume-role. AWS STS
AssumeRole
API -
Tipo di dati: stringa
-
Tipo di valore: valore singolo
È possibile utilizzare questa chiave in una policy per consentire l'esecuzione di azioni AWS da parte dei responsabili che hanno impostato un'identità di origine quando assumono un ruolo. L'attività per l'identità di origine specificata del ruolo viene visualizzata in AWS CloudTrail. In questo modo è più facile per gli amministratori determinare chi o cosa ha eseguito le azioni con un ruolo. AWS
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 dal ruolo. 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.
La sts:SourceIdentitychiave è presente nella richiesta quando il principale imposta inizialmente un'identità di origine assumendo un ruolo utilizzando qualsiasi comando o operazione AWS STS assume-roleCLI. AWS STS
AssumeRole
API La chiave aws:SourceIdentity
è presente nella richiesta per tutte le operazioni eseguite con una sessione di ruolo con un set di identità di origine.
La policy di attendibilità del ruolo riportata di seguito per CriticalRole
nell'account 111122223333
contiene una condizione per aws:SourceIdentity
che impedisce a un principale senza un'identità di origine impostata su Saanvi o Diego di assumere il ruolo.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AssumeRoleIfSourceIdentity", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:role/CriticalRole"}, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringLike": { "aws:SourceIdentity": ["Saanvi","Diego"] } } } ] }
Per ulteriori informazioni sull'utilizzo dell'identità di origine, consulta Monitoraggio e controllo delle operazioni intraprese con i ruoli assunti.
ec2: RoleDelivery
Usa questa chiave per confrontare la versione del servizio di metadati dell'istanza nella richiesta firmata con le credenziali del IAM ruolo per Amazon. EC2 Il servizio di metadati delle istanze distingue tra IMDSv2 le richieste IMDSv1 e le richieste a seconda che, per una determinata richiesta, siano presenti PUT
o meno le GET
intestazioni or, che sono esclusive di tale IMDSv2 richiesta.
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta ogni volta che la sessione di ruolo viene creata da un'EC2istanza Amazon.
-
Tipo di dati: numerico
-
Tipo di valore: valore singolo
-
Valori di esempio: 1.0, 2.0
Puoi configurare Instance Metadata Service (IMDS) su ogni istanza in modo che il codice locale o gli utenti lo debbano utilizzareIMDSv2. Quando specifichi l'utilizzo di IMDSv2, IMDSv1 non funziona più.
-
Instance Metadata Service Version 1 (IMDSv1): un metodo di richiesta/risposta
-
Instance Metadata Service Version 2 (IMDSv2): un metodo orientato alla sessione
Per informazioni su come configurare l'istanza da utilizzareIMDSv2, consulta Configurare le opzioni dei metadati dell'istanza.
Nell'esempio seguente, l'accesso viene negato se il RoleDelivery valore ec2: nel contesto della richiesta è 1.0 ()IMDSv1. Questa dichiarazione politica può essere applicata in generale perché, se la richiesta non è firmata dalle credenziali del EC2 ruolo Amazon, non ha alcun effetto.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireAllEc2RolesToUseV2", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NumericLessThan": { "ec2:RoleDelivery": "2.0" } } } ] }
Per ulteriori informazioni, consulta Esempi di policy per l'utilizzo dei metadati delle istanze.
ec2: SourceInstanceArn
Usa questa chiave per confrontare l'ARNistanza da cui è stata generata la sessione del ruolo.
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta ogni volta che la sessione di ruolo viene creata da un'EC2istanza Amazon.
-
Tipo di dati: ARN
-
Tipo di valore: valore singolo
-
Valore di esempio: arn:aws::ec2:us-west-2:111111111111:instance/instance-id
Per le policy di esempio, consulta Consentire a un'istanza specifica di visualizzare le risorse in altri servizi AWS.
colla: RoleAssumedBy
Il AWS Glue servizio imposta questa chiave di condizione per ogni AWS API richiesta in cui AWS Glue effettua una richiesta utilizzando un ruolo di servizio per conto del cliente (non tramite un job o un endpoint di sviluppo, ma direttamente dal AWS Glue servizio). Utilizzate questa chiave per verificare se una chiamata a una AWS risorsa proviene dal AWS Glue servizio.
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta quando si AWS Glue effettua una richiesta utilizzando un ruolo di servizio per conto del cliente.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
-
Valore di esempio: questa chiave è sempre impostata su
glue.amazonaws.com
.
L'esempio seguente aggiunge una condizione per consentire al AWS Glue servizio di ottenere un oggetto da un bucket Amazon S3.
{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "glue:RoleAssumedBy": "glue.amazonaws.com" } } }
colla: CredentialIssuingService
Il AWS Glue servizio imposta questa chiave per ogni AWS API richiesta utilizzando un ruolo di servizio che proviene da un endpoint di lavoro o da uno sviluppatore. Usa questa chiave per verificare se una chiamata a una AWS risorsa proviene da un AWS Glue job o da un endpoint di sviluppo.
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta quando si AWS Glue effettua una richiesta proveniente da un job o da un endpoint di sviluppo.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
-
Valore di esempio: questa chiave è sempre impostata su
glue.amazonaws.com
.
L'esempio seguente aggiunge una condizione associata a un IAM ruolo utilizzato da un AWS Glue job. Ciò garantisce che determinate azioni siano consentite/negate a seconda che la sessione di ruolo venga utilizzata per un ambiente di esecuzione del AWS Glue lavoro.
{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "glue:CredentialIssuingService": "glue.amazonaws.com" } } }
lambda: SourceFunctionArn
Usa questa chiave per identificare la funzione Lambda a ARN cui sono state consegnate le credenziali del IAM ruolo. Il servizio Lambda imposta questa chiave per ogni AWS API richiesta proveniente dall'ambiente di esecuzione della funzione. Usa questa chiave per verificare se una chiamata a una AWS risorsa proviene dal codice di una funzione Lambda specifica. Lambda imposta questa chiave anche per alcune richieste che provengono dall'esterno dell'ambiente di esecuzione, come la scrittura di log CloudWatch e l'invio di tracce a X-Ray.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta ogni volta che viene richiamato il codice della funzione Lambda.
-
Tipo di dati: ARN
-
Tipo di valore: valore singolo
-
Valore di esempio: arn:aws:lambda:us-east- 1:123456789012:function: TestFunction
L'esempio seguente consente a una funzione Lambda specifica definire l'accesso di s3:PutObject
al bucket specificato.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleSourceFunctionArn", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "ArnEquals": { "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda" } } } ] }
Per ulteriori informazioni, consulta Lavorare con le credenziali dell'ambiente di esecuzione Lambda nella Guida per gli sviluppatori di AWS Lambda .
ssm: SourceInstanceArn
Utilizza questa chiave per identificare l'istanza AWS Systems Manager gestita a ARN cui sono state consegnate le credenziali del IAM ruolo. Questa chiave di condizione non è presente quando la richiesta proviene da un'istanza gestita con un IAM ruolo associato a un profilo di EC2 istanza Amazon.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta ogni volta che le credenziali del ruolo vengono consegnate a un'istanza gestita da AWS Systems Manager .
-
Tipo di dati: ARN
-
Tipo di valore: valore singolo
-
Valore di esempio: arn:aws::ec2:us-west-2:111111111111:instance/instance-id
archivio di identità: UserId
Utilizza questa chiave per confrontare IAM l'identità della forza lavoro di Identity Center nella richiesta firmata con l'identità specificata nella politica.
-
Disponibilità: questa chiave viene inclusa quando il chiamante della richiesta è un utente di IAM Identity Center.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
-
Valore di esempio: 94482488-3041-7026-18f3-be45837cd0e4
È possibile trovare il UserId nome di un utente in IAM Identity Center GetUserIdAPIeffettuando una richiesta all' AWS CLI indirizzo AWS API, o AWS SDK.
Proprietà della rete
Utilizza le chiavi di condizione seguenti per confrontare i dettagli della rete da cui è stata originata la richiesta o inviati con le proprietà della rete specificate nella policy.
leggi: SourceIp
Utilizzare questa chiave per confrontare l'indirizzo IP del richiedente con l'indirizzo IP specificato nella policy. La chiave di condizione aws:SourceIp
può essere utilizzata solo per intervalli di indirizzi IP pubblici.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta, tranne quando il richiedente utilizza un VPC endpoint per effettuare la richiesta.
-
Tipo di dati: indirizzo IP
-
Tipo di valore: valore singolo
La chiave di condizione aws:SourceIp
può essere utilizzata in una policy per consentire ai principali di effettuare richieste solo all'interno di un intervallo IP specificato.
Nota
aws:SourceIp
supporta IPv4 sia un IPv6 indirizzo che un intervallo di indirizzi IP. Per un elenco di Servizi AWS tale supportoIPv6, consulta il Servizi AWS relativo supporto IPv6 nella Amazon VPC User Guide.
Ad esempio, puoi allegare la seguente politica basata sull'identità a un ruolo. IAM Questa policy consente all'utente di inserire oggetti nel bucket amzn-s3-demo-bucket3
Amazon S3 se effettua la chiamata dall'intervallo di indirizzi specificatoIPv4. Questa politica consente inoltre a un AWS servizio che utilizza Inoltro delle sessioni di accesso di eseguire questa operazione per tuo conto.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "IpAddress": { "aws:SourceIp": "
203.0.113.0/24
" } } } ] }
Se è necessario limitare l'accesso da reti che supportano entrambi gli indirizzi IPv4 e l'IPv6indirizzamento, è possibile includere l'IPv4IPv6indirizzo o gli intervalli di indirizzi IP nella condizione della IAM policy. La seguente politica basata sull'identità consentirà all'utente di inserire oggetti nel bucket amzn-s3-demo-bucket3
Amazon S3 se l'utente effettua la chiamata da intervalli di indirizzi specifici o da intervalli di indirizzi. IPv4 IPv6 Prima di includere gli intervalli di IPv6 indirizzi nella tua IAM policy, verifica che i supporti con Servizio AWS cui lavori. IPv6 Per un elenco di Servizi AWS tale supportoIPv6, consulta il Servizi AWS relativo supporto IPv6 nella Amazon VPC User Guide.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "IpAddress": { "aws:SourceIp": [ "
203.0.113.0/24
", "2001:DB8:1234:5678::/64
" ] } } } ] }
Se la richiesta proviene da un host che utilizza un VPC endpoint Amazon, la aws:SourceIp
chiave non è disponibile. Dovresti invece usare una chiave VPC specifica come aws:. VpcSourceIp Per ulteriori informazioni sull'utilizzo VPC degli endpoint, consulta Identity and access management for VPC endpoints and VPC endpoint services nella Guida.AWS PrivateLink
leggi: SourceVpc
Usa questa chiave per verificare se la richiesta attraversa il punto a VPC cui è collegato l'VPCendpoint. In una policy, è possibile utilizzare questa chiave per consentire l'accesso solo a una specifica. VPC Per ulteriori informazioni, consulta Limitazione dell'accesso a uno specifico VPC nella Guida per l'utente di Amazon Simple Storage Service.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo se il richiedente utilizza un VPC endpoint per effettuare la richiesta.
-
Tipo di valore: valore singolo
In una policy, è possibile utilizzare questa chiave per consentire o limitare l'accesso a uno specificoVPC.
Ad esempio, puoi allegare la seguente policy basata sull'identità a un IAM ruolo da negare al bucket PutObject
Amazon S3amzn-s3-demo-bucket3
, a meno che la richiesta non venga effettuata dall'VPCID specificato o Servizi AWS che utilizzi forward access sessions (FAS) per effettuare richieste per conto del ruolo. A differenza di withleggi: SourceIp, è necessario utilizzare AWS: v iaAWSService o consentire leggi: CalledVia le FAS richieste, poiché l'origine VPC della richiesta iniziale non viene preservata.
Nota
Questa policy non consente alcuna operazione. Utilizza questa policy in combinazione con altre policy che consentono operazioni specifiche.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PutObjectIfNotVPCID", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket3/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-1234567890abcdef0" }, "Bool": { "aws:ViaAWSService": "false" } } } ] }
Per un esempio di come applicare questa chiave in una politica basata sulle risorse, consulta Restricting access to a specific nella Amazon VPC Simple Storage Service User Guide.
leggi: SourceVpce
Utilizza questa chiave per confrontare l'identificatore dell'VPCendpoint della richiesta con l'ID dell'endpoint specificato nella policy.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo se il richiedente utilizza un VPC endpoint per effettuare la richiesta.
-
Tipo di valore: valore singolo
In una policy, puoi utilizzare questa chiave per limitare l'accesso a un VPC endpoint specifico. Per ulteriori informazioni, consulta Limitazione dell'accesso a uno specifico VPC nella Guida per l'utente di Amazon Simple Storage Service. Analogamente all'utilizzoleggi: SourceVpc, è necessario leggi: CalledVia utilizzare AWS: v iaAWSService o consentire le richieste effettuate Servizi AWS utilizzando forward access sessions (FAS). Questo perché l'VPCendpoint di origine della richiesta iniziale non viene conservato.
leggi: VpcSourceIp
Utilizzare questa chiave per confrontare l'indirizzo IP da cui è stata effettuata una richiesta con l'indirizzo IP specificato nella policy. In una policy, la chiave corrisponde solo se la richiesta proviene dall'indirizzo IP specificato e passa attraverso un VPC endpoint.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo se la richiesta viene effettuata utilizzando un VPC endpoint.
-
Tipo di dati: indirizzo IP
-
Tipo di valore: valore singolo
Per ulteriori informazioni, consulta Controllare l'accesso agli VPC endpoint utilizzando le politiche degli endpoint nella Amazon VPC User Guide. Analogamente all'utilizzoleggi: SourceVpc, è necessario leggi: CalledVia utilizzare AWS: v iaAWSService o consentire le richieste effettuate Servizi AWS utilizzando forward access sessions () FAS. Questo perché l'IP di origine della richiesta iniziale effettuata utilizzando un VPC endpoint non viene mantenuto nelle FAS richieste.
Nota
aws:VpcSourceIp
supporta IPv4 sia un IPv6 indirizzo che un intervallo di indirizzi IP. Per un elenco di Servizi AWS tale supportoIPv6, consulta il Servizi AWS relativo supporto IPv6 nella Amazon VPC User Guide.
La chiave di condizione aws:VpcSourceIp
deve essere sempre utilizzata insieme alle chiavi di condizione aws:SourceVpc
o aws:SourceVpce
. In caso contrario, è possibile che le API chiamate provenienti da utenti imprevisti VPC che utilizzano lo stesso IP o che si sovrappongono siano CIDR consentite da una policy. Ciò può verificarsi perché l'IP dei due indirizzi IP CIDRs non correlati VPCs può essere lo stesso o sovrapporsi. Invece, i VPC IDs nostri VPC endpoint IDs dovrebbero essere utilizzati nella policy in quanto dispongono di identificatori univoci globali. Questi identificatori univoci assicurano che non si verifichino risultati imprevisti.
Proprietà della risorsa
Utilizzare le chiavi di condizione seguenti per confrontare i dettagli della risorsa che è la destinazione della richiesta con le proprietà della risorsa specificate nella policy.
Leggi: ResourceAccount
Utilizza questa chiave per confrontare l'ID Account AWS del proprietario della risorsa richiesta con l'account della risorsa nella policy. Dopodiché, puoi consentire o negare l'accesso a tale risorsa in base all'account proprietario della stessa.
-
Disponibilità: questa chiave è sempre inclusa nel contesto della richiesta per la maggior parte delle operazioni dei servizi. Le seguenti operazioni non supportano questa chiave:
-
AWS Audit Manager
-
auditmanager:UpdateAssessmentFrameworkShare
-
-
Amazon Detective
-
detective:AcceptInvitation
-
-
Amazon Elastic Block Store: tutte le operazioni
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment
-
ec2:AcceptVpcEndpointConnections
-
ec2:AcceptVpcPeeringConnection
-
ec2:CopyImage
-
ec2:CopySnapshot
-
ec2:CreateTransitGatewayPeeringAttachment
-
ec2:CreateVolume
-
ec2:CreateVpcEndpoint
-
ec2:CreateVpcPeeringConnection
-
ec2:DeleteTransitGatewayPeeringAttachment
-
ec2:DeleteVpcPeeringConnection
-
ec2:RejectTransitGatewayPeeringAttachment
-
ec2:RejectVpcEndpointConnections
-
ec2:RejectVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents
— EventBridgePutEvents
chiamate su un bus di eventi in un altro account, se tale bus di eventi è stato configurato come EventBridge destinazione tra più account prima del 2 marzo 2023. Per ulteriori informazioni, consulta Concedere le autorizzazioni per consentire eventi da altri AWS account nella Amazon EventBridge User Guide.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
OpenSearch Servizio Amazon
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone
-
route53:CreateVPCAssociationAuthorization
-
route53:DeleteVPCAssociationAuthorization
-
route53:DisassociateVPCFromHostedZone
-
route53:ListHostedZonesByVPC
-
-
AWS Security Hub
-
securityhub:AcceptAdministratorInvitation
-
-
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
Nota
Per ulteriori considerazioni sulle operazioni non supportate di cui sopra, consulta il repository di esempi di policy del perimetro di dati
Questa chiave è uguale all' Account AWS ID dell'account con le risorse valutate nella richiesta.
Per la maggior parte delle risorse del tuo account, ARNcontiene l'ID dell'account proprietario per quella risorsa. Per alcune risorse, come i bucket Amazon S3, la risorsa ARN non include l'ID dell'account. I due esempi seguenti mostrano la differenza tra una risorsa con un ID account in e un Amazon S3 ARN senza un ID account: ARN
-
arn:aws:iam::123456789012:role/AWSExampleRole
— IAM ruolo creato e posseduto all'interno dell'account 123456789012. -
arn:aws:s3:::amzn-s3-demo-bucket2
— Bucket Amazon S3 creato e posseduto all'interno dell'account111122223333
, non visualizzato in. ARN
Usa la AWS console, or, or APICLI, per trovare tutte le tue risorse e quelle corrispondenti. ARNs
Scrivi una policy che nega le autorizzazioni alle risorse in base all'ID account del proprietario della risorsa. Ad esempio, la seguente policy basata sull'identità nega l'accesso alla risorsa specificata se la risorsa non appartiene all'account specificato.
Per utilizzare questa policy, sostituisci il testo segnaposto in corsivo con le tue informazioni.
Importante
Questa policy non consente alcuna operazione. Utilizza invece l'effetto Deny
, che nega esplicitamente l'accesso a tutte le risorse elencate nell'istruzione che non appartengono all'account elencato. Utilizza questa policy in combinazione con altre policy che consentono l'accesso a risorse specifiche.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyInteractionWithResourcesNotInSpecificAccount", "Action": "
service
:*", "Effect": "Deny", "Resource": [ "arn:aws:service
:region
:account
:*
" ], "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "account
" ] } } } ] }
Questa politica nega l'accesso a tutte le risorse per un AWS servizio specifico a meno che lo specificato non sia Account AWS proprietario della risorsa.
Nota
Alcuni Servizi AWS richiedono l'accesso a risorse AWS di proprietà ospitate in un altro Account AWS. L'utilizzo di aws:ResourceAccount
nelle tue policy basate sull'identità potrebbe influire sulla capacità della tua identità di accedere a queste risorse.
Alcuni AWS servizi, ad esempio AWS Data Exchange, si basano sull'accesso a risorse esterne all'utente Account AWS per le normali operazioni. Se usi l'elemento aws:ResourceAccount
nelle tue policy, includi istruzioni aggiuntive per creare delle esenzioni per tali servizi. La policy AWS: nega l'accesso alle risorse Amazon S3 al di fuori del tuo account, tranne AWS Data Exchange di esempio illustra come negare l'accesso in base all'account della risorsa definendo al contempo delle eccezioni per le risorse di proprietà del servizio.
Utilizza questo esempio di policy come modello per creare le tue policy personalizzate. Per ulteriori informazioni, consulta la documentazione del servizio.
Leggi: ResourceOrgPaths
Utilizzate questa chiave per confrontare il percorso AWS Organizations per la risorsa a cui si accede con il percorso nella policy. In una politica, questa chiave di condizione garantisce che la risorsa appartenga a un membro dell'account all'interno della radice o delle unità organizzative specificate (OUs) in AWS Organizations. Un percorso AWS Organizations è una rappresentazione testuale della struttura di un'entità Organizations. Per ulteriori informazioni sull'utilizzo e la comprensione dei percorsi, consulta la sezione Informazioni sul percorso dell'entità AWS Organizations.
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta solo se l'account che possiede la risorsa è membro di un'organizzazione. Questa chiave della condizione globale non supporta le seguenti operazioni:
-
AWS Audit Manager
-
auditmanager:UpdateAssessmentFrameworkShare
-
-
Amazon Detective
-
detective:AcceptInvitation
-
-
Amazon Elastic Block Store: tutte le operazioni
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment
-
ec2:AcceptVpcEndpointConnections
-
ec2:AcceptVpcPeeringConnection
-
ec2:CopyImage
-
ec2:CopySnapshot
-
ec2:CreateTransitGatewayPeeringAttachment
-
ec2:CreateVolume
-
ec2:CreateVpcEndpoint
-
ec2:CreateVpcPeeringConnection
-
ec2:DeleteTransitGatewayPeeringAttachment
-
ec2:DeleteVpcPeeringConnection
-
ec2:RejectTransitGatewayPeeringAttachment
-
ec2:RejectVpcEndpointConnections
-
ec2:RejectVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents
— EventBridgePutEvents
chiamate su un bus di eventi in un altro account, se tale bus di eventi è stato configurato come EventBridge destinazione tra più account prima del 2 marzo 2023. Per ulteriori informazioni, consulta Concedere le autorizzazioni per consentire eventi da altri AWS account nella Amazon EventBridge User Guide.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
OpenSearch Servizio Amazon
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone
-
route53:CreateVPCAssociationAuthorization
-
route53:DeleteVPCAssociationAuthorization
-
route53:DisassociateVPCFromHostedZone
-
route53:ListHostedZonesByVPC
-
-
AWS Security Hub
-
securityhub:AcceptAdministratorInvitation
-
-
-
Tipo di dati: stringa (elenco)
-
Tipo di valore: multivalore
Nota
Per ulteriori considerazioni sulle operazioni non supportate di cui sopra, consulta il repository di esempi di policy del perimetro di dati
aws:ResourceOrgPaths
è una chiave di condizione multivalore. Le chiavi multivalore possono avere più di un valore nel contesto della richiesta. È necessario utilizzare gli operatori di insieme ForAnyValue
o ForAllValues
con gli operatori di condizione di stringa quando si utilizza questa chiave. Per ulteriori informazioni sulle chiavi di condizione multivalore, consultare Chiavi di contesto multivalore.
Ad esempio, la seguente condizione restituisce True
per le risorse appartenenti all'organizzazione o-a1b2c3d4e5
. Quando si include un carattere jolly, è necessario utilizzare l'operatore condizionale StringLike.
"Condition": { "ForAnyValue:StringLike": { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/*"] } }
La condizione seguente restituisce True
alle risorse con l'ID dell'unità organizzativa ou-ab12-11111111
. Corrisponderà alle risorse di proprietà degli account collegati all'unità organizzativa ou-ab12-11111111 o di qualsiasi altro account secondario. OUs
"Condition": { "ForAnyValue:StringLike" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/*"] }}
La condizione seguente si applica alle risorse True
di proprietà degli account collegati direttamente all'ID OUou-ab12-22222222
, ma non al figlio. OUs L'esempio seguente utilizza l'operatore StringEqualscondition per specificare il requisito di corrispondenza esatta per l'ID OU e non una corrispondenza con caratteri jolly.
"Condition": { "ForAnyValue:StringEquals" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}
Nota
Alcuni Servizi AWS richiedono l'accesso a risorse AWS di proprietà ospitate in un altro Account AWS. L'utilizzo di aws:ResourceOrgPaths
nelle tue policy basate sull'identità potrebbe influire sulla capacità della tua identità di accedere a queste risorse.
Alcuni AWS servizi, ad esempio AWS Data Exchange, si basano sull'accesso a risorse esterne all'utente Account AWS per le normali operazioni. Se usi la chiave aws:ResourceOrgPaths
nelle tue policy, includi istruzioni aggiuntive per creare delle esenzioni per tali servizi. La policy AWS: nega l'accesso alle risorse Amazon S3 al di fuori del tuo account, tranne AWS Data Exchange di esempio illustra come negare l'accesso in base all'account della risorsa definendo al contempo delle eccezioni per le risorse di proprietà del servizio. Puoi creare una policy simile per limitare l'accesso alle risorse all'interno di un'unita organizzativa (OU) utilizzando la chiave aws:ResourceOrgPaths
, tenendo conto delle risorse di proprietà del servizio.
Utilizza questo esempio di policy come modello per creare le tue policy personalizzate. Per ulteriori informazioni, consulta la documentazione del servizio.
Leggi: ResourceOrg ID
Utilizza questa chiave per confrontare l'identificatore dell'organizzazione in AWS Organizations a cui appartiene la risorsa richiesta con l'identificatore specificato nella politica.
-
Disponibilità: questa chiave viene inclusa nel contesto della richiesta solo se l'account che possiede la risorsa è membro di un'organizzazione. Questa chiave della condizione globale non supporta le seguenti operazioni:
-
AWS Audit Manager
-
auditmanager:UpdateAssessmentFrameworkShare
-
-
Amazon Detective
-
detective:AcceptInvitation
-
-
Amazon Elastic Block Store: tutte le operazioni
-
Amazon EC2
-
ec2:AcceptTransitGatewayPeeringAttachment
-
ec2:AcceptVpcEndpointConnections
-
ec2:AcceptVpcPeeringConnection
-
ec2:CopyImage
-
ec2:CopySnapshot
-
ec2:CreateTransitGatewayPeeringAttachment
-
ec2:CreateVolume
-
ec2:CreateVpcEndpoint
-
ec2:CreateVpcPeeringConnection
-
ec2:DeleteTransitGatewayPeeringAttachment
-
ec2:DeleteVpcPeeringConnection
-
ec2:RejectTransitGatewayPeeringAttachment
-
ec2:RejectVpcEndpointConnections
-
ec2:RejectVpcPeeringConnection
-
-
Amazon EventBridge
-
events:PutEvents
— EventBridgePutEvents
chiamate su un bus di eventi in un altro account, se tale bus di eventi è stato configurato come EventBridge destinazione tra più account prima del 2 marzo 2023. Per ulteriori informazioni, consulta Concedere le autorizzazioni per consentire eventi da altri AWS account nella Amazon EventBridge User Guide.
-
-
Amazon GuardDuty
-
guardduty:AcceptAdministratorInvitation
-
-
Amazon Macie
-
macie2:AcceptInvitation
-
-
OpenSearch Servizio Amazon
-
es:AcceptInboundConnection
-
-
Amazon Route 53
-
route53:AssociateVpcWithHostedZone
-
route53:CreateVPCAssociationAuthorization
-
route53:DeleteVPCAssociationAuthorization
-
route53:DisassociateVPCFromHostedZone
-
route53:ListHostedZonesByVPC
-
-
AWS Security Hub
-
securityhub:AcceptAdministratorInvitation
-
-
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
Nota
Per ulteriori considerazioni sulle operazioni non supportate di cui sopra, consulta il repository di esempi di policy del perimetro di dati
Questa chiave globale restituisce l'ID dell'organizzazione della risorsa per una determinata richiesta. Consente di creare regole che si applicano a tutte le risorse di un'organizzazione che sono specificate nell'elemento Resource
di una policy basata sull'identità. È possibile specificare l'ID organizzazione nell'elemento condizionale. Quando aggiungi e rimuovi degli account, le policy che includono la chiave aws:ResourceOrgID
includono automaticamente anche gli account corretti e non necessitano dell'aggiornamento manuale.
Ad esempio, la seguente policy impedisce al principale di aggiungere oggetti alla risorsa policy-genius-dev
, a meno che la risorsa Amazon S3 non appartenga alla stessa organizzazione del principale che effettua la richiesta.
Importante
Questa policy non consente alcuna operazione. Utilizza invece l'effetto Deny
, che nega esplicitamente l'accesso a tutte le risorse elencate nell'istruzione che non appartengono all'account elencato. Utilizza questa policy in combinazione con altre policy che consentono l'accesso a risorse specifiche.
{ "Version": "2012-10-17", "Statement": { "Sid": "DenyPutObjectToS3ResourcesOutsideMyOrganization", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:
partition
:s3:::policy-genius-dev/*", "Condition": { "StringNotEquals": { "aws:ResourceOrgID": "${aws:PrincipalOrgID}" } } } }
Nota
Alcuni Servizi AWS richiedono l'accesso a risorse AWS di proprietà ospitate in un altro Account AWS. L'utilizzo di aws:ResourceOrgID
nelle tue policy basate sull'identità potrebbe influire sulla capacità della tua identità di accedere a queste risorse.
Alcuni AWS servizi, ad esempio AWS Data Exchange, si basano sull'accesso a risorse esterne all'utente Account AWS per le normali operazioni. Se usi la chiave aws:ResourceOrgID
nelle tue policy, includi istruzioni aggiuntive per creare delle esenzioni per tali servizi. La policy AWS: nega l'accesso alle risorse Amazon S3 al di fuori del tuo account, tranne AWS Data Exchange di esempio illustra come negare l'accesso in base all'account della risorsa definendo al contempo delle eccezioni per le risorse di proprietà del servizio. Puoi creare una policy simile per limitare l'accesso alle risorse all'interno dell'organizzazione utilizzando la chiave aws:ResourceOrgID
, tenendo conto delle risorse di proprietà del servizio.
Utilizza questo esempio di policy come modello per creare le tue policy personalizzate. Per ulteriori informazioni, consulta la documentazione del servizio.
Nel seguente video, scopri ulteriori informazioni su come utilizzare la chiave di condizione aws:ResourceOrgID
in una policy.
aws:ResourceTag//tag-key
Utilizzare questa chiave per confrontare la coppia chiave-valore del tag specificata nella policy con la coppia chiave-valore associata alla risorsa. Ad esempio, puoi richiedere che l'accesso a una risorsa sia consentito solo se la risorsa dispone di una chiave di tag "Dept"
collegata al valore "Marketing"
. Per ulteriori informazioni, consulta Controllo dell'accesso alle risorse AWS.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta quando la risorsa richiesta dispone già di tag collegati o nelle richieste che creano una risorsa con un tag collegato. Questa chiave viene restituita solo per le risorse che supportano l'autorizzazione basata sui tag. È presente una chiave di contesto per ogni coppia chiave-valore del tag.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
Questa chiave di contesto è formattata "aws:ResourceTag/
dove tag-key
":"tag-value
"tag-key
e è una coppia tag-value
di tag chiave-valore. Per le chiavi e i valori dei tag non viene fatta la distinzione tra maiuscole e minuscole. Questo significa che se specifichi "aws:ResourceTag/TagKey1": "Value1"
nell'elemento condizione della policy, la condizione corrisponderà a una chiave di tag della risorsa denominata TagKey1
o tagkey1
, ma non a entrambe.
Per esempi sull'utilizzo della chiave aws:ResourceTag
per controllare l'accesso alle risorse IAM, consulta Controllo dell'accesso alle risorse AWS.
Per esempi di utilizzo della aws:ResourceTag
chiave per controllare l'accesso ad altre AWS risorse, consultaControllo dell'accesso alle risorse AWS mediante i tag.
Per un tutorial sull'utilizzo della chiave di aws:ResourceTag
condizione per il controllo degli accessi basato sugli attributi (ABAC), vedereTutorial IAM: Definizione delle autorizzazioni per accedere alle risorse AWS in base ai tag.
Proprietà della richiesta
Utilizzare le chiavi di condizione seguenti per confrontare i dettagli della richiesta stessa e il contenuto della richiesta con le proprietà della richiesta specificate nella policy.
Indice
leggi: CalledVia
Utilizzare questa chiave per confrontare i servizi nella policy con i servizi che hanno effettuato richieste per conto dell'entità IAM (utente o ruolo). Quando un principale effettua una richiesta a un AWS servizio, quel servizio potrebbe utilizzare le credenziali del principale per effettuare richieste successive ad altri servizi. La chiave aws:CalledVia
contiene un elenco ordinato di ciascun servizio nella catena che ha effettuato le richieste per conto dell'entità principale.
Ad esempio, puoi usarlo AWS CloudFormation per leggere e scrivere da una tabella Amazon DynamoDB. DynamoDB utilizza quindi la crittografia fornita AWS Key Management Service da ().AWS KMS
-
Disponibilità: questa chiave è presente nella richiesta quando un servizio che supporta
aws:CalledVia
utilizza le credenziali di un IAM principale per effettuare una richiesta a un altro servizio. Questa chiave non è presente se il servizio utilizza un ruolo di servizio oppure un ruolo collegato ai servizi per effettuare una chiamata per conto del principale. Questa chiave non è presente anche quando il principale effettua la chiamata direttamente. -
Tipo di dati: stringa (elenco)
-
Tipo di valore: multivalore
Per utilizzare la chiave di aws:CalledVia
condizione in una politica, è necessario fornire i principali del servizio per consentire o rifiutare le richieste di servizio. AWS AWS supporta l'utilizzo dei seguenti principali di servizio con. aws:CalledVia
Principale del servizio |
---|
aoss.amazonaws.com |
athena.amazonaws.com |
backup.amazonaws.com |
cloud9.amazonaws.com |
cloudformation.amazonaws.com |
databrew.amazonaws.com |
dataexchange.amazonaws.com |
dynamodb.amazonaws.com |
imagebuilder.amazonaws.com |
kms.amazonaws.com |
mgn.amazonaws.com |
nimble.amazonaws.com |
omics.amazonaws.com |
ram.amazonaws.com |
robomaker.amazonaws.com |
servicecatalog-appregistry.amazonaws.com |
sqlworkbench.amazonaws.com |
ssm-guiconnect.amazonaws.com |
Per consentire o negare l'accesso quando qualsiasi servizio effettua una richiesta utilizzando le credenziali del principale, utilizzare la chiave di condizione AWS: v iaAWSService
. Questa chiave di condizione supporta i AWS servizi.
La chiave aws:CalledVia
è una chiave multivalore. Tuttavia, non è possibile applicare l'ordine utilizzando questa chiave in una condizione. Usando l'esempio precedente, l'utente 1 effettua una richiesta a AWS CloudFormation, che chiama DynamoDB, che a sua volta chiama AWS KMS. Si tratta di tre richieste distinte. L'ultima chiamata a AWS KMS viene eseguita dall'utente 1 tramite AWS CloudFormation e poi DynamoDB.
In questo caso, la chiave aws:CalledVia
nel contesto della richiesta include cloudformation.amazonaws.com
e dynamodb.amazonaws.com
, in tale ordine. Se sei interessato al solo fatto che la chiamata sia stata effettuata tramite DynamoDB in qualche punto nella catena di richieste, puoi utilizzare questa chiave di condizione nella policy.
Ad esempio, la seguente politica consente di gestire la AWS KMS chiave denominatamy-example-key
, ma solo se DynamoDB è uno dei servizi richiedenti. L'operatore di condizione ForAnyValue:StringEquals
assicura che DynamoDB sia uno dei servizi a effettuare chiamate. Se il principale effettua la chiamata AWS KMS
direttamente, la condizione restituisce false
e la richiesta non è consentita da questa policy.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaDynamodb", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
region
:111122223333
:key/my-example-key
", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": ["dynamodb.amazonaws.com"] } } } ] }
Se si desidera stabilire quale servizio effettua la prima o l'ultima chiamata nella catena, è possibile utilizzare le chiavi aws:CalledViaFirst
e aws:CalledViaLast
. Ad esempio, la seguente politica consente di gestire la chiave denominata in. my-example-key
AWS KMS Queste AWS KMS operazioni sono consentite solo se nella catena sono state incluse più richieste. La prima richiesta deve essere fatta via AWS CloudFormation e l'ultima via DynamoDB. Se altri servizi fanno richieste nel mezzo della catena, l'operazione è ancora consentita.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaChain", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
region
:111122223333
:key/my-example-key
", "Condition": { "StringEquals": { "aws:CalledViaFirst": "cloudformation.amazonaws.com", "aws:CalledViaLast": "dynamodb.amazonaws.com" } } } ] }
Le chiavi aws:CalledViaFirst
e aws:CalledViaLast
sono presenti nella richiesta quando un servizio utilizza le credenziali di un'entità IAM per chiamare un altro servizio. Indicano il primo e l'ultimo servizio che ha effettuato chiamate nella catena di richieste. Ad esempio, supponiamo che AWS CloudFormation chiami un altro servizio denominatoX Service
, che chiama DynamoDB, che poi chiama. AWS KMS L'ultima chiamata a AWS KMS viene eseguita da User 1
via AWS CloudFormationX Service
, then e quindi da DynamoDB. È stato chiamato inizialmente tramite AWS CloudFormation e l'ultimo chiamato tramite DynamoDB.
aws: CalledViaFirst
Utilizzare questa chiave per confrontare i servizi nella policy con il primo servizio che ha effettuato una richiesta per conto dell'entità IAM (utente o ruolo). Per ulteriori informazioni, consulta aws:CalledVia
.
-
Disponibilità: questa chiave è presente nella richiesta quando un servizio utilizza le credenziali di un IAM principale per effettuare almeno un'altra richiesta a un servizio diverso. Questa chiave non è presente se il servizio utilizza un ruolo di servizio oppure un ruolo collegato ai servizi per effettuare una chiamata per conto del principale. Questa chiave non è presente anche quando il principale effettua la chiamata direttamente.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
leggi: CalledViaLast
Utilizzare questa chiave per confrontare i servizi nella policy con l’ultimo servizio che ha effettuato una richiesta per conto dell'entità IAM (utente o ruolo). Per ulteriori informazioni, consulta aws:CalledVia
.
-
Disponibilità: questa chiave è presente nella richiesta quando un servizio utilizza le credenziali di un IAM principale per effettuare almeno un'altra richiesta a un servizio diverso. Questa chiave non è presente se il servizio utilizza un ruolo di servizio oppure un ruolo collegato ai servizi per effettuare una chiamata per conto del principale. Questa chiave non è presente anche quando il principale effettua la chiamata direttamente.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
AWS: v iaAWSService
Usa questa chiave per verificare se un Servizio AWS effettua una richiesta a un altro servizio per tuo conto utilizzando le sessioni di accesso diretto (FAS).
La chiave di contesto della richiesta true
viene restituita quando un servizio utilizza sessioni di accesso diretto per effettuare una richiesta per conto del IAM principale originale. La chiave di contesto della richiesta restituisce anche false
quando il principale effettua direttamente la chiamata.
-
Disponibilità: questa chiave è sempre inclusa nel contesto della richiesta.
-
Tipo di dati: booleano
-
Tipo di valore: valore singolo
come: CurrentTime
Utilizzare questa chiave per confrontare la data e l'ora della richiesta con la data e l'ora specificate nella policy. Per visualizzare una policy di esempio che utilizza la chiave di condizione, consulta AWS: consente l'accesso in base alla data e all'ora.
-
Disponibilità: questa chiave è sempre inclusa nel contesto della richiesta.
-
Tipo di dati: data
-
Tipo di valore: valore singolo
seghe: EpochTime
Utilizzare questa chiave per confrontare la data e l'ora della richiesta in formato epoch o ora Unix con il valore specificato nella policy. Questa chiave accetta anche il numero di secondi dal 1 gennaio 1970.
aws:Referer
Utilizzare questa chiave per confrontare il referrer della richiesta nel browser client con il referrer specificato nella policy. Il valore del contesto della aws:referer
richiesta viene fornito dal chiamante in un'HTTPintestazione. L'intestazione Referer
viene inclusa in una richiesta del browser Web quando si seleziona un link in una pagina Web. L'Referer
intestazione contiene la URL pagina Web in cui è stato selezionato il collegamento.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo se la richiesta alla AWS risorsa è stata richiamata tramite collegamento da una pagina Web URL nel browser. Questa chiave non è inclusa per le richieste a livello di programmazione perché non utilizza un link del browser per accedere alla risorsa AWS .
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
Ad esempio, puoi accedere a un oggetto Amazon S3 direttamente utilizzando URL o utilizzando una chiamata direttaAPI. Per ulteriori informazioni, consulta le APIoperazioni di Amazon S3 direttamente tramite un browser Web. Quando si accede a un oggetto Amazon S3 da un URL oggetto esistente in una pagina Web, viene utilizzata la pagina Web URL di origine in. aws:referer
Quando si accede a un oggetto Amazon S3 digitandolo URL nel browser, non aws:referer
è presente. Quando si richiama API direttamente, inoltre, aws:referer
non è presente. È possibile utilizzare la chiave di condizione aws:referer
in una policy per autorizzare le richieste effettuate da un referente specifico, ad esempio un link su una pagina Web nel dominio dell'azienda.
avvertimento
Questa chiave deve essere utilizzata con attenzione. È pericoloso includere un valore dell'intestazione del referrer pubblicamente noto. Parti non autorizzate possono utilizzare browser modificati o personalizzati per fornire qualsiasi valore aws:referer
scelto. Di conseguenza, non aws:referer
deve essere utilizzato per impedire a parti non autorizzate di effettuare richieste dirette AWS . È disponibile solo per consentire ai clienti di proteggere i propri contenuti digitali, come i contenuti memorizzati su Amazon S3, da riferimenti su siti di terze parti non autorizzate.
Leggi: RequestedRegion
Utilizza questa chiave per confrontare la AWS regione chiamata nella richiesta con la regione specificata nella politica. È possibile utilizzare questa chiave di condizione globale per controllare quali regioni possono essere richieste. Per visualizzare le AWS regioni per ogni servizio, consulta Endpoint e quote del servizio in. Riferimenti generali di Amazon Web Services
-
Disponibilità: questa chiave è sempre inclusa nel contesto della richiesta.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
I servizi globali, ad esempio IAM, dispongono di un unico endpoint. Poiché questo endpoint si trova fisicamente nella regione Stati Uniti orientali (Virginia settentrionale), IAM le chiamate vengono sempre effettuate verso la regione us-east-1. Ad esempio, se si crea una politica che nega l'accesso a tutti i servizi se la regione richiesta non è us-west-2, IAM le chiamate hanno sempre esito negativo. Per vedere un esempio di come ovviare a questo problema, vedi NotAction con Deny.
Nota
La chiave di condizione aws:RequestedRegion
consente di controllare quale endpoint di un servizio è richiamato ma non controlla l'impatto dell'operazione. Alcuni servizi hanno impatti su più regioni.
Ad esempio, Amazon S3 dispone di API operazioni che si estendono su più regioni.
-
È possibile richiamare
s3:PutBucketReplication
in una regione (che è interessata dalla chiave di condizioneaws:RequestedRegion
) e altre regioni vengono interessate in base alle impostazioni di configurazione delle repliche. -
Puoi richiamare
s3:CreateBucket
per creare un bucket in un'altra regione e utilizzare las3:LocationConstraint
chiave di condizione per controllare le regioni applicabili.
Puoi utilizzare questa chiave di contesto per limitare l'accesso ai AWS servizi all'interno di un determinato insieme di regioni. Ad esempio, la seguente politica consente a un utente di visualizzare tutte le EC2 istanze Amazon in. AWS Management Console Tuttavia consente loro di modificare solo le istanze in Irlanda (eu-west-1), a Londra (eu-west-2) o Parigi (eu-west-3).
{ "Version": "2012-10-17", "Statement": [ { "Sid": "InstanceConsoleReadOnly", "Effect": "Allow", "Action": [ "ec2:Describe*", "ec2:Export*", "ec2:Get*", "ec2:Search*" ], "Resource": "*" }, { "Sid": "InstanceWriteRegionRestricted", "Effect": "Allow", "Action": [ "ec2:Associate*", "ec2:Import*", "ec2:Modify*", "ec2:Monitor*", "ec2:Reset*", "ec2:Run*", "ec2:Start*", "ec2:Stop*", "ec2:Terminate*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "eu-west-1", "eu-west-2", "eu-west-3" ] } } } ] }
aws:RequestTag//tag-key
Utilizzare questa chiave per confrontare la coppia chiave-valore del tag passata nella richiesta con la coppia del tag specificata nella policy. Ad esempio, è possibile controllare che la richiesta includa la chiave del tag "Dept"
e che abbia il valore "Accounting"
. Per ulteriori informazioni, consulta Controllo dell'accesso durante le richieste AWS.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta quando le coppie chiave-valore dei tag vengono passate nella richiesta. Quando più tag vengono passati nella richiesta, è presente una chiave di contesto per ogni coppia chiave-valore dei tag.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
Questa chiave di contesto è formattata "aws:RequestTag/
dove tag-key
":"tag-value
"tag-key
e è una coppia tag-value
di tag chiave-valore. Per le chiavi e i valori dei tag non viene fatta la distinzione tra maiuscole e minuscole. Questo significa che se specifichi "aws:RequestTag/TagKey1": "Value1"
nell'elemento condizione della policy, la condizione corrisponderà a una chiave di tag della richiesta denominata TagKey1
o tagkey1
, ma non a entrambi.
Questo esempio mostra che, sebbene la chiave abbia un singolo valore, è comunque possibile utilizzare più coppie chiave-valore in una richiesta se le chiavi sono diverse.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:::instance/*", "Condition": { "StringEquals": { "aws:RequestTag/environment": [ "preprod", "production" ], "aws:RequestTag/team": [ "engineering" ] } } } }
leggi: TagKeys
Utilizzare questa chiave per confrontare le chiavi dei tag in una richiesta con quelle specificate nella policy. Nell'utilizzo delle policy per controllare gli accessi tramite tag, è consigliabile utilizzare la chiave di condizione aws:TagKeys
per definire le chiavi di tag ammesse. Per esempi di policy e ulteriori informazioni, consultare Controllo dell'accesso in base alle chiavi di tag
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta se l'operazione supporta il passaggio di tag nella richiesta.
-
Tipo di dati: stringa (elenco)
-
Tipo di valore: multivalore
Questa chiave di contesto è formattata "aws:TagKeys":"
dove tag-key
"tag-key
è presente un elenco di chiavi di tag senza valori (ad esempio,["Dept","Cost-Center"]
).
Poiché è possibile includere più coppie chiave-valore dei tag in una richiesta, il contenuto della richiesta potrebbe essere una richiesta multivalore. In questo caso, devi usare gli operatori su set ForAllValues
o ForAnyValue
. Per ulteriori informazioni, consulta Chiavi di contesto multivalore.
Alcuni servizi supportano il tagging con operazioni sulle risorse, come la creazione, la modifica o l'eliminazione di una risorsa. Per consentire il tagging e le operazioni come chiamata singola, è necessario creare una policy che comprende le operazioni di tagging e di modifica della risorsa. È quindi possibile utilizzare la chiave di condizione aws:TagKeys
per implementare nella richiesta specifiche chiavi di tag. Ad esempio, per limitare i tag quando qualcuno crea uno EC2 snapshot Amazon, devi includere l'azione di ec2:CreateSnapshot
creazione e l'azione di ec2:CreateTags
tagging nella policy. Per visualizzare una politica per questo scenario che utilizzaaws:TagKeys
, consulta Creating a Snapshot with Tags nella Amazon EC2 User Guide.
leggi: SecureTransport
Usa questa chiave per verificare se la richiesta è stata inviata utilizzandoTLS. Il contesto della richiesta restituisce true
o false
. In una politica, è possibile consentire azioni specifiche solo se la richiesta viene inviata tramiteTLS.
-
Disponibilità: questa chiave è sempre inclusa nel contesto della richiesta.
-
Tipo di dati: booleano
-
Tipo di valore: valore singolo
leggi: SourceAccount
Utilizza questa chiave per confrontare l'ID account della risorsa che effettua una service-to-service richiesta con l'ID dell'account specificato nella politica, ma solo quando la richiesta viene effettuata da un responsabile del AWS servizio.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo quando la chiamata alla risorsa viene effettuata direttamente da un responsabile del AWS servizio per conto di una risorsa per la quale la configurazione ha attivato la service-to-service richiesta. Il servizio chiamante deve passare l'ID account della risorsa originale al servizio chiamato.
Nota
Questa chiave fornisce un meccanismo uniforme per imporre un controllo confused deputy tra i Servizi AWS. Tuttavia, non tutte le integrazioni di servizi richiedono l'uso di questa chiave di condizione globale. Consultate la documentazione in uso per ulteriori informazioni sui meccanismi specifici dei servizi per mitigare i rischi secondari confusi tra servizi. Servizi AWS
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
È possibile utilizzare questa chiave di condizione per garantire che un servizio di chiamata possa accedere alla risorsa solo quando la richiesta proviene da un account specifico. Ad esempio, puoi allegare la seguente policy di controllo delle risorse (RCP) per negare le richieste dei responsabili del servizio nei bucket Amazon S3, a meno che non siano state attivate da una risorsa nell'account specificato. Questa policy applica il controllo solo sulle richieste dei principali del servizio ("Bool": {"aws:PrincipalIsAWSService": "true"}
) che hanno la chiave aws:SourceAccount
("Null": {"aws:SourceAccount":
"false"}
), in modo che le integrazioni di servizi che non richiedono l'uso di questa chiave e le chiamate da parte dei principali non vengano influenzate. Se la chiave aws:SourceAccount
è presente nel contesto della richiesta, la condizione Null
verrà valutata come uguale a true
, determinando l'applicazione della chiave aws:SourceAccount
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RCPEnforceConfusedDeputyProtection", "Effect": "Deny", "Principal": "*", "Action": [ "s3:*" ], "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceAccount": "111122223333" }, "Null": { "aws:SourceAccount": "false" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }
Nelle politiche basate sulle risorse in cui il principale è un Servizio AWS principale, utilizza la chiave per limitare le autorizzazioni concesse al servizio. Ad esempio, quando un bucket Amazon S3 è configurato per inviare notifiche a un SNS argomento Amazon, il servizio Amazon S3 richiama l'operazione per tutti gli eventi configurati. sns:Publish
API Nella policy di argomento che autorizza l'operazione sns:Publish
, imposta il valore della chiave di condizione sull'ID account del bucket Amazon S3.
leggi: SourceArn
Usa questa chiave per confrontare l'Amazon Resource Name (ARN) della risorsa ARN che effettua una service-to-service richiesta con quello specificato nella policy, ma solo quando la richiesta viene effettuata da un responsabile del AWS servizio. Quando la fonte ARN include l'ID dell'account, non è necessario utilizzarlo aws:SourceAccount
conaws:SourceArn
.
Questa chiave non funziona con il ARN principale che effettua la richiesta. Utilizza invece leggi: PrincipalArn
.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo quando la chiamata alla risorsa viene effettuata direttamente da un responsabile del AWS servizio per conto di una risorsa per la quale la configurazione ha attivato la service-to-service richiesta. Il servizio chiamante passa ARN la risorsa originale al servizio chiamato.
Nota
Questa chiave fornisce un meccanismo uniforme per imporre un controllo confused deputy tra i Servizi AWS. Tuttavia, non tutte le integrazioni di servizi richiedono l'uso di questa chiave di condizione globale. Consultate la documentazione in uso per ulteriori informazioni sui meccanismi specifici dei servizi per mitigare i rischi secondari confusi tra diversi servizi. Servizi AWS
-
Tipo di dati: ARN
AWS consiglia di utilizzare ARNoperatori anziché operatori di stringa durante il confrontoARNs.
-
Tipo di valore: valore singolo
È possibile utilizzare questa chiave di condizione per garantire che un servizio di chiamata possa accedere alla risorsa solo quando la richiesta proviene da una risorsa specifica. Quando utilizzi una politica basata sulle risorse con un Servizio AWS principale come principalePrincipal
, imposta il valore di questa chiave di condizione sul valore ARN della risorsa a cui desideri limitare l'accesso. Ad esempio, quando un bucket Amazon S3 è configurato per inviare notifiche a un SNS argomento Amazon, il servizio Amazon S3 richiama l'operazione per tutti gli eventi configurati. sns:Publish
API Nell'argomento policy che consente l'sns:Publish
operazione, imposta il valore della chiave di condizione sul ARN bucket Amazon S3. Per consigli su quando utilizzare questa chiave di condizione nelle politiche basate sulle risorse, consulta la documentazione relativa alla chiave che stai utilizzando. Servizi AWS
AWS: ID SourceOrg
Utilizza questa chiave per confrontare l'ID dell'organizzazione della risorsa che effettua una service-to-service richiesta con l'ID dell'organizzazione specificato nella politica, ma solo quando la richiesta viene effettuata da un responsabile del AWS servizio. Quando aggiungi e rimuovi gli account da un'organizzazione in AWS Organizations, le policy che includono la chiave aws:SourceOrgID
includono automaticamente anche gli account corretti e non necessitano dell'aggiornamento manuale.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo quando la chiamata alla risorsa viene effettuata direttamente da un principale del servizio AWS per conto di una risorsa di proprietà di un account membro di un'organizzazione. Il servizio chiamante passa l'ID dell'organizzazione della risorsa originale al servizio chiamato.
Nota
Questa chiave fornisce un meccanismo uniforme per imporre un controllo confused deputy tra i Servizi AWS. Tuttavia, non tutte le integrazioni di servizi richiedono l'uso di questa chiave di condizione globale. Per ulteriori informazioni sui meccanismi specifici dei servizi per mitigare i rischi secondari Servizi AWS confusi tra servizi, consultate la documentazione utilizzata.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
È possibile utilizzare questa chiave di condizione per garantire che un servizio di chiamata possa accedere alla risorsa solo quando la richiesta proviene da una organizzazione specifica. Ad esempio, puoi allegare la seguente policy di controllo delle risorse (RCP) per negare le richieste dei responsabili del servizio nei bucket Amazon S3, a meno che non siano state attivate da una risorsa dell'organizzazione specificata. AWS Questa policy applica il controllo solo sulle richieste dei principali del servizio ("Bool": {"aws:PrincipalIsAWSService":
"true"}
) che hanno la chiave aws:SourceAccount
("Null": {"aws:SourceAccount": "false"}
), in modo che le integrazioni di servizi che non richiedono l'uso di questa chiave e le chiamate da parte dei principali non vengano influenzate. Se la chiave aws:SourceAccount
è presente nel contesto della richiesta, la condizione Null
verrà valutata come uguale a true
, determinando l'applicazione della chiave aws:SourceOrgID
. Utilizziamo invece aws:SourceAccount
al posto di aws:SourceOrgID
nell'operatore di condizione Null
in modo che il controllo si applichi ancora se la richiesta proviene da un account che non appartiene a un'organizzazione.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RCPEnforceConfusedDeputyProtection", "Effect": "Deny", "Principal": "*", "Action": [ "s3:*" ], "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceOrgID": "o-xxxxxxxxxx" }, "Null": { "aws:SourceAccount": "false" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } } ] }
leggi: SourceOrgPaths
Utilizza questa chiave per confrontare il AWS Organizations percorso della risorsa che effettua una service-to-service richiesta con il percorso dell'organizzazione specificato nella policy, ma solo quando la richiesta viene effettuata da un responsabile del AWS servizio. Un percorso Organizations è una rappresentazione testuale della struttura di un'entità Organizations. Per ulteriori informazioni sull'utilizzo e la conoscenza dei percorsi, consulta Comprendere il percorso dell'entità AWS Organizations.
-
Disponibilità: questa chiave è inclusa nel contesto della richiesta solo quando la chiamata alla risorsa viene effettuata direttamente da un principale del servizio AWS per conto di una risorsa di proprietà di un account membro di un'organizzazione. Il servizio chiamante passa il percorso dell'organizzazione della risorsa originale al servizio chiamato.
Nota
Questa chiave fornisce un meccanismo uniforme per imporre un controllo confused deputy tra i Servizi AWS. Tuttavia, non tutte le integrazioni di servizi richiedono l'uso di questa chiave di condizione globale. Per ulteriori informazioni sui meccanismi specifici dei Servizi AWS servizi per mitigare i rischi connessi alla confusione tra servizi, consultate la documentazione utilizzata.
-
Tipo di dati: stringa (elenco)
-
Tipo di valore: multivalore
Utilizza questa chiave di condizione per garantire che un servizio chiamante possa accedere alla risorsa solo quando la richiesta proviene da una specifica unità organizzativa (UO) in AWS Organizations.
Analogamente a aws:SourceOrgID
, per evitare l'impatto sulle integrazioni di servizi che non richiedono l'uso di questa chiave, utilizza l'operatore di condizione Null
con la chiave di condizione aws:SourceAccount
in modo che il controllo continui ad essere applicato se la richiesta proviene da un account che non appartiene a un'organizzazione.
{ "Condition": { "ForAllValues:StringNotLikeIfExists": { "aws:SourceOrgPaths": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/" }, "Null": { "aws:SourceAccount": "false" }, "Bool": { "aws:PrincipalIsAWSService": "true" } } }
aws:SourceOrgPaths
è una chiave di condizione multivalore. Le chiavi multivalore possono avere più di un valore nel contesto della richiesta. È necessario utilizzare gli operatori di insieme ForAnyValue
o ForAllValues
con gli operatori di condizione di stringa quando si utilizza questa chiave. Per ulteriori informazioni sulle chiavi di condizione multivalore, consultare Chiavi di contesto multivalore.
seghe: UserAgent
Utilizzare questa chiave per confrontare l'applicazione client del richiedente con l'applicazione specificata nella policy.
-
Disponibilità: questa chiave è sempre inclusa nel contesto della richiesta.
-
Tipo di dati: stringa
-
Tipo di valore: valore singolo
avvertimento
Questa chiave deve essere utilizzata con attenzione. Poiché il aws:UserAgent
valore viene fornito dal chiamante in un'HTTPintestazione, le parti non autorizzate possono utilizzare browser modificati o personalizzati per fornire aws:UserAgent
il valore desiderato. Di conseguenza, non aws:UserAgent
deve essere utilizzato per impedire a parti non autorizzate di effettuare richieste dirette. AWS Puoi utilizzarlo per consentire solo applicazioni client specifiche e solo dopo il test della policy.
Altre chiavi di condizione cross-service
AWS STS supporta chiavi di condizione di federazione SAML basate e chiavi di condizione interservizi per OIDC la federazione. Queste chiavi sono disponibili quando un utente che è stato federato tramite l'utilizzo SAML esegue AWS operazioni in altri servizi.