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à.
Esporta i dati di registro su Amazon S3 utilizzando il AWS CLI
Nell'esempio seguente, si utilizza un'attività di esportazione per esportare tutti i dati da un gruppo di log CloudWatch Logs denominato in un my-log-group
bucket Amazon S3 denominato. my-exported-logs
Questo esempio presuppone che tu abbia già creato il gruppo di log my-log-group
.
È supportata l'esportazione dei dati di registro in bucket S3 crittografati da. AWS KMS L'esportazione in bucket crittografati con DSSE-KMS non è supportata.
I dettagli su come configuri l'esportazione dipendono dal fatto che il bucket Amazon S3 in cui desideri esportare si trovi nello stesso account dei log che vengono esportati o in un account diverso.
Esportazione nello stesso account
Se il bucket Amazon S3 si trova nello stesso account dei log che vengono esportati, segui le istruzioni in questa sezione.
Argomenti
Fase 1: Creazione di un bucket S3
Ti consigliamo di utilizzare un bucket creato appositamente per i log. CloudWatch Tuttavia, se intendi utilizzare un bucket esistente, puoi passare alla fase 2.
Nota
Il bucket S3 deve risiedere nella stessa regione dei dati di registro da esportare. CloudWatch I registri non supportano l'esportazione di dati in bucket S3 in una regione diversa.
Per creare un bucket S3 utilizzando il AWS CLI
Al prompt dei comandi, eseguire il seguente comando create-bucket, in cui LocationConstraint
è la regione in cui esportare i dati di log.
aws s3api create-bucket --bucket
my-exported-logs
--create-bucket-configuration LocationConstraint=us-east-2
Di seguito è riportato un output di esempio.
{ "Location": "/
my-exported-logs
" }
Fase 2: configurare le autorizzazioni di accesso
Per creare l'attività di esportazione nella fase 5, è necessario essere registrati con il ruolo IAM AmazonS3ReadOnlyAccess
e con le seguenti autorizzazioni:
logs:CreateExportTask
logs:CancelExportTask
logs:DescribeExportTasks
logs:DescribeLogStreams
logs:DescribeLogGroups
Per fornire l'accesso, aggiungi autorizzazioni agli utenti, gruppi o ruoli:
-
Utenti e gruppi in: AWS IAM Identity Center
Crea un set di autorizzazioni. Segui le istruzioni riportate nella pagina Create a permission set (Creazione di un set di autorizzazioni) nella Guida per l'utente di AWS IAM Identity Center .
-
Utenti gestiti in IAM tramite un provider di identità:
Crea un ruolo per la federazione delle identità. Segui le istruzioni riportate nella pagina Create a role for a third-party identity provider (federation) della Guida per l'utente IAM.
-
Utenti IAM:
-
Crea un ruolo che l'utente possa assumere. Segui le istruzioni riportate nella pagina Create a role for an IAM user della Guida per l'utente IAM.
-
(Non consigliato) Collega una policy direttamente a un utente o aggiungi un utente a un gruppo di utenti. Segui le istruzioni riportate nella pagina Aggiunta di autorizzazioni a un utente (console) nella Guida per l'utente IAM.
-
Passaggio 3: Impostazione delle autorizzazioni su un bucket S3
Per impostazione predefinita, tutti i bucket e gli oggetti S3 sono privati. Solo il proprietario della risorsa, l'account che ha creato il bucket, può accedere al bucket e agli oggetti in esso contenuti. Tuttavia, il proprietario della risorsa può concedere le autorizzazioni di accesso ad altre risorse e ad altri utenti mediante una policy di accesso.
Importante
Per rendere più sicure le esportazioni verso i bucket S3, ora ti chiediamo di specificare l'elenco degli account di origine autorizzati a esportare i dati di log nel tuo bucket S3.
Nell'esempio seguente, l'elenco di account IDs nella aws:SourceAccount
chiave sarebbe costituito dagli account da cui un utente può esportare i dati di registro nel bucket S3. La chiave aws:SourceArn
è la risorsa per la quale viene intrapresa l'azione. Puoi limitarla a un gruppo di log specifico o utilizzare un jolly come mostrato in questo esempio.
Ti consigliamo di includere anche l'ID dell'account in cui è stato creato il bucket S3 per consentire l'esportazione all'interno dello stesso account.
Impostazione delle autorizzazioni su un bucket S3
-
Crea il file
policy.json
e aggiungi la seguente policy di accesso, modificandomy-exported-logs
con il nome del bucket S3 ePrincipal
con l'endpoint della regione di esportazione dei dati di log, comeus-west-1
. Utilizza un editor di testo per creare questo file di policy. Non utilizzare la console IAM.{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::
my-exported-logs
", "Principal": { "Service": "logs.Region
.amazonaws.com" }, "Condition": { "StringEquals": { "aws:SourceAccount": [ "AccountId1", "AccountId2", ... ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:Region
:AccountId1:log-group:*", "arn:aws:logs:Region
:AccountId2:log-group:*", ... ] } } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs
/*", "Principal": { "Service": "logs.Region
.amazonaws.com" }, "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "AccountId1", "AccountId2", ... ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:Region
:AccountId1:log-group:*", "arn:aws:logs:Region
:AccountId2:log-group:*", ... ] } } } ] } -
Imposta la politica che hai appena aggiunto come politica di accesso sul tuo bucket utilizzando il comando. put-bucket-policy Questa politica consente a CloudWatch Logs di esportare i dati di registro nel bucket S3. Il proprietario del bucket disporrà di autorizzazioni complete su tutti gli oggetti esportati.
aws s3api put-bucket-policy --bucket my-exported-logs --policy file://policy.json
avvertimento
Se al bucket esistente sono già associate una o più politiche, aggiungi le istruzioni per CloudWatch Logs access a quella o più policy. Consigliamo di valutare il set di autorizzazioni risultante per verificare che siano adeguate agli utenti che accederanno al bucket.
(Opzionale) Passaggio 4: Esportazione in un bucket crittografato con SSE-KMS
Questo passaggio è necessario solo se si esegue l'esportazione in un bucket S3 che utilizza la crittografia lato server con. AWS KMS keys Questa crittografia è nota come SSE-KMS.
Esportazione di un bucket crittografato con SSE-KMS
-
Utilizza un editor di testo per creare un file denominato
key_policy.json
e aggiungi la seguente policy di accesso. Quando aggiungi la policy della chiave, apporta le modifiche seguenti:-
Sostituisci
Region
con la regione dei tuoi log. -
Sostituisci
account-ARN
con l'ARN dell'account che possiede la chiave KMS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CWL Service Principal usage", "Effect": "Allow", "Principal": { "Service": "logs.
Region
.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "account-ARN
" }, "Action": [ "kms:GetKeyPolicy*", "kms:PutKeyPolicy*", "kms:DescribeKey*", "kms:CreateAlias*", "kms:ScheduleKeyDeletion*", "kms:Decrypt" ], "Resource": "*" } ] } -
-
Immetti il comando seguente:
aws kms create-key --policy file://key_policy.json
Di seguito è fornito un esempio dell'output di questo comando:
{ "KeyMetadata": { "AWSAccountId": "
account_id
", "KeyId": "key_id
", "Arn": "arn:aws:kms:us-east-2:account_id
:key/key_id
", "CreationDate": "time
", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } -
Utilizza un editor di testo per creare un file denominato
bucketencryption.json
con il seguente contenuto.{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{KMS Key ARN}" }, "BucketKeyEnabled": true } ] }
-
Immettete il seguente comando, sostituendolo
bucket-name
con il nome del bucket in cui state esportando i log.aws s3api put-bucket-encryption --bucket
bucket-name
--server-side-encryption-configuration file://bucketencryption.jsonSe il comando non restituisce un errore, il processo ha esito positivo.
Passaggio 5: Creazione di un'attività di esportazione
Usare il comando seguente per creare l'attività di esportazione. Dopo averla creata, potrebbero essere necessari da pochi secondi ad alcune ore per l'attività di esportazione, in base alla dimensione dei dati da esportare.
Per esportare i dati in Amazon S3 utilizzando AWS CLI
-
Accedi con le autorizzazioni sufficienti come documentato in Fase 2: configurare le autorizzazioni di accesso.
-
Al prompt dei comandi, usa il seguente create-export-taskcomando per creare l'attività di esportazione.
aws logs create-export-task --profile CWLExportUser --task-name "
my-log-group-09-10-2015
" --log-group-name "my-log-group
" --from1441490400000
--to1441494000000
--destination "my-exported-logs
" --destination-prefix "export-task-output
"Di seguito è riportato un output di esempio.
{ "taskId": "
cda45419-90ea-4db5-9833-aade86253e66
" }
Esportazione in account diversi
Se il bucket Amazon S3 si trova in un account diverso da quello dei log che vengono esportati, segui le istruzioni in questa sezione.
Argomenti
Fase 1: Creazione di un bucket S3
Si consiglia di utilizzare un bucket creato appositamente per CloudWatch i registri. Tuttavia, se intendi utilizzare un bucket esistente, puoi passare alla fase 2.
Nota
Il bucket S3 deve risiedere nella stessa regione dei dati di registro da esportare. CloudWatch I registri non supportano l'esportazione di dati in bucket S3 in una regione diversa.
Per creare un bucket S3 utilizzando il AWS CLI
Al prompt dei comandi, eseguire il seguente comando create-bucket, in cui LocationConstraint
è la regione in cui esportare i dati di log.
aws s3api create-bucket --bucket
my-exported-logs
--create-bucket-configuration LocationConstraint=us-east-2
Di seguito è riportato un output di esempio.
{ "Location": "/
my-exported-logs
" }
Fase 2: configurare le autorizzazioni di accesso
Innanzitutto, devi creare una nuova policy IAM per consentire a CloudWatch Logs di avere l's3:PutObject
autorizzazione per il bucket Amazon S3 di destinazione.
Per creare l'attività di esportazione nella fase 5, sarà necessario essersi registrati con il ruolo IAM AmazonS3ReadOnlyAccess
e altre autorizzazioni. È possibile creare una policy che contenga alcune di queste altre autorizzazioni necessarie.
La policy che crei dipende dal fatto che il bucket di destinazione utilizzi la crittografia. AWS KMS Se non utilizza la AWS KMS crittografia, crea una politica con i seguenti contenuti.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
my-exported-logs
/*" } ] }
Se il bucket di destinazione utilizza AWS KMS la crittografia, create una policy con i seguenti contenuti.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
my-exported-logs
/*" }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "ARN_OF_KMS_KEY
" } ] }
Per creare l'attività di esportazione nella fase 5, devi avere effettuato l'accesso con il ruolo IAM AmazonS3ReadOnlyAccess
, la policy IAM appena creata e anche con le seguenti autorizzazioni:
logs:CreateExportTask
logs:CancelExportTask
logs:DescribeExportTasks
logs:DescribeLogStreams
logs:DescribeLogGroups
Per fornire l'accesso, aggiungi autorizzazioni agli utenti, gruppi o ruoli:
-
Utenti e gruppi in AWS IAM Identity Center:
Crea un set di autorizzazioni. Segui le istruzioni riportate nella pagina Create a permission set (Creazione di un set di autorizzazioni) nella Guida per l'utente di AWS IAM Identity Center .
-
Utenti gestiti in IAM tramite un provider di identità:
Crea un ruolo per la federazione delle identità. Segui le istruzioni riportate nella pagina Create a role for a third-party identity provider (federation) della Guida per l'utente IAM.
-
Utenti IAM:
-
Crea un ruolo che l'utente possa assumere. Segui le istruzioni riportate nella pagina Create a role for an IAM user della Guida per l'utente IAM.
-
(Non consigliato) Collega una policy direttamente a un utente o aggiungi un utente a un gruppo di utenti. Segui le istruzioni riportate nella pagina Aggiunta di autorizzazioni a un utente (console) nella Guida per l'utente IAM.
-
Passaggio 3: Impostazione delle autorizzazioni su un bucket S3
Per impostazione predefinita, tutti i bucket e gli oggetti S3 sono privati. Solo il proprietario della risorsa, l'account che ha creato il bucket, può accedere al bucket e agli oggetti in esso contenuti. Tuttavia, il proprietario della risorsa può concedere le autorizzazioni di accesso ad altre risorse e ad altri utenti mediante una policy di accesso.
Importante
Per rendere più sicure le esportazioni verso i bucket S3, ora ti chiediamo di specificare l'elenco degli account di origine autorizzati a esportare i dati di log nel tuo bucket S3.
Nell'esempio seguente, l'elenco di account IDs nella aws:SourceAccount
chiave sarebbe costituito dagli account da cui un utente può esportare i dati di registro nel bucket S3. La chiave aws:SourceArn
è la risorsa per la quale viene intrapresa l'azione. Puoi limitarla a un gruppo di log specifico o utilizzare un jolly come mostrato in questo esempio.
Ti consigliamo di includere anche l'ID dell'account in cui è stato creato il bucket S3 per consentire l'esportazione all'interno dello stesso account.
Impostazione delle autorizzazioni su un bucket S3
-
Crea il file
policy.json
e aggiungi la seguente policy di accesso, modificandomy-exported-logs
con il nome del bucket S3 ePrincipal
con l'endpoint della regione di esportazione dei dati di log, comeus-west-1
. Utilizza un editor di testo per creare questo file di policy. Non utilizzare la console IAM.{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::
my-exported-logs
", "Principal": { "Service": "logs.Region
.amazonaws.com" }, "Condition": { "StringEquals": { "aws:SourceAccount": [ "AccountId1", "AccountId2", ... ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:Region
:AccountId1:log-group:*", "arn:aws:logs:Region
:AccountId2:log-group:*", ... ] } } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs
/*", "Principal": { "Service": "logs.Region
.amazonaws.com" }, "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "AccountId1", "AccountId2", ... ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:Region
:AccountId1:log-group:*", "arn:aws:logs:Region
:AccountId2:log-group:*", ... ] } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::create_export_task_caller_account
:role/role_name
" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-exported-logs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] } -
Imposta la politica che hai appena aggiunto come politica di accesso sul tuo bucket utilizzando il comando. put-bucket-policy Questa politica consente a CloudWatch Logs di esportare i dati di registro nel bucket S3. Il proprietario del bucket disporrà di autorizzazioni complete su tutti gli oggetti esportati.
aws s3api put-bucket-policy --bucket my-exported-logs --policy file://policy.json
avvertimento
Se al bucket esistente sono già associate una o più politiche, aggiungi le istruzioni per CloudWatch Logs access a quella o più policy. Consigliamo di valutare il set di autorizzazioni risultante per verificare che siano adeguate agli utenti che accederanno al bucket.
(Opzionale) Passaggio 4: Esportazione in un bucket crittografato con SSE-KMS
Questo passaggio è necessario solo se si esegue l'esportazione in un bucket S3 che utilizza la crittografia lato server con. AWS KMS keys Questa crittografia è nota come SSE-KMS.
Esportazione di un bucket crittografato con SSE-KMS
-
Utilizza un editor di testo per creare un file denominato
key_policy.json
e aggiungi la seguente policy di accesso. Quando aggiungi la policy della chiave, apporta le modifiche seguenti:-
Sostituisci
Region
con la regione dei tuoi log. -
Sostituisci
account-ARN
con l'ARN dell'account che possiede la chiave KMS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CWL Service Principal usage", "Effect": "Allow", "Principal": { "Service": "logs.
Region
.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "account-ARN
" }, "Action": [ "kms:GetKeyPolicy*", "kms:PutKeyPolicy*", "kms:DescribeKey*", "kms:CreateAlias*", "kms:ScheduleKeyDeletion*", "kms:Decrypt" ], "Resource": "*" }, { "Sid": "Enable IAM Role Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::create_export_task_caller_account
:role/role_name
" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "ARN_OF_KMS_KEY
" } ] } -
-
Immetti il comando seguente:
aws kms create-key --policy file://key_policy.json
Di seguito è fornito un esempio dell'output di questo comando:
{ "KeyMetadata": { "AWSAccountId": "
account_id
", "KeyId": "key_id
", "Arn": "arn:aws:kms:us-east-2:account_id
:key/key_id
", "CreationDate": "time
", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } -
Utilizza un editor di testo per creare un file denominato
bucketencryption.json
con il seguente contenuto.{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{KMS Key ARN}" }, "BucketKeyEnabled": true } ] }
-
Immettete il seguente comando, sostituendolo
bucket-name
con il nome del bucket in cui state esportando i log.aws s3api put-bucket-encryption --bucket
bucket-name
--server-side-encryption-configuration file://bucketencryption.jsonSe il comando non restituisce un errore, il processo ha esito positivo.
Passaggio 5: Creazione di un'attività di esportazione
Usare il comando seguente per creare l'attività di esportazione. Dopo averla creata, potrebbero essere necessari da pochi secondi ad alcune ore per l'attività di esportazione, in base alla dimensione dei dati da esportare.
Per esportare i dati in Amazon S3 utilizzando AWS CLI
-
Accedi con le autorizzazioni sufficienti come documentato in Fase 2: configurare le autorizzazioni di accesso.
-
Al prompt dei comandi, usa il seguente create-export-taskcomando per creare l'attività di esportazione.
aws logs create-export-task --profile CWLExportUser --task-name "
my-log-group-09-10-2015
" --log-group-name "my-log-group
" --from1441490400000
--to1441494000000
--destination "my-exported-logs
" --destination-prefix "export-task-output
"Di seguito è riportato un output di esempio.
{ "taskId": "
cda45419-90ea-4db5-9833-aade86253e66
" }