Come AWS X-Ray funziona con IAM - AWS X-Ray

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à.

Come AWS X-Ray funziona con IAM

Prima di utilizzare IAM per gestire l'accesso a X-Ray, è necessario comprendere quali funzionalità IAM sono disponibili per l'uso con X-Ray. Per avere una visione di alto livello del funzionamento di X-Ray e di Servizi AWS altro tipo con IAM, Servizi AWS consulta That Work with IAM nella IAM User Guide.

Puoi usare AWS Identity and Access Management (IAM) per concedere le autorizzazioni X-Ray agli utenti e alle risorse di calcolo del tuo account. IAM controlla l'accesso al servizio X-Ray a livello di API per applicare le autorizzazioni in modo uniforme, indipendentemente dal client (console, AWS SDK) impiegato dagli utenti. AWS CLI

Per utilizzare la console X-Ray per visualizzare mappe e segmenti di tracciamento, sono necessarie solo le autorizzazioni di lettura. Per abilitare l'accesso alla console, aggiungi la policy AWSXrayReadOnlyAccess gestita al tuo utente IAM.

Per lo sviluppo e il test locali, crea un ruolo IAM con autorizzazioni di lettura e scrittura. Assumi il ruolo e archivia le credenziali temporanee per il ruolo. È possibile utilizzare queste credenziali con il demone X-Ray, con e con AWS CLI l'SDK. AWS Per ulteriori informazioni, vedere Utilizzo di credenziali di sicurezza temporanee con. AWS CLI

Per distribuire la tua app strumentata su AWS, crea un ruolo IAM con autorizzazioni di scrittura e assegnalo alle risorse che eseguono l'applicazione. AWSXRayDaemonWriteAccessinclude l'autorizzazione a caricare tracce e alcune autorizzazioni di lettura per supportare l'uso delle regole di campionamento. Per ulteriori informazioni, consulta Configura le regole di campionamento.

Le policy in lettura e in scrittura non includono l'autorizzazione per configurare le impostazioni delle chiavi di cifratura e le regole di campionatura. Utilizza AWSXrayFullAccess per accedere a queste impostazioni o aggiungi le API di configurazione in una policy personalizzata. Per la crittografia e la decodifica con una chiave gestita personalizzata che crei, hai anche bisogno dell'autorizzazione per l'utilizzo della chiave.

Policy basate sull'identità X-Ray

Con le policy basate su identità di IAM, è possibile specificare quali azioni e risorse sono consentite o rifiutate, nonché le condizioni in base alle quali le azioni sono consentite o rifiutate. X-Ray supporta azioni, risorse e chiavi di condizione specifiche. Per informazioni su tutti gli elementi utilizzati in una policy JSON, consulta Documentazione di riferimento degli elementi delle policy JSON IAM nella Guida per l'utente IAM.

Azioni

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. Cioè, quale principale può eseguire azioni su quali risorse, e in quali condizioni.

L'elemento Action di una policy JSON descrive le operazioni che è possibile utilizzare per consentire o negare l'accesso a un criterio. Le azioni politiche in genere hanno lo stesso nome dell'operazione AWS API associata. Ci sono alcune eccezioni, ad esempio le azioni di sola autorizzazione che non hanno un'operazione API corrispondente. Esistono anche alcune operazioni che richiedono più operazioni in una policy. Queste operazioni aggiuntive sono denominate operazioni dipendenti.

Includi le operazioni in una policy per concedere le autorizzazioni a eseguire l'operazione associata.

Le azioni politiche in X-Ray utilizzano il seguente prefisso prima dell'azione:. xray: Ad esempio, per concedere a qualcuno l'autorizzazione a recuperare i dettagli delle risorse di gruppo con l'operazione dell'API GetGroup X-Ray, includi xray:GetGroup l'azione nella sua politica. Le istruzioni della policy devono includere un elemento Action o NotAction. X-Ray definisce il proprio set di azioni che descrivono le attività che è possibile eseguire con questo servizio.

Per specificare più azioni in una sola istruzione, separa ciascuna di esse con una virgola come mostrato di seguito:

