を使用した Shield の例 AWS CLI - AWS SDK コード例

Doc AWS SDK Examples リポジトリには、他にも SDK の例があります。 AWS GitHub

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用した Shield の例 AWS CLI

次のコード例は、Shield AWS Command Line Interface で を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、関連するシナリオやサービス間の例ではアクションのコンテキストが確認できます。

「シナリオ」は、同じサービス内で複数の関数を呼び出して、特定のタスクを実行する方法を示すコード例です。

各例には、 へのリンクが含まれています。このリンクには GitHub、コンテキスト内でコードをセットアップして実行する方法の手順が記載されています。

トピック

アクション

次の例は、associate-drt-log-bucket を使用する方法を説明しています。

AWS CLI

DRT が Amazon S3 バケットにアクセスすることを許可するには

次のassociate-drt-log-bucket例では、DRT と指定された S3 バケット間の関連付けを作成します。これにより、DRT はアカウントに代わってバケットにアクセスできます。

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

このコマンドでは何も出力されません。

詳細については、AWS Shield Advanced デベロッパーガイドの「DDoS レスポンスチームの承認」を参照してください。

  • API の詳細については、「 コマンドリファレンスAssociateDrtLogBucket」の「」を参照してください。 AWS CLI

次の例は、associate-drt-role を使用する方法を説明しています。

AWS CLI

DRT がユーザーに代わって潜在的な攻撃を軽減することを許可するには

次のassociate-drt-role例では、DRT と指定されたロール間の関連付けを作成します。DRT はロールを使用して、アカウントにアクセスして管理できます。

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

このコマンドでは何も出力されません。

詳細については、AWS Shield Advanced デベロッパーガイドの「DDoS レスポンスチームの承認」を参照してください。

  • API の詳細については、「 コマンドリファレンスAssociateDrtRole」の「」を参照してください。 AWS CLI

次の例は、create-protection を使用する方法を説明しています。

AWS CLI

単一の AWS リソースに対して AWS Shield Advanced 保護を有効にするには

次のcreate-protection例では、指定した AWS CloudFront ディストリビューションの Shield Advanced 保護を有効にします。

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

出力:

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

詳細については、AWS Shield Advanced デベロッパーガイド「保護するリソースを指定する」を参照してください。

  • API の詳細については、「 コマンドリファレンスCreateProtection」の「」を参照してください。 AWS CLI

次の例は、create-subscription を使用する方法を説明しています。

AWS CLI

アカウントの AWS Shield Advanced 保護を有効にするには

次のcreate-subscription例では、アカウントの Shield Advanced 保護を有効にします。

aws shield create-subscription

このコマンドでは何も出力されません。

詳細については、AWS Shield Advanced デベロッパーガイドのAWS 「Shield Advanced の開始方法」を参照してください。

  • API の詳細については、「 コマンドリファレンスCreateSubscription」の「」を参照してください。 AWS CLI

次の例は、delete-protection を使用する方法を説明しています。

AWS CLI

AWS リソースから AWS Shield Advanced 保護を削除するには

次のdelete-protection例では、指定された AWS Shield Advanced 保護を削除します。

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

このコマンドでは何も出力されません。

詳細については、AWS 「Shield Advanced デベロッパーガイド」の「 AWS リソースからの Shield Advanced の削除」を参照してください。 AWS

  • API の詳細については、「 コマンドリファレンスDeleteProtection」の「」を参照してください。 AWS CLI

次の例は、describe-attack を使用する方法を説明しています。

AWS CLI

攻撃の詳細な説明を取得するには

次のdescribe-attack例では、指定された攻撃 ID を持つ DDoS 攻撃に関する詳細を表示します。攻撃 IDs を取得するには、 list-attacks コマンドを実行します。

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

出力:

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

詳細については、AWS Shield Advanced デベロッパーガイドの「DDoS インシデントの確認」を参照してください。

  • API の詳細については、「 コマンドリファレンスDescribeAttack」の「」を参照してください。 AWS CLI

次の例は、describe-drt-access を使用する方法を説明しています。

AWS CLI

DRT がユーザーに代わって攻撃を軽減する必要がある認証の説明を取得するには

次のdescribe-drt-access例では、DRT が持つロールと S3 バケット認証を取得し、ユーザーに代わって潜在的な攻撃に応答できるようにします。

aws shield describe-drt-access

出力:

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

詳細については、AWS Shield Advanced デベロッパーガイドの「DDoS レスポンスチームの承認」を参照してください。

  • API の詳細については、「 コマンドリファレンスDescribeDrtAccess」の「」を参照してください。 AWS CLI

次の例は、describe-emergency-contact-settings を使用する方法を説明しています。

AWS CLI

DRT でファイルに登録されている緊急 E メールアドレスを取得するには

次のdescribe-emergency-contact-settings例では、アカウントの DRT でファイルに登録されている E メールアドレスを取得します。これらは、疑わしい攻撃に DRT が対応する際に連絡すべきアドレスです。

aws shield describe-emergency-contact-settings

出力:

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

