Esempi per Shield con AWS CLI
Gli esempi di codice seguenti mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Command Line Interface con Shield.
Le operazioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le operazioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.
Ogni esempio include un link al codice sorgente completo, dove è possibile trovare le istruzioni su come configurare ed eseguire il codice nel contesto.
Argomenti
Operazioni
L’esempio di codice seguente mostra come utilizzare associate-drt-log-bucket.
- AWS CLI
-
Come autorizzare il DRT ad accedere a un bucket Amazon S3
L’esempio
associate-drt-log-bucketseguente crea un’associazione tra il DRT e il bucket S3 specificato. Ciò consente al DRT di accedere al bucket per conto dell’account.:aws shield associate-drt-log-bucket \ --log-bucketflow-logs-for-website-lbQuesto comando non produce alcun output.
Per ulteriori informazioni, consulta Authorize the DDoS Response Team nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta AssociateDrtLogBucket
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare associate-drt-role.
- AWS CLI
-
Come autorizzare il DRT a mitigare gli attacchi potenziali per conto dell’utente
L’esempio
associate-drt-roleseguente crea un’associazione tra il DRT e il ruolo specificato. Il DRT può utilizzare il ruolo per accedere e gestire l’account.aws shield associate-drt-role \ --role-arnarn:aws:iam::123456789012:role/service-role/DrtRoleQuesto comando non produce alcun output.
Per ulteriori informazioni, consulta Authorize the DDoS Response Team nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta AssociateDrtRole
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare create-protection.
- AWS CLI
-
Come abilitare la protezione AWS Shield Advanced per una singola risorsa AWS
L’esempio
create-protectionseguente abilita la protezione Shield Advanced per la distribuzione AWS CloudFront specificata.aws shield create-protection \ --name"Protection for CloudFront distribution"\ --resource-arnarn:aws:cloudfront::123456789012:distribution/E198WC25FXOWY8Output:
{ "ProtectionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }Per ulteriori informazioni, consulta Specify Your Resources to Protect nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta CreateProtection
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare create-subscription.
- AWS CLI
-
Come abilitare la protezione AWS Shield Advanced per un account
L’esempio
create-subscriptionseguente abilita la protezione Shield Advanced per l’account.aws shield create-subscriptionQuesto comando non produce alcun output.
Per ulteriori informazioni, consulta Getting Started with AWS Shield Advanced nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta CreateSubscription
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare delete-protection.
- AWS CLI
-
Come rimuovere la protezione AWS Shield Advanced da una risorsa AWS
L’esempio
delete-protectionseguente rimuove la protezione AWS Shield Advanced specificata.aws shield delete-protection \ --protection-ida1b2c3d4-5678-90ab-cdef-EXAMPLE11111Questo comando non produce alcun output.
Per ulteriori informazioni, consulta Removing AWS Shield Advanced from an AWS Resource nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta DeleteProtection
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare describe-attack.
- AWS CLI
-
Come recuperare una descrizione dettagliata di un attacco
Nell’esempio seguente
describe-attackmostra i dettagli sull’attacco DDoS con l’ID di attacco specificato. È possibile ottenere gli ID di attacco eseguendo il comandolist-attacks.aws shield describe-attack --attack-ida1b2c3d4-5678-90ab-cdef-EXAMPLE22222Output:
{ "Attack": { "AttackId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "ResourceArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/testElb", "SubResources": [ { "Type": "IP", "Id": "192.0.2.2", "AttackVectors": [ { "VectorType": "SYN_FLOOD", "VectorCounters": [ { "Name": "SYN_FLOOD_BPS", "Max": 982184.0, "Average": 982184.0, "Sum": 11786208.0, "N": 12, "Unit": "BPS" } ] } ], "Counters": [] }, { "Type": "IP", "Id": "192.0.2.3", "AttackVectors": [ { "VectorType": "SYN_FLOOD", "VectorCounters": [ { "Name": "SYN_FLOOD_BPS", "Max": 982184.0, "Average": 982184.0, "Sum": 9821840.0, "N": 10, "Unit": "BPS" } ] } ], "Counters": [] }, { "Type": "IP", "Id": "192.0.2.4", "AttackVectors": [ { "VectorType": "SYN_FLOOD", "VectorCounters": [ { "Name": "SYN_FLOOD_BPS", "Max": 982184.0, "Average": 982184.0, "Sum": 7857472.0, "N": 8, "Unit": "BPS" } ] } ], "Counters": [] }, { "Type": "IP", "Id": "192.0.2.5", "AttackVectors": [ { "VectorType": "SYN_FLOOD", "VectorCounters": [ { "Name": "SYN_FLOOD_BPS", "Max": 982184.0, "Average": 982184.0, "Sum": 1964368.0, "N": 2, "Unit": "BPS" } ] } ], "Counters": [] }, { "Type": "IP", "Id": "2001:DB8::bcde:4321:8765:0:0", "AttackVectors": [ { "VectorType": "SYN_FLOOD", "VectorCounters": [ { "Name": "SYN_FLOOD_BPS", "Max": 982184.0, "Average": 982184.0, "Sum": 1964368.0, "N": 2, "Unit": "BPS" } ] } ], "Counters": [] }, { "Type": "IP", "Id": "192.0.2.6", "AttackVectors": [ { "VectorType": "SYN_FLOOD", "VectorCounters": [ { "Name": "SYN_FLOOD_BPS", "Max": 982184.0, "Average": 982184.0, "Sum": 1964368.0, "N": 2, "Unit": "BPS" } ] } ], "Counters": [] } ], "StartTime": 1576024927.457, "EndTime": 1576025647.457, "AttackCounters": [], "AttackProperties": [ { "AttackLayer": "NETWORK", "AttackPropertyIdentifier": "SOURCE_IP_ADDRESS", "TopContributors": [ { "Name": "198.51.100.5", "Value": 2024475682 }, { "Name": "198.51.100.8", "Value": 1311380863 }, { "Name": "203.0.113.4", "Value": 900599855 }, { "Name": "198.51.100.4", "Value": 769417366 }, { "Name": "203.1.113.13", "Value": 757992847 } ], "Unit": "BYTES", "Total": 92773354841 }, { "AttackLayer": "NETWORK", "AttackPropertyIdentifier": "SOURCE_COUNTRY", "TopContributors": [ { "Name": "United States", "Value": 80938161764 }, { "Name": "Brazil", "Value": 9929864330 }, { "Name": "Netherlands", "Value": 1635009446 }, { "Name": "Mexico", "Value": 144832971 }, { "Name": "Japan", "Value": 45369000 } ], "Unit": "BYTES", "Total": 92773354841 }, { "AttackLayer": "NETWORK", "AttackPropertyIdentifier": "SOURCE_ASN", "TopContributors": [ { "Name": "12345", "Value": 74953625841 }, { "Name": "12346", "Value": 4440087595 }, { "Name": "12347", "Value": 1635009446 }, { "Name": "12348", "Value": 1221230000 }, { "Name": "12349", "Value": 1199425294 } ], "Unit": "BYTES", "Total": 92755479921 } ], "Mitigations": [] } }Per ulteriori informazioni, consulta Reviewing DDoS Incidents nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta DescribeAttack
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare describe-drt-access.
- AWS CLI
-
Come recuperare una descrizione delle autorizzazioni, il DRT deve mitigare gli attacchi per tuo conto
L’esempio
describe-drt-accessseguente recupera le autorizzazioni relative al ruolo e al bucket S3 di cui dispone il DRT, che gli consentono di rispondere a potenziali attacchi per tuo conto.aws shield describe-drt-accessOutput:
{ "RoleArn": "arn:aws:iam::123456789012:role/service-role/DrtRole", "LogBucketList": [ "flow-logs-for-website-lb" ] }Per ulteriori informazioni, consulta Authorize the DDoS Response Team nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta DescribeDrtAccess
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare describe-emergency-contact-settings.
- AWS CLI
-
Come recuperare gli indirizzi e-mail di emergenza archiviati presso il DRT
L’esempio
describe-emergency-contact-settingsseguente recupera gli indirizzi e-mail archiviati nel DRT per l’account. Questi sono gli indirizzi che il DRT deve contattare quando risponde a un attacco sospetto.aws shield describe-emergency-contact-settingsOutput:
{ "EmergencyContactList": [ { "EmailAddress": "ops@example.com" }, { "EmailAddress": "ddos-notifications@example.com" } ] }Per ulteriori informazioni, consulta How AWS Shield Works<https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html> nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta DescribeEmergencyContactSettings
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare describe-protection.
- AWS CLI
-
Come recuperare i dettagli per una protezione AWS Shield Advanced
nell’esempio seguente
describe-protectionvisualizza i dettagli sulla protezione Shield Advanced con l’ID specificato. È possibile ottenere gli ID di protezione eseguendo il comandolist-protections.aws shield describe-protection \ --protection-ida1b2c3d4-5678-90ab-cdef-EXAMPLE11111Output:
{ "Protection": { "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Name": "1.2.3.4", "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:eip-allocation/eipalloc-0ac1537af40742a6d" } }Per ulteriori informazioni, consulta Specify Your Resources to Protect nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta DescribeProtection
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare describe-subscription.
- AWS CLI
-
Come recuperare i dettagli della protezione AWS Shield Advanced per l’account
L’esempio
describe-subscriptionseguente mostra i dettagli sulla protezione Shield Advanced fornita per l’account.:aws shield describe-subscriptionOutput:
{ "Subscription": { "StartTime": 1534368978.0, "EndTime": 1597613778.0, "TimeCommitmentInSeconds": 63244800, "AutoRenew": "ENABLED", "Limits": [ { "Type": "GLOBAL_ACCELERATOR", "Max": 1000 }, { "Type": "ROUTE53_HOSTED_ZONE", "Max": 1000 }, { "Type": "CF_DISTRIBUTION", "Max": 1000 }, { "Type": "ELB_LOAD_BALANCER", "Max": 1000 }, { "Type": "EC2_ELASTIC_IP_ALLOCATION", "Max": 1000 } ] } }Per ulteriori informazioni, consulta How AWS Shield Works nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta DescribeSubscription
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare disassociate-drt-log-bucket.
- AWS CLI
-
Come rimuovere l’autorizzazione a DRT ad accedere a un bucket Amazon S3 per tuo conto
L’esempio
disassociate-drt-log-bucketseguente rimuove l’associazione tra il DRT e il bucket S3 specificato. Una volta completato questo comando, il DRT non può più accedere al bucket per conto dell’account.aws shield disassociate-drt-log-bucket \ --log-bucketflow-logs-for-website-lbQuesto comando non produce alcun output.
Per ulteriori informazioni, consulta Authorize the DDoS Response Team nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta DisassociateDrtLogBucket
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare disassociate-drt-role.
- AWS CLI
-
Come rimuovere l’autorizzazione al DRT per mitigare gli attacchi potenziali per tuo conto
Nell’esempio seguente
disassociate-drt-rolerimuove l’associazione tra il DRT e l’account. Dopo questa chiamata, il DRT non può più accedere o gestire l’account.aws shield disassociate-drt-roleQuesto comando non produce alcun output.
Per ulteriori informazioni, consulta Authorize the DDoS Response Team nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta DisassociateDrtRole
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare get-subscription-state.
- AWS CLI
-
Come recuperare lo stato attuale dell’abbonamento AWS Shield Advanced dell’account
L’esempio
get-subscription-stateseguente recupera lo stato della protezione Shield Advanced per l’account.aws shield get-subscription-stateOutput:
{ "SubscriptionState": "ACTIVE" }Per ulteriori informazioni, consulta How AWS Shield Works nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta GetSubscriptionState
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare list-attacks.
- AWS CLI
-
Come recuperare i riepiloghi degli attacchi da AWS Shield Advanced
L’esempio
list-attacksseguente recupera i riepiloghi degli attacchi per la distribuzione AWS CloudFront specificata durante il periodo di tempo specificato. La risposta include gli ID di attacco che è possibile fornire al comandodescribe-attackper ottenere informazioni dettagliate su un attacco.aws shield list-attacks \ --resource-arnsarn:aws:cloudfront::12345678910:distribution/E1PXMP22ZVFAOR\ --start-timeFromInclusive=1529280000,ToExclusive=1529300000Output:
{ "AttackSummaries": [ { "AttackId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "ResourceArn": "arn:aws:cloudfront::123456789012:distribution/E1PXMP22ZVFAOR", "StartTime": 1529280000.0, "EndTime": 1529449200.0, "AttackVectors": [ { "VectorType": "SYN_FLOOD" } ] } ] }Per ulteriori informazioni, consulta Reviewing DDoS Incidents nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta ListAttacks
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare list-protections.
- AWS CLI
-
Come recuperare i riepiloghi della protezione da AWS Shield Advanced
L’esempio
list-protectionsseguente recupera i riepiloghi delle protezioni abilitate per l’account.aws shield list-protectionsOutput:
{ "Protections": [ { "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Name": "Protection for CloudFront distribution", "ResourceArn": "arn:aws:cloudfront::123456789012:distribution/E198WC25FXOWY8" } ] }Per ulteriori informazioni, consulta Specify Your Resources to Protect nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta ListProtections
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare update-emergency-contact-settings.
- AWS CLI
-
Come definire gli indirizzi e-mail di emergenza archiviati presso il DRT
L’esempio
update-emergency-contact-settingsseguente definisce due indirizzi e-mail che il DRT deve contattare quando risponde a un attacco sospetto.aws shield update-emergency-contact-settings \ --emergency-contact-listEmailAddress=ops@example.comEmailAddress=ddos-notifications@example.comQuesto comando non produce alcun output.
Per ulteriori informazioni, consulta How AWS Shield Works nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta UpdateEmergencyContactSettings
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare update-subscription.
- AWS CLI
-
Come modificare l’abbonamento AWS Shield Advanced dell’account
L’esempio
update-subscriptionseguente abilita il rinnovo automatico dell’abbonamento AWS Shield Advanced per l’account.aws shield update-subscription \ --auto-renewENABLEDQuesto comando non produce alcun output.
Per ulteriori informazioni, consulta How AWS Shield Works nella Guida per sviluppatori di AWS Shield Advanced.
-
Per informazioni dettagliate sull’API, consulta UpdateSubscription
in AWS CLI Command Reference.
-