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à.
Configurazione dell'autenticazione con token al portatore per Metrics
Nota
Questa pagina riguarda l'autenticazione con token al portatore per l'endpoint OTLP di Metrics. CloudWatch Per l'autenticazione tramite token CloudWatch Logs Bearer, vedi Configurazione dell'autenticazione con token bearer per Logs nella Logs User Guide. CloudWatch
Prima di poter inviare le metriche utilizzando l'autenticazione con token al portatore con l'endpoint OTLP, devi: CloudWatch
-
Creare un utente IAM con autorizzazioni Metrics CloudWatch
-
Genera credenziali specifiche per il servizio (chiave API)
Importante
Consigliamo di utilizzare l'autenticazione SigV4 con credenziali a breve termine per tutti i carichi di lavoro laddove ciò sia possibile. SigV4 offre la posizione di sicurezza più solida. Limita l'uso delle chiavi API (bearer token) a scenari in cui l'autenticazione a breve termine basata su credenziali non è possibile, ad esempio l'invio di metriche da AWS ambienti diversi, fornitori di terze parti o piattaforme che non supportano l'SDK. AWS Quando sei pronto a incorporare le CloudWatch metriche in applicazioni con requisiti di sicurezza più elevati, passa alle credenziali a breve termine. Per ulteriori informazioni, consulta Alternative alle chiavi di accesso a lungo termine nella Guida per l'utente IAM.
Importante
L'endpoint CloudWatch OTLP richiede TLS (HTTPS). Le richieste di token Bearer inviate tramite HTTP semplice vengono rifiutate. Usalo sempre https://monitoring. durante la configurazione del client.AWS Region.amazonaws.com/v1/metrics
Opzione 1: avvio rapido a utilizzare AWS console
La console AWS di gestione offre un flusso di lavoro semplificato per generare chiavi API per l'accesso agli endpoint OTLP.
Per configurare l'accesso agli endpoint OTLP utilizzando la console
-
Accedi alla console di gestione. AWS
-
Vai a CloudWatch> Impostazioni > Globale.
-
Nella sezione Chiavi API, scegli Genera chiave API.
-
Per Scadenza della chiave API, esegui una delle seguenti operazioni:
-
Seleziona una durata di scadenza della chiave API di 1, 5, 30, 90 o 365 giorni.
-
Scegli Durata personalizzata per specificare una data di scadenza della chiave API personalizzata.
-
Seleziona Non scade mai (scelta non consigliata).
-
-
Scegli Genera chiave API.
La console automaticamente:
-
Crea un nuovo utente IAM con le autorizzazioni appropriate
-
Allega la policy CloudWatchAPIKeyAccessgestita (include
cloudwatch:PutMetricDataecloudwatch:CallWithBearerTokenautorizzazioni) -
Genera credenziali specifiche del servizio (chiave API)
Per salvare e verificare la tua chiave API
-
Copia e salva in modo sicuro le credenziali visualizzate:
-
ID chiave API (ID Service-specific credenziale)
-
Chiave API segreta (token Bearer)
La console offre anche la possibilità di archiviare la chiave API direttamente in AWS Secrets Manager durante la generazione. Se si sceglie di archiviare in Secrets Manager, la chiave viene automaticamente aggiornata al ripristino ed eliminata all'eliminazione della chiave.
Importante
Salva immediatamente l'API Key Secret. Non puoi recuperarlo in un secondo momento. Se la perdi, devi generare una nuova chiave API.
-
-
Invia una metrica di test per verificare la configurazione:
curl -X POST "https://monitoring.us-east-1.amazonaws.com/v1/metrics" \ -H "Content-Type: application/json" \ -H "Authorization: BearerYOUR_API_KEY" \ -d '{"resourceMetrics":[]}'
Opzione 2: configurazione manuale
Se preferisci un maggiore controllo sulla configurazione IAM o devi personalizzare le autorizzazioni, puoi configurare manualmente l'accesso agli endpoint OTLP.
Passaggio 1: creare un utente IAM
Crea un utente IAM per l'inserimento di metriche:
Per creare un utente IAM per l'inserimento di metriche
-
Accedi alla console di AWS gestione e accedi a IAM.
-
Nel riquadro di navigazione a sinistra, seleziona Users (Utenti).
-
Selezionare Create user (Crea utente).
-
Inserisci un nome utente (ad esempio,
cloudwatch-metrics-api-key-user). -
Scegli Next (Successivo).
-
Allega una delle seguenti politiche IAM:
Opzione A: utilizza la policy gestita (consigliata)
Allega la politica CloudWatchAPIKeyAccessgestita.
Opzione B: creare una politica personalizzata
Crea e allega la seguente policy IAM:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchMetricsAPIs", "Effect": "Allow", "Action": [ "cloudwatch:CallWithBearerToken", "cloudwatch:PutMetricData" ], "Resource": "*" }, { "Sid": "KMSDecryptForCMKDatasets", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Condition": { "StringLike": { "kms:ViaService": "cloudwatch.*.amazonaws.com", "kms:EncryptionContext:aws:cloudwatch:arn": "arn:aws:cloudwatch:*:*:dataset/*" } }, "Resource": "arn:aws:kms:*:*:key/*" } ] } -
Scegli Avanti, quindi scegli Crea utente.
Nota
Le autorizzazioni KMS sono necessarie se prevedi di inviare metriche a set di dati che utilizzano chiavi KMS gestite dal cliente (CMK). Le condizioni limitano l'accesso KMS solo alle chiavi utilizzate tramite il servizio per le risorse del set di dati. CloudWatch
Fase 2: Generazione di credenziali specifiche per il servizio (chiave API)
Genera la chiave API CloudWatch Metrics utilizzando l'API. CreateServiceSpecificCredential Puoi anche utilizzare il comando AWS CLI create-service-specific-credential
Per generare una chiave API con una scadenza di 30 giorni:
aws iam create-service-specific-credential \ --user-name cloudwatch-metrics-api-key-user \ --service-name cloudwatch.amazonaws.com \ --credential-age-days 30
La risposta è un ServiceSpecificCredentialoggetto. Il ServiceCredentialSecret valore è la tua chiave API CloudWatch Metrics (token bearer).
Importante
Archivia il ServiceCredentialSecret valore in modo sicuro. Non puoi recuperarlo in un secondo momento. Se la perdi, devi generare una nuova chiave API.
Fase 3: Inviare metriche
Puoi inviare immediatamente le metriche all'endpoint OTLP utilizzando il tuo token bearer:
curl -X POST "https://monitoring.us-east-1.amazonaws.com/v1/metrics" \ -H "Content-Type: application/json" \ -H "Authorization: BearerYOUR_API_KEY" \ -d '{"resourceMetrics":[]}'
L'endpoint accetta entrambi i tipi di contenuto. application/json application/x-protobuf
Controlla le autorizzazioni per la generazione e l'utilizzo delle chiavi API CloudWatch Metrics
Controllo della generazione di chiavi API CloudWatch Metrics
L'iam:CreateServiceSpecificCredentialazione controlla la generazione di una chiave specifica del servizio (come una chiave API CloudWatch Metrics). È possibile questa azione agli utenti IAM come una risorsa per limitare gli utenti per cui è possibile generare una chiave.
Per imporre condizioni all’autorizzazione per l’azione iam:CreateServiceSpecificCredential, è possibile utilizzare le chiavi di condizione seguenti:
-
iam:ServiceSpecificCredentialAgeDays— Consente di specificare, nella condizione, il tempo di scadenza della chiave in giorni. -
iam:ServiceSpecificCredentialServiceName— Consente di specificare, nella condizione, il nome di un servizio.
Controllo dell'utilizzo delle chiavi API CloudWatch Metrics
L'cloudwatch:CallWithBearerTokenazione controlla l'uso di una chiave API CloudWatch Metrics. Per impedire a un'identità di utilizzare le chiavi dell'API CloudWatch Metrics, allega una policy che neghi l'cloudwatch:CallWithBearerTokenazione all'utente IAM associato alla chiave.
Nota
I token Bearer for CloudWatch Metrics possono essere utilizzati solo con l'endpoint di ingestione delle metriche OTLP (). https://monitoring. Non possono essere utilizzati per chiamare nessun'altra CloudWatch API o endpoint, incluse le API di query (,,AWS Region.amazonaws.com/v1/metricsDescribeAlarms), l'endpoint di query PromQL GetMetricDataListMetrics, l'endpoint OTLP trace o l'endpoint OTLP logs.
Policy di esempio
Impedisci a un'identità di generare e utilizzare le chiavi API Metrics: CloudWatch
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCWMetricsAPIKeys", "Effect": "Deny", "Action": [ "iam:CreateServiceSpecificCredential", "cloudwatch:CallWithBearerToken" ], "Resource": "*" } ] }
avvertimento
Questa politica impedisce la creazione di credenziali per tutti i AWS servizi che supportano la creazione di credenziali specifiche del servizio. Per ulteriori informazioni, consulta le Service-specificcredenziali per gli utenti IAM nella Guida per l'utente IAM.
Impedisci a un'identità di utilizzare le CloudWatch chiavi API Metrics:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloudwatch:CallWithBearerToken", "Resource": "*" } ] }
Consenti la creazione di chiavi CloudWatch Metrics solo se scadono entro 90 giorni:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceSpecificCredential", "Resource": "arn:aws:iam::123456789012:user/username", "Condition": { "StringEquals": { "iam:ServiceSpecificCredentialServiceName": "cloudwatch.amazonaws.com" }, "NumericLessThanEquals": { "iam:ServiceSpecificCredentialAgeDays": "90" } } } ] }
Utilizzo di gettoni al portatore con il Collector OpenTelemetry
Quando si utilizzano token bearer, non è necessaria l'estensione. sigv4auth Usa l'estensione bearertokenauth
extensions: bearertokenauth: filename: "/etc/otel/cw-api-key" exporters: otlphttp: tls: insecure: false endpoint: https://monitoring.us-east-1.amazonaws.com/v1/metrics auth: authenticator: bearertokenauth receivers: otlp: protocols: http: endpoint: 0.0.0.0:4318 processors: batch: send_batch_size: 200 timeout: 10s service: extensions: [bearertokenauth] pipelines: metrics: receivers: [otlp] processors: [batch] exporters: [otlphttp]
In alternativa, puoi fare riferimento a una variabile di ambiente anziché a un file:
extensions: bearertokenauth: token: "${env:CW_API_KEY}"
Importante
Non codificare mai le chiavi API direttamente nei file di configurazione del collettore. I file di configurazione sono spesso affidati al controllo della versione o archiviati nei manifesti di distribuzione. filenameUtilizzateli per leggere da un segreto montato o ${env:VAR} per leggere da una variabile di ambiente inserita dal vostro gestore dei segreti.
Nota
Con l'autenticazione con token bearer, non sono necessari l'sigv4authestensione, i file di AWS credenziali, i ruoli IAM o la configurazione IRSA. Ciò rende la configurazione del collettore portabile in qualsiasi ambiente AWS, locale o con altri provider di servizi cloud.
Chiavi API rotanti
La rotazione regolare delle chiavi API riduce il rischio di accessi non autorizzati. Ti consigliamo di stabilire un programma di rotazione in linea con le politiche di sicurezza dell'organizzazione.
Processo di rotazione
Per ruotare una chiave API senza interrompere l'erogazione delle metriche, segui questa procedura:
Per ruotare una chiave API
-
Crea una nuova credenziale (secondaria) per l'utente IAM:
aws iam create-service-specific-credential \ --user-name cloudwatch-metrics-api-key-user \ --service-name cloudwatch.amazonaws.com \ --credential-age-days 90Nota
IAM consente un massimo di 2 credenziali specifiche del servizio per utente IAM per servizio. Elimina o disattiva le vecchie credenziali prima di crearne di nuove se hai raggiunto questo limite.
-
(Facoltativo) Archivia la nuova credenziale in AWS Secrets Manager per il recupero sicuro e la rotazione automatica.
-
Aggiorna la configurazione o l'applicazione OpenTelemetry Collector per utilizzare la nuova chiave API.
-
Imposta la credenziale originale su inattiva:
aws iam update-service-specific-credential \ --user-name cloudwatch-metrics-api-key-user \ --service-specific-credential-idACCA1234EXAMPLE1234\ --status Inactive -
Verifica che la distribuzione metrica non sia influenzata. Invia una richiesta di test utilizzando la nuova chiave e conferma di ricevere una risposta HTTP 200. Puoi anche monitorare le CloudWatch metriche esistenti dell'applicazione per confermare che i dati continuino ad arrivare.
-
Dopo aver confermato l'avvenuta consegna con la nuova chiave, elimina la credenziale precedente:
aws iam delete-service-specific-credential \ --service-specific-credential-idACCA1234EXAMPLE1234
Monitoraggio della scadenza delle chiavi
Per verificare la data di creazione e lo stato delle chiavi API esistenti, usa il comando list-service-specific-credentials
aws iam list-service-specific-credentials \ --user-name cloudwatch-metrics-api-key-user \ --service-name cloudwatch.amazonaws.com
La risposta include e per ogni credenziale. CreateDate Status Utilizza queste informazioni per identificare le chiavi che stanno per scadere o che sono state attive più a lungo di quanto consentito dalla politica di rotazione.
Risposta a una chiave API compromessa
Se sospetti che una chiave API sia stata compromessa, procedi immediatamente come segue:
Per rispondere a una chiave API compromessa
-
Disattiva immediatamente la chiave per evitare ulteriori utilizzi non autorizzati:
aws iam update-service-specific-credential \ --user-name cloudwatch-metrics-api-key-user \ --service-specific-credential-idACCA1234EXAMPLE1234\ --status Inactive -
CloudTrail Esamina i log per determinare l'ambito dell'accesso non autorizzato. Scopri Registrazione dell'utilizzo delle chiavi API con CloudTrail come abilitare il controllo dell'utilizzo delle chiavi API.
-
Crea una chiave sostitutiva seguendo il processo di rotazione descritto inProcesso di rotazione.
-
Eliminare la chiave compromessa dopo aver effettuato la sostituzione:
aws iam delete-service-specific-credential \ --service-specific-credential-idACCA1234EXAMPLE1234 -
Allega una politica di rifiuto se devi bloccare immediatamente l'accesso a tutti i token portatori per l'utente IAM durante le indagini:
{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "cloudwatch:CallWithBearerToken", "Resource": "*" } }
Nota
Per eseguire queste azioni tramite l'API, devi autenticarti con AWS le credenziali e non con una CloudWatch chiave API Metrics. I token Bearer possono essere utilizzati solo per l'inserimento di metriche, non per le operazioni di gestione IAM.
Puoi anche utilizzare le seguenti operazioni dell'API IAM per gestire le chiavi compromesse:
-
ResetServiceSpecificCredential— Reimposta la chiave per generare una nuova password senza eliminare la credenziale. La chiave non deve essere scaduta.
Le migliori pratiche di sicurezza per le chiavi API
Segui queste best practice per proteggere le tue chiavi API CloudWatch Metrics:
-
Non incorporare mai le chiavi API nel codice sorgente. Non codificate le chiavi API nel codice dell'applicazione, nei file di configurazione dei collettori o nei sistemi di controllo della versione. Utilizzate l'
bearertokenauthestensione confilenameo${env:VAR}per iniettare segreti in fase di esecuzione. -
Usa un gestore di segreti. Archivia le chiavi API in AWS Secrets Manager o in una soluzione di gestione dei segreti equivalente. Ciò consente il controllo centralizzato degli accessi, la registrazione degli audit e la rotazione automatizzata.
-
Imposta una scadenza per tutte le chiavi. Specificate sempre un
--credential-age-daysvalore durante la creazione delle chiavi API. Per imporre una durata massima delle chiavi in tutta l'organizzazione, utilizza la chiave di condizioneiam:ServiceSpecificCredentialAgeDaysIAM. -
Applica le autorizzazioni con privilegi minimi. Utilizza la CloudWatchAPIKeyAccesspolicy gestita come punto di partenza e limita ulteriormente se necessario.
-
Abilita la CloudTrail registrazione. Verifica l'utilizzo delle chiavi API abilitando gli eventi di CloudTrail dati per
AWS::CloudWatch::Metric. Per informazioni, consulta Registrazione dell'utilizzo delle chiavi API con CloudTrail. -
Monitora con IAM Access Analyzer. Utilizza IAM Access Analyzer per identificare le credenziali non utilizzate e le policy eccessivamente permissive associate agli utenti IAM della tua chiave API.
-
Ruota i tasti regolarmente. Stabilite un programma di rotazione e seguite la procedura descritta inChiavi API rotanti.
Registrazione dell'utilizzo delle chiavi API con CloudTrail
Puoi utilizzarlo AWS CloudTrail per registrare gli eventi relativi ai dati per l'ingestione di CloudWatch Metrics OTLP. CloudWatch emette eventi di AWS::CloudWatch::Metric dati per le chiamate all'endpoint OTLP, consentendoti di controllare l'attività di inserimento delle metriche, incluso l'utilizzo delle chiavi API.
Nota
Il bucket S3 che specifichi per il percorso deve avere una policy relativa ai bucket che consenta di scrivere file di log al suo interno. CloudTrail Per ulteriori informazioni, consulta la policy sui bucket di Amazon S3 CloudTrail nella Guida per l'AWS CloudTrail utente.
Per abilitare la CloudTrail registrazione per l'utilizzo delle chiavi dell'API CloudWatch Metrics
-
Crea un percorso:
aws cloudtrail create-trail \ --name cloudwatch-metrics-api-key-audit \ --s3-bucket-namemy-cloudtrail-bucket\ --region us-east-1 -
Configura i selettori di eventi avanzati per acquisire gli eventi di scrittura (inserimento) dei dati di CloudWatch Metrics:
aws cloudtrail put-event-selectors \ --region us-east-1 \ --trail-name cloudwatch-metrics-api-key-audit \ --advanced-event-selectors '[{ "Name": "CloudWatch Metrics write data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::CloudWatch::Metric"] }, { "Field": "readOnly", "Equals": ["false"] } ] }]' -
Inizia la registrazione dei percorsi:
aws cloudtrail start-logging \ --name cloudwatch-metrics-api-key-audit \ --region us-east-1
Il readOnly: false filtro limita la registrazione alle operazioni di scrittura (PutMetricData), che includono tutte le chiamate di ingestione OTLP. Per identificare l'utilizzo del token bearer tra questi eventi, interroga i trail log (tramite Athena o CloudTrail Lake) e filtra in base al nome utente IAM associato alla chiave API (ad esempio,). cloudwatch-metrics-api-key-user Gli eventi derivanti dall'inserimento di OTLP sono AdditionalEventData.protocol impostati nel payload degli eventi, che puoi utilizzare OTLP nelle query post-hoc per distinguerli dalle classiche chiamate SDK. PutMetricData