詳細については、 AWS Shield AWS Advanced デベロッパーガイドの「Shield の仕組み<https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html>」を参照してください。

次の例は、describe-protection を使用する方法を説明しています。

AWS CLI

AWS Shield Advanced 保護の詳細を取得するには

次のdescribe-protection例では、指定された ID を持つ Shield Advanced 保護の詳細を表示します。保護 IDs list-protections コマンドを実行して取得できます。

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

出力:

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

詳細については、AWS Shield Advanced デベロッパーガイド「保護するリソースを指定する」を参照してください。

  • API の詳細については、「 コマンドリファレンスDescribeProtection」の「」を参照してください。 AWS CLI

次の例は、describe-subscription を使用する方法を説明しています。

AWS CLI

アカウントの AWS Shield Advanced 保護の詳細を取得するには

次のdescribe-subscription例では、アカウントに対して提供される Shield Advanced 保護の詳細を表示します。

aws shield describe-subscription

出力:

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

詳細については、AWS Shield Advanced デベロッパーガイドの「Shield の仕組み」を参照してください。 AWS

  • API の詳細については、「 コマンドリファレンスDescribeSubscription」の「」を参照してください。 AWS CLI

次の例は、disassociate-drt-log-bucket を使用する方法を説明しています。

AWS CLI

DRT がユーザーに代わって Amazon S3 バケットにアクセスするための承認を削除するには

次のdisassociate-drt-log-bucket例では、DRT と指定された S3 バケット間の関連付けを削除します。このコマンドが完了すると、DRT はアカウントに代わってバケットにアクセスできなくなります。

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

このコマンドでは何も出力されません。

詳細については、AWS Shield Advanced デベロッパーガイドの「DDoS レスポンスチームの承認」を参照してください。

  • API の詳細については、「 コマンドリファレンスDisassociateDrtLogBucket」の「」を参照してください。 AWS CLI

次の例は、disassociate-drt-role を使用する方法を説明しています。

AWS CLI

ユーザーに代わって潜在的な攻撃を軽減するための DRT の承認を削除するには

次のdisassociate-drt-role例では、DRT と アカウント間の関連付けを削除します。この呼び出しの後、DRT は アカウントにアクセスしたり管理したりできなくなります。

aws shield disassociate-drt-role

このコマンドでは何も出力されません。

詳細については、AWS Shield Advanced デベロッパーガイドの「DDoS レスポンスチームの承認」を参照してください。

  • API の詳細については、「 コマンドリファレンスDisassociateDrtRole」の「」を参照してください。 AWS CLI

次の例は、get-subscription-state を使用する方法を説明しています。

AWS CLI

アカウントの AWS Shield Advanced サブスクリプションの現在の状態を取得するには

次のget-subscription-state例では、アカウントの Shield Advanced 保護の状態を取得します。

aws shield get-subscription-state

出力:

{ "SubscriptionState": "ACTIVE" }

詳細については、AWS Shield Advanced デベロッパーガイドの「Shield の仕組み」を参照してください。 AWS

  • API の詳細については、「 コマンドリファレンスGetSubscriptionState」の「」を参照してください。 AWS CLI

次の例は、list-attacks を使用する方法を説明しています。

AWS CLI

AWS Shield Advanced から攻撃の概要を取得するには

次のlist-attacks例では、指定された期間中の指定された AWS CloudFront ディストリビューションの攻撃の概要を取得します。レスポンスには、攻撃IDs が含まれています。 describe-attack

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

出力:

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

詳細については、AWS Shield Advanced デベロッパーガイド「DDoS インシデントの確認」を参照してください。

  • API の詳細については、「 コマンドリファレンスListAttacks」の「」を参照してください。 AWS CLI

次の例は、list-protections を使用する方法を説明しています。

AWS CLI

AWS Shield Advanced から保護の概要を取得するには

次のlist-protections例では、アカウントで有効になっている保護の概要を取得します。

aws shield list-protections

出力:

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

詳細については、AWS Shield Advanced デベロッパーガイド「保護するリソースを指定する」を参照してください。

  • API の詳細については、「 コマンドリファレンスListProtections」の「」を参照してください。 AWS CLI

次の例は、update-emergency-contact-settings を使用する方法を説明しています。

AWS CLI

DRT に保管されている緊急 E メールアドレスを定義するには

次のupdate-emergency-contact-settings例では、疑わしい攻撃に DRT が対応する際に連絡する必要がある 2 つの E メールアドレスを定義します。

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

このコマンドでは何も出力されません。

詳細については、AWS Shield Advanced デベロッパーガイドの「Shield の仕組み」を参照してください。 AWS

次の例は、update-subscription を使用する方法を説明しています。

AWS CLI

アカウントの AWS Shield Advanced サブスクリプションを変更するには

次のupdate-subscription例では、アカウントの AWS Shield Advanced サブスクリプションの自動更新を有効にします。

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

このコマンドでは何も出力されません。

詳細については、AWS Shield Advanced デベロッパーガイドの「Shield の仕組み」を参照してください。 AWS

  • API の詳細については、「 コマンドリファレンスUpdateSubscription」の「」を参照してください。 AWS CLI