Exemplos do Shield usando a AWS CLI
Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando a AWS Command Line Interface com o Shield.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.
Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.
Tópicos
Ações
O código de exemplo a seguir mostra como usar associate-drt-log-bucket.
- AWS CLI
-
Como autorizar a DRT a acessar o bucket do Amazon S3
O exemplo
associate-drt-log-bucketa seguir cria uma associação entre o DRT e o bucket do S3 especificado. Isso permite que a DRT acesse o bucket em nome da conta:aws shield associate-drt-log-bucket \ --log-bucketflow-logs-for-website-lbEste comando não produz saída.
Para obter mais informações, consulte Autorizar a equipe de resposta a DDoS no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte AssociateDrtLogBucket
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar associate-drt-role.
- AWS CLI
-
Como autorizar a DRT a atenuar ataques em potencial em seu nome
O exemplo
associate-drt-rolea seguir cria uma associação entre o DRT e a função especificada. A DRT pode usar a função para acessar e gerenciar a conta.aws shield associate-drt-role \ --role-arnarn:aws:iam::123456789012:role/service-role/DrtRoleEste comando não produz saída.
Para obter mais informações, consulte Autorizar a equipe de resposta a DDoS no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte AssociateDrtRole
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-protection.
- AWS CLI
-
Para habilitar a proteção do AWS Shield Avançado para um único recurso da AWS
O exemplo
create-protectiona seguir ativa a proteção Shield Avançado para a distribuição especificada do AWS CloudFront.aws shield create-protection \ --name"Protection for CloudFront distribution"\ --resource-arnarn:aws:cloudfront::123456789012:distribution/E198WC25FXOWY8Saída:
{ "ProtectionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }Para obter mais informações, consulte Especificar os recursos a serem protegidos no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte CreateProtection
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-subscription.
- AWS CLI
-
Como ativar a proteção do AWS Shield Avançado para uma conta
O exemplo
create-subscriptiona seguir ativa a proteção Shield Avançado para a conta.aws shield create-subscriptionEste comando não produz saída.
Para obter mais informações, consulte Introdução ao AWS Shield Avançado no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte CreateSubscription
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar delete-protection.
- AWS CLI
-
Para remover a proteção do AWS Shield Avançado de um recurso da AWS
O exemplo
delete-protectiona seguir remove a proteção do AWS Shield Avançado especificada.aws shield delete-protection \ --protection-ida1b2c3d4-5678-90ab-cdef-EXAMPLE11111Este comando não produz saída.
Para obter mais informações, consulte Remover o AWS Shield Avançado de um recurso da AWS no Guia do desenvolvedor doAWS Shield Avançado.
-
Para ver detalhes da API, consulte DeleteProtection
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-attack.
- AWS CLI
-
Para recuperar uma descrição detalhada de um ataque
O exemplo
describe-attacka seguir exibe detalhes sobre o ataque DDoS com o ID de ataque especificado. Você pode obter IDs de ataque executando o comandolist-attacks.aws shield describe-attack --attack-ida1b2c3d4-5678-90ab-cdef-EXAMPLE22222Saída:
{ "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": [] } }Para obter mais informações, consulte Revisão de incidentes de DDoS no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte DescribeAttack
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-drt-access.
- AWS CLI
-
Para recuperar uma descrição das autorizações que a DRT tem para mitigar ataques em seu nome
O exemplo
describe-drt-accessa seguir recupera a função e as autorizações de bucket do S3 que a DRT tem, o que permite que ela responda a possíveis ataques em seu nome.aws shield describe-drt-accessSaída:
{ "RoleArn": "arn:aws:iam::123456789012:role/service-role/DrtRole", "LogBucketList": [ "flow-logs-for-website-lb" ] }Para obter mais informações, consulte Autorizar a equipe de resposta a DDoS no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte DescribeDrtAccess
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-emergency-contact-settings.
- AWS CLI
-
Para recuperar endereços de e-mail de emergência que você tem registrados na DRT
O exemplo
describe-emergency-contact-settingsa seguir recupera os endereços de e-mail que estão registrados na DRT da conta. Esses são os endereços com que a DRT deve entrar em contato ao responder a um ataque suspeito.aws shield describe-emergency-contact-settingsSaída:
{ "EmergencyContactList": [ { "EmailAddress": "ops@example.com" }, { "EmailAddress": "ddos-notifications@example.com" } ] }Para obter mais informações, consulte Como o AWS Shield funciona<https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html> no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte DescribeEmergencyContactSettings
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-protection.
- AWS CLI
-
Para recuperar os detalhes de uma proteção do AWS Shield Avançado
O exemplo
describe-protectiona seguir exibe detalhes sobre a proteção Shield Avançado com o ID especificado. Você pode obter IDs de proteção executando o comandolist-protections.aws shield describe-protection \ --protection-ida1b2c3d4-5678-90ab-cdef-EXAMPLE11111Saída:
{ "Protection": { "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Name": "1.2.3.4", "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:eip-allocation/eipalloc-0ac1537af40742a6d" } }Para obter mais informações, consulte Especificar os recursos a serem protegidos no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte DescribeProtection
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar describe-subscription.
- AWS CLI
-
Para recuperar os detalhes da proteção do AWS Shield Avançado para a conta
O exemplo
describe-subscriptiona seguir exibe detalhes sobre a proteção Shield Avançado fornecida para a conta:aws shield describe-subscriptionSaída:
{ "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 } ] } }Para obter mais informações, consulte Como o AWS Shield funciona no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte DescribeSubscription
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar disassociate-drt-log-bucket.
- AWS CLI
-
Para remover a autorização da DRT para acessar um bucket do Amazon S3 em seu nome
O exemplo
disassociate-drt-log-bucketa seguir remove a associação entre a DRT e o bucket do S3 especificado. Após a conclusão desse comando, a DRT não poderá mais acessar o bucket em nome da conta.aws shield disassociate-drt-log-bucket \ --log-bucketflow-logs-for-website-lbEste comando não produz saída.
Para obter mais informações, consulte Autorizar a equipe de resposta a DDoS no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte DisassociateDrtLogBucket
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar disassociate-drt-role.
- AWS CLI
-
Para remover a autorização da DRT para atenuar ataques em potencial em seu nome
O exemplo
disassociate-drt-rolea seguir remove a associação entre a DRT e a conta. Após essa chamada, a DRT não poderá mais acessar ou gerenciar sua conta.aws shield disassociate-drt-roleEste comando não produz saída.
Para obter mais informações, consulte Autorizar a equipe de resposta a DDoS no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte DisassociateDrtRole
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar get-subscription-state.
- AWS CLI
-
Para recuperar o estado atual da assinatura do AWS Shield Avançado da conta
O exemplo
get-subscription-statea seguir recupera o estado da proteção Shield Avançado da conta.aws shield get-subscription-stateSaída:
{ "SubscriptionState": "ACTIVE" }Para obter mais informações, consulte Como o AWS Shield funciona no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte GetSubscriptionState
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-attacks.
- AWS CLI
-
Para recuperar resumos de ataques do AWS Shield Avançado
O exemplo
list-attacksa seguir recupera resumos dos ataques para a distribuição especificada do AWS CloudFront durante o período de tempo especificado. A resposta inclui IDs de ataque que você pode fornecer ao comandodescribe-attackpara obter informações detalhadas sobre um ataque.aws shield list-attacks \ --resource-arnsarn:aws:cloudfront::12345678910:distribution/E1PXMP22ZVFAOR\ --start-timeFromInclusive=1529280000,ToExclusive=1529300000Saída:
{ "AttackSummaries": [ { "AttackId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "ResourceArn": "arn:aws:cloudfront::123456789012:distribution/E1PXMP22ZVFAOR", "StartTime": 1529280000.0, "EndTime": 1529449200.0, "AttackVectors": [ { "VectorType": "SYN_FLOOD" } ] } ] }Para obter mais informações, consulte Revisão de incidentes de DDoS no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte ListAttacks
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-protections.
- AWS CLI
-
Para recuperar resumos de proteção do AWS Shield Avançado
O exemplo
list-protectionsa seguir recupera resumos das proteções que estão habilitadas para a conta.aws shield list-protectionsSaída:
{ "Protections": [ { "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Name": "Protection for CloudFront distribution", "ResourceArn": "arn:aws:cloudfront::123456789012:distribution/E198WC25FXOWY8" } ] }Para obter mais informações, consulte Especificar os recursos a serem protegidos no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte ListProtections
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-emergency-contact-settings.
- AWS CLI
-
Como definir os endereços de e-mail de emergência que estão registrados na DRT
O exemplo
update-emergency-contact-settingsa seguir define dois endereços de e-mail que a DRT deve contatar ao responder a um ataque suspeito.aws shield update-emergency-contact-settings \ --emergency-contact-listEmailAddress=ops@example.comEmailAddress=ddos-notifications@example.comEste comando não produz saída.
Para obter mais informações, consulte Como o AWS Shield funciona no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte UpdateEmergencyContactSettings
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-subscription.
- AWS CLI
-
Para modificar a assinatura do AWS Shield Avançado da conta
O exemplo
update-subscriptiona seguir permite a renovação automática da assinatura do AWS Shield Avançado para a conta.aws shield update-subscription \ --auto-renewENABLEDEste comando não produz saída.
Para obter mais informações, consulte Como o AWS Shield funciona no Guia do desenvolvedor do AWS Shield Avançado.
-
Para ver detalhes da API, consulte UpdateSubscription
na Referência de comandos da AWS CLI.
-