Beispiele für die Verwendung von Shield mit AWS CLI - AWS Command Line Interface

Beispiele für die Verwendung von Shield mit AWS CLI

Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie AWS Command Line Interface mit Shield nutzen.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt, wie associate-drt-log-bucket verwendet wird.

AWS CLI

So autorisieren Sie das DRT für den Zugriff auf einen Amazon-S3-Bucket

Im folgenden Beispiel für associate-drt-log-bucket wird eine Zuordnung zwischen dem DRT und dem angegebenen S3-Bucket erstellt. Dadurch kann das DRT im Namen des Kontos auf den Bucket zugreifen:

aws shield associate-drt-log-bucket \ --log-bucket flow-logs-for-website-lb

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Autorisieren des DDoS-Reaktionsteams im Entwicklerhandbuch zu AWS Shield Advanced.

Das folgende Codebeispiel zeigt, wie associate-drt-role verwendet wird.

AWS CLI

So autorisieren Sie das DRT, in Ihrem Namen mögliche Angriffe abzuwehren

Im folgenden Beispiel für associate-drt-role wird eine Zuordnung zwischen dem DRT und der angegebenen Rolle erstellt. Das DRT kann die Rolle verwenden, um auf das Konto zuzugreifen und es zu verwalten.

aws shield associate-drt-role \ --role-arn arn:aws:iam::123456789012:role/service-role/DrtRole

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Autorisieren des DDoS-Reaktionsteams im Entwicklerhandbuch zu AWS Shield Advanced.

Das folgende Codebeispiel zeigt, wie create-protection verwendet wird.

AWS CLI

So aktivieren Sie den AWS-Shield-Advanced-Schutz für eine einzelne AWS-Ressource

Im folgenden Beispiel für create-protection wird Shield Advanced-Schutz für die angegebene AWS-CloudFront-Distribution aktiviert.

aws shield create-protection \ --name "Protection for CloudFront distribution" \ --resource-arn arn:aws:cloudfront::123456789012:distribution/E198WC25FXOWY8

Ausgabe:

{ "ProtectionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

Weitere Informationen finden Sie unter Angeben Ihrer zu schützenden Ressourcen im Entwicklerhandbuch zu AWS-Shield Advanced.

Das folgende Codebeispiel zeigt, wie create-subscription verwendet wird.

AWS CLI

So aktivieren Sie den AWS-Shield-Advanced-Schutz für ein Konto

Im folgenden Beispiel für create-subscription wird der Shield Advanced-Schutz für das Konto aktiviert.

aws shield create-subscription

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Erste Schritte mit AWS-Shield Advanced im Entwicklerhandbuch zu AWS-Shield Advanced.

Das folgende Codebeispiel zeigt, wie delete-protection verwendet wird.

AWS CLI

So entfernen Sie den AWS-Shield-Advanced-Schutz von einer AWS-Ressource

Im folgenden Beispiel für delete-protection wird der angegebene AWS-Shield-Advanced-Schutz entfernt.

aws shield delete-protection \ --protection-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Entfernen von AWS-Shield Advanced aus einer AWS-Ressource im Entwicklerhandbuch zu AWS-Shield Advanced.

Das folgende Codebeispiel zeigt, wie describe-attack verwendet wird.

AWS CLI

So rufen Sie eine detaillierte Beschreibung eines Angriffs ab

Im folgenden Beispiel für describe-attack werden die Details des DDoS-Angriffs mit der entsprechenden Angriffs-ID angezeigt. Sie können Angriffs-IDs abrufen, indem Sie den list-attacks-Befehl ausführen.

aws shield describe-attack --attack-id a1b2c3d4-5678-90ab-cdef-EXAMPLE22222

Ausgabe:

{ "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": [] } }

Weitere Informationen finden Sie unter Überprüfen von DDoS-Vorfällen im Entwicklerhandbuch zu AWS-Shield Advanced.

  • API-Details finden Sie unter DescribeAttack in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie describe-drt-access verwendet wird.