"Action": [ "xray:action1", "xray:action2"

È possibile specificare più azioni tramite caratteri jolly (*). Ad esempio, per specificare tutte le azioni che iniziano con la parola Get, includi la seguente azione:

"Action": "xray:Get*"

Per visualizzare un elenco di azioni X-Ray, consulta Actions Defined by AWS X-Ray nella IAM User Guide.

Risorse

Gli amministratori possono utilizzare le policy AWS JSON per specificare chi ha accesso a cosa. Cioè, quale principale può eseguire operazioni su quali risorse, e in quali condizioni.

L'elemento JSON Resource della policy specifica l'oggetto o gli oggetti ai quali si applica l'azione. Le istruzioni devono includere un elemento Resource o un elemento NotResource. Come best practice, specifica una risorsa utilizzando il suo nome della risorsa Amazon (ARN). Puoi eseguire questa operazione per azioni che supportano un tipo di risorsa specifico, note come autorizzazioni a livello di risorsa.

Per le azioni che non supportano le autorizzazioni a livello di risorsa, ad esempio le operazioni di elenco, utilizza un carattere jolly (*) per indicare che l'istruzione si applica a tutte le risorse.

"Resource": "*"

Puoi controllare l'accesso alle risorse utilizzando una policy IAM. Per le operazioni che supportano le autorizzazioni a livello di risorsa, si utilizza un Amazon Resource Name (ARN) per identificare la risorsa a cui si applica la policy.

Tutte le azioni X-Ray possono essere utilizzate in una policy IAM per concedere o negare agli utenti il permesso di utilizzare quell'azione. Tuttavia, non tutte le azioni X-Ray supportano le autorizzazioni a livello di risorsa, che consentono di specificare le risorse su cui è possibile eseguire un'azione.

Per le operazioni che non supportano le autorizzazioni a livello di risorsa, è necessario utilizzare "*" come risorsa.

Le seguenti azioni X-Ray supportano le autorizzazioni a livello di risorsa:

  • CreateGroup

  • GetGroup

  • UpdateGroup

  • DeleteGroup

  • CreateSamplingRule

  • UpdateSamplingRule

  • DeleteSamplingRule

Di seguito è riportato un esempio di policy di autorizzazione basata su identità per un’operazione CreateGroup. L'esempio mostra l'uso di un ARN relativo al nome di gruppo local-users con l'ID univoco come carattere jolly. L’ID univoco viene generato quando il gruppo viene creato, quindi non può essere previsto nella policy in anticipo. Quando utilizzi GetGroup, UpdateGroup oppure DeleteGroup, è possibile definirlo come un carattere jolly o l’ARN esatto, incluso l’ID.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:CreateGroup" ], "Resource": [ "arn:aws:xray:eu-west-1:123456789012:group/local-users/*" ] } ] }

Di seguito è riportato un esempio di policy di autorizzazione basata su identità per un’operazione CreateSamplingRule.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:CreateSamplingRule" ], "Resource": [ "arn:aws:xray:eu-west-1:123456789012:sampling-rule/base-scorekeep" ] } ] }
Nota

L’ARN di una regola di campionamento è definito in base al nome. A differenza degli ARN dei gruppi, le regole di campionamento non hanno un ID generato in modo univoco.

Per visualizzare un elenco dei tipi di risorse X-Ray e dei relativi ARN, consulta Resources Defined by AWS X-Ray nella IAM User Guide. Per informazioni sulle operazioni con cui è possibile specificare l'ARN di ogni risorsa, consulta Operazioni definite da AWS X-Ray.

Chiavi di condizione

X-Ray non fornisce chiavi di condizione specifiche del servizio, ma supporta l'utilizzo di alcune chiavi di condizione globali. Per visualizzare tutte le chiavi di condizione AWS globali, consulta AWS Global Condition Context Keys nella IAM User Guide.

Esempi

Per visualizzare esempi di policy basate sull'identità a raggi X, vedere. AWS X-Ray esempi di politiche basate sull'identità

Policy basate sulle risorse X-Ray

X-Ray supporta politiche basate sulle risorse per l' Servizio AWS integrazione attuale e futura, come il tracciamento attivo di Amazon SNS. Le policy basate sulle risorse X-Ray possono essere aggiornate da altri AWS Management Console utenti o tramite l'SDK o la CLI. AWS Ad esempio, la console Amazon SNS tenta di configurare automaticamente una policy basata sulle risorse per l'invio di tracce a X-Ray. Il seguente documento sulla policy fornisce un esempio di configurazione manuale delle policy basate sulle risorse X-Ray.

Esempio di policy basata su risorse X-Ray per il tracciamento attivo di Amazon SNS

Questo documento di policy di esempio specifica le autorizzazioni necessarie ad Amazon SNS per inviare dati di traccia a X-Ray:

{ Version: "2012-10-17", Statement: [ { Sid: "SNSAccess", Effect: Allow, Principal: { Service: "sns.amazonaws.com", }, Action: [ "xray:PutTraceSegments", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], Resource: "*", Condition: { StringEquals: { "aws:SourceAccount": "account-id" }, StringLike: { "aws:SourceArn": "arn:partition:sns:region:account-id:topic-name" } } } ] }

Utilizza la CLI per creare una policy basata sulle risorse che conceda ad Amazon SNS le autorizzazioni per inviare dati di traccia a X-Ray:

aws xray put-resource-policy --policy-name MyResourcePolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "SNSAccess", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": [ "xray:PutTraceSegments", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "StringLike": { "aws:SourceArn": "arn:partition:sns:region:account-id:topic-name" } } } ] }'

Per utilizzare questi esempi, sostituisci partition, regionaccount-id, e topic-namecon la AWS partizione, la regione, l'ID dell'account e il nome dell'argomento Amazon SNS specifici. Per autorizzare tutti gli argomenti di Amazon SNS a inviare dati di traccia a X-Ray, sostituisci il nome dell'argomento con. *

Autorizzazione basata su tag X-Ray

È possibile allegare tag ai gruppi di raggi X o alle regole di campionamento oppure passare i tag in una richiesta a X-Ray. Per controllare l'accesso basato su tag, fornisci informazioni sui tag nell'elemento condizione di una policy utilizzando le chiavi di condizione xray:ResourceTag/key-name, aws:RequestTag/key-name o aws:TagKeys. Per ulteriori informazioni sull'etichettatura delle risorse X-Ray, vedere. Etichettatura delle regole e dei gruppi di campionamento a raggi X

Per visualizzare una policy basata sulle identità di esempio per limitare l'accesso a una risorsa basata su tag su tale risorsa, consulta Gestione dell'accesso ai gruppi X-Ray e alle regole di campionamento basate sui tag.

Esecuzione locale dell'applicazione

L'applicazione strumentata invia i dati di traccia al demone X-Ray. Il daemon memorizza i documenti segmentati e li carica sul servizio X-Ray in batch. Il demone necessita di autorizzazioni di scrittura per caricare dati di traccia e telemetria sul servizio X-Ray.

Quando esegui il daemon localmente, crea un ruolo IAM, assumi il ruolo e archivia le credenziali temporanee nelle variabili di ambiente o in un file denominato all'interno di una cartella denominata nella cartella utente. credentials .aws Per ulteriori informazioni, consulta Utilizzo di credenziali di sicurezza temporanee con. AWS CLI

Esempio ~/.aws/credentials
[default] aws_access_key_id={access key ID} aws_secret_access_key={access key} aws_session_token={AWS session token}

Se hai già configurato le credenziali da utilizzare con l' AWS SDK oppure AWS CLI il demone può utilizzarle. Se sono disponibili più profili, il daemon usa il profilo di default.

Esecuzione dell'applicazione in AWS

Quando esegui l'applicazione AWS, usa un ruolo per concedere l'autorizzazione all'istanza Amazon EC2 o alla funzione Lambda che esegue il demone.

Per creare un ruolo da utilizzare con X-Ray
  1. Apri la console IAM.

  2. Scegli Ruoli.

  3. Scegli Crea nuovo ruolo.

  4. Per Role Name (Nome ruolo) digitare xray-application. Selezionare Next Step (Fase successiva).

  5. Come Role Type (Tipo ruolo), scegliere Amazon EC2.

  6. Allega la seguente policy gestita per consentire all'applicazione di accedere a Servizi AWS:

    • AWSXRayDaemonWriteAccess— Fornisce al demone X-Ray il permesso di caricare dati di traccia.

    Se l'applicazione utilizza l' AWS SDK per accedere ad altri servizi, aggiungete politiche che consentano l'accesso a tali servizi.

  7. Selezionare Next Step (Fase successiva).

  8. Selezionare Crea ruolo.

Autorizzazioni utente per la crittografia

X-Ray crittografa tutti i dati di traccia e, per impostazione predefinita, è possibile configurarlo per utilizzare una chiave gestita dall'utente. Se scegli una chiave gestita AWS Key Management Service dal cliente, devi assicurarti che la politica di accesso della chiave consenta di concedere l'autorizzazione a X-Ray per utilizzarla per la crittografia. Anche gli altri utenti del tuo account devono accedere alla chiave per visualizzare i dati di traccia crittografati nella console X-Ray.

Per una chiave gestita dal cliente, configura la chiave con una politica di accesso che consenta le seguenti azioni:

  • L'utente che configura la chiave in X-Ray è autorizzato a kms:CreateGrant chiamare e. kms:DescribeKey

  • Gli utenti che accedono ai dati di tracciamento crittografati hanno l'autorizzazione di chiamare kms:Decrypt.

Quando aggiungi un utente al gruppo Key users nella sezione di configurazione delle chiavi della console IAM, dispone dell'autorizzazione per entrambe queste operazioni. L'autorizzazione deve essere impostata solo sulla policy chiave, quindi non è necessaria alcuna AWS KMS autorizzazione per utenti, gruppi o ruoli. Per ulteriori informazioni, consulta Using Key Policies nella AWS KMS Developer Guide.

Per la crittografia predefinita, o se si sceglie la CMK AWS gestita (aws/xray), l'autorizzazione si basa su chi ha accesso alle API X-Ray. Tutti gli utenti con accesso a PutEncryptionConfig, inclusi in AWSXrayFullAccess, possono modificare la configurazione della crittografia. Per impedire a un utente di modificare la chiave crittografica, non assegnargli l'autorizzazione ad utilizzare PutEncryptionConfig.