AWS CLI

So rufen Sie eine Beschreibung der Autorisierungen des DRT ab, um Angriffe in Ihrem Namen abzuwehren

Im folgenden Beispiel für describe-drt-access werden die Rollen- und S3 Bucket-Autorisierungen des DRT abgerufen, sodass es in Ihrem Namen auf potenzielle Angriffe reagieren kann.

aws shield describe-drt-access

Ausgabe:

{ "RoleArn": "arn:aws:iam::123456789012:role/service-role/DrtRole", "LogBucketList": [ "flow-logs-for-website-lb" ] }

Weitere Informationen finden Sie unter Autorisieren des DDoS-Reaktionsteams im Entwicklerhandbuch zu AWS Shield Advanced.

Das folgende Codebeispiel zeigt, wie describe-emergency-contact-settings verwendet wird.

AWS CLI

So rufen Sie Notfall-E-Mail-Adressen ab, die Sie beim DRT gespeichert haben

Im folgenden Beispiel für describe-emergency-contact-settings werden die E-Mail-Adressen abgerufen, die beim DRT für das Konto gespeichert sind. Dies sind die Adressen, an die sich DRT wenden sollte, wenn es auf einen vermuteten Angriff reagiert.

aws shield describe-emergency-contact-settings

Ausgabe:

{ "EmergencyContactList": [ { "EmailAddress": "ops@example.com" }, { "EmailAddress": "ddos-notifications@example.com" } ] }

Weitere Informationen finden Sie unter So funktioniert AWS-Shield<https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html> im Entwicklerhandbuch zu AWS-Shield Advanced.

Das folgende Codebeispiel zeigt, wie describe-protection verwendet wird.

AWS CLI

So rufen Sie die Details für einen AWS-Shield-Advanced-Schutz ab

Im folgenden Beispiel für describe-protection werden Details zum Shield Advanced-Schutz mit der angegebenen ID angezeigt. Sie können Schutz-IDs abrufen, indem Sie den list-protections-Befehl ausführen.

aws shield describe-protection \ --protection-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Ausgabe:

{ "Protection": { "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Name": "1.2.3.4", "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:eip-allocation/eipalloc-0ac1537af40742a6d" } }

Weitere Informationen finden Sie unter Angeben Ihrer zu schützenden Ressourcen im Entwicklerhandbuch zu AWS-Shield Advanced.

Das folgende Codebeispiel zeigt, wie describe-subscription verwendet wird.

AWS CLI

So rufen Sie die Details des AWS-Shield-Advanced-Schutzes für das Konto ab

Das folgende Beispiel für describe-subscription zeigt Details zum Shield Advanced-Schutz, der für das Konto bereitgestellt wurde:

aws shield describe-subscription

Ausgabe:

{ "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 } ] } }

Weitere Informationen finden Sie unter Funktionsweise von AWS Shield im Entwicklerhandbuch zu AWS Shield Advanced.

Das folgende Codebeispiel zeigt, wie disassociate-drt-log-bucket verwendet wird.

AWS CLI

So entfernen Sie die DRT-Autorisierung für den Zugriff auf einen Amazon-S3-Bucket in Ihrem Namen

Im folgenden Beispiel für disassociate-drt-log-bucket wird die Zuordnung zwischen DRT und dem angegebenen S3-Bucket aufgehoben. Nach Ausführung dieses Befehls kann DRT nicht mehr im Namen des Kontos auf den Bucket zugreifen.

aws shield disassociate-drt-log-bucket \ --log-bucket flow-logs-for-website-lb

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Autorisieren des DDoS-Reaktionsteams im Entwicklerhandbuch zu AWS Shield Advanced.

Das folgende Codebeispiel zeigt, wie disassociate-drt-role verwendet wird.

AWS CLI

So entfernen Sie die Autorisierung des DRT, in Ihrem Namen mögliche Angriffe abzuwehren

Im folgenden Beispiel für disassociate-drt-role wird die Zuordnung zwischen dem DRT und dem Konto entfernt. Nach diesem Aufruf kann das DRT nicht mehr auf Ihr Konto zugreifen oder es verwalten.

aws shield disassociate-drt-role

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Autorisieren des DDoS-Reaktionsteams im Entwicklerhandbuch zu AWS Shield Advanced.

Das folgende Codebeispiel zeigt, wie get-subscription-state verwendet wird.

AWS CLI

So rufen Sie den aktuellen Status des AWS-Shield-Advanced-Abonnements des Kontos ab

Im folgenden Beispiel für get-subscription-state wird der Status des Shield Advanced-Schutzes für das Konto abgerufen.

aws shield get-subscription-state

Ausgabe:

{ "SubscriptionState": "ACTIVE" }

Weitere Informationen finden Sie unter Funktionsweise von AWS Shield im Entwicklerhandbuch zu AWS Shield Advanced.

Das folgende Codebeispiel zeigt, wie list-attacks verwendet wird.

AWS CLI

So rufen Sie Angriffszusammenfassungen von AWS-Shield Advanced ab

Im folgenden Beispiel für list-attacks werden Zusammenfassungen der Angriffe für die angegebene AWS-CloudFront-Distribution während des angegebenen Zeitraums abgerufen. Die Antwort umfasst Angriffs-IDs, die Sie dem describe-attack-Befehl bereitstellen können, um detaillierte Informationen zu einem Angriff zu erhalten.

aws shield list-attacks \ --resource-arns arn:aws:cloudfront::12345678910:distribution/E1PXMP22ZVFAOR \ --start-time FromInclusive=1529280000,ToExclusive=1529300000

Ausgabe:

{ "AttackSummaries": [ { "AttackId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "ResourceArn": "arn:aws:cloudfront::123456789012:distribution/E1PXMP22ZVFAOR", "StartTime": 1529280000.0, "EndTime": 1529449200.0, "AttackVectors": [ { "VectorType": "SYN_FLOOD" } ] } ] }

Weitere Informationen finden Sie unter Überprüfen von DDoS-Vorfällen im Entwicklerhandbuch zu AWS-Shield Advanced.

  • API-Details finden Sie unter ListAttacks in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie list-protections verwendet wird.

AWS CLI

So rufen Sie Schutzzusammenfassungen von AWS-Shield Advanced ab

Im folgenden Beispiel für list-protections werden Zusammenfassungen der Schutzmaßnahmen abgerufen, die für das Konto aktiviert sind.

aws shield list-protections

Ausgabe:

{ "Protections": [ { "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Name": "Protection for CloudFront distribution", "ResourceArn": "arn:aws:cloudfront::123456789012:distribution/E198WC25FXOWY8" } ] }

Weitere Informationen finden Sie unter Angeben Ihrer zu schützenden Ressourcen im Entwicklerhandbuch zu AWS-Shield Advanced.

  • API-Details finden Sie unter ListProtections in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie update-emergency-contact-settings verwendet wird.

AWS CLI

So definieren Sie die Notfall-E-Mail-Adressen, die im DRT gespeichert sind

Im folgenden Beispiel für update-emergency-contact-settings werden zwei E-Mail-Adressen definiert, an die sich das DRT wenden soll, wenn es auf einen vermuteten Angriff reagiert.

aws shield update-emergency-contact-settings \ --emergency-contact-list EmailAddress=ops@example.com EmailAddress=ddos-notifications@example.com

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Funktionsweise von AWS Shield im Entwicklerhandbuch zu AWS Shield Advanced.

Das folgende Codebeispiel zeigt, wie update-subscription verwendet wird.

AWS CLI

So ändern das AWS-Shield-Advanced-Abonnement des Kontos

Im folgenden Beispiel für update-subscription wird die automatische Verlängerung des AWS-Shield-Advanced-Abonnements für das Konto aktiviert.

aws shield update-subscription \ --auto-renew ENABLED

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Funktionsweise von AWS Shield im Entwicklerhandbuch zu AWS Shield Advanced.