文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 的 Shield 範例 AWS CLI
下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 Shield 來執行動作和實作常見案例。
Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然 動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。
每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。
主題
動作
下列程式碼範例示範如何使用 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 進階開發人員指南中的授權 DDoS 回應團隊。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 AssociateDrtLogBucket
。
-
下列程式碼範例示範如何使用 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 進階開發人員指南中的授權 DDoS 回應團隊。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 AssociateDrtRole
。
-
下列程式碼範例示範如何使用 create-protection
。
- AWS CLI
-
為單一 AWS 資源啟用 AWS Shield Advanced 保護
下列
create-protection
範例會啟用指定 AWS CloudFront 分發的 Shield Advanced 保護。aws shield create-protection \ --name
"Protection for CloudFront distribution"
\ --resource-arnarn:aws:cloudfront::123456789012:distribution/E198WC25FXOWY8
輸出:
{ "ProtectionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }
如需詳細資訊,請參閱 AWS Shield 進階開發人員指南中的指定要保護的資源。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateProtection
。
-
下列程式碼範例示範如何使用 create-subscription
。
- AWS CLI
-
為 帳戶啟用 AWS Shield Advanced 保護
下列
create-subscription
範例會啟用帳戶的 Shield Advanced 保護。aws shield create-subscription
此命令不會產生輸出。
如需詳細資訊,請參閱 Shield Advanced AWS 開發人員指南AWS 中的 Shield Advanced 入門。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateSubscription
。
-
下列程式碼範例示範如何使用 delete-protection
。
- AWS CLI
-
從 AWS 資源中移除 AWS Shield Advanced 保護
下列
delete-protection
範例會移除指定的 Shield Advanced AWS 保護。aws shield delete-protection \ --protection-id
a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
此命令不會產生輸出。
如需詳細資訊,請參閱 Shield Advanced AWS 開發人員指南中的從 AWS 資源中移除 Shield Advanced。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteProtection
。
-
下列程式碼範例示範如何使用 describe-attack
。
- AWS CLI
-
擷取攻擊的詳細說明
下列
describe-attack
範例顯示具有指定攻擊 ID 的 DDoS 攻擊詳細資訊。您可以執行list-attacks
命令來取得攻擊 IDs。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 進階開發人員指南中的檢閱 DDoS 事件。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeAttack
。
-
下列程式碼範例示範如何使用 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 進階開發人員指南中的授權 DDoS 回應團隊。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeDrtAccess
。
-
下列程式碼範例示範如何使用 describe-emergency-contact-settings
。
- AWS CLI
-
使用 DRT 擷取您存檔的緊急電子郵件地址
下列
describe-emergency-contact-settings
範例會擷取 帳戶使用 DRT 存檔的電子郵件地址。這些是 DRT 在回應可疑攻擊時應聯絡的地址。aws shield describe-emergency-contact-settings
輸出:
{ "EmergencyContactList": [ { "EmailAddress": "ops@example.com" }, { "EmailAddress": "ddos-notifications@example.com" } ] }
如需詳細資訊,請參閱 Shield AWS AWS 進階開發人員指南中的 Shield 如何運作<latest/developerguide/ddoshttps://docs.aws.amazon.com/waf/-overview.html>。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeEmergencyContactSettings
。
-
下列程式碼範例示範如何使用 describe-protection
。
- AWS CLI
-
擷取 Shield Advanced AWS 保護的詳細資訊
下列
describe-protection
範例顯示具有指定 ID 的 Shield Advanced 保護的詳細資訊。您可以執行list-protections
命令來取得保護 IDs。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 進階開發人員指南中的指定要保護的資源。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeProtection
。
-
下列程式碼範例示範如何使用 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 } ] } }
如需詳細資訊,請參閱 Shield AWS 進階開發人員指南中的 Shield 如何運作。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeSubscription
。
-
下列程式碼範例示範如何使用 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 進階開發人員指南中的授權 DDoS 回應團隊。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DisassociateDrtLogBucket
。
-
下列程式碼範例示範如何使用 disassociate-drt-role
。
- AWS CLI
-
移除 DRT 的授權,以代表您緩解潛在的攻擊
下列
disassociate-drt-role
範例會移除 DRT 與 帳戶之間的關聯。在此呼叫之後,DRT 就無法再存取或管理您的帳戶。aws shield disassociate-drt-role
此命令不會產生輸出。
如需詳細資訊,請參閱 AWS Shield 進階開發人員指南中的授權 DDoS 回應團隊。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DisassociateDrtRole
。
-
下列程式碼範例示範如何使用 get-subscription-state
。
- AWS CLI
-
若要擷取帳戶的 Shield Advanced AWS 訂閱的目前狀態
下列
get-subscription-state
範例會擷取帳戶的 Shield Advanced 保護狀態。aws shield get-subscription-state
輸出:
{ "SubscriptionState": "ACTIVE" }
如需詳細資訊,請參閱 Shield AWS 進階開發人員指南中的 Shield 如何運作。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetSubscriptionState
。
-
下列程式碼範例示範如何使用 list-attacks
。
- AWS CLI
-
從 Shield Advanced AWS 擷取攻擊摘要
下列
list-attacks
範例會擷取指定期間內指定 AWS CloudFront 分佈的攻擊摘要。回應包含您可以提供給describe-attack
命令的攻擊 IDs,以取得攻擊的詳細資訊。aws shield list-attacks \ --resource-arns
arn:aws:cloudfront::12345678910:distribution/E1PXMP22ZVFAOR
\ --start-timeFromInclusive=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 進階開發人員指南中的檢閱 DDoS 事件。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListAttacks
。
-
下列程式碼範例示範如何使用 list-protections
。
- AWS CLI
-
從 Shield Advanced AWS 擷取保護摘要
下列
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 進階開發人員指南中的指定要保護的資源。
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListProtections
。
-
下列程式碼範例示範如何使用 update-emergency-contact-settings
。
- AWS CLI
-
使用 DRT 定義存檔的緊急電子郵件地址
下列
update-emergency-contact-settings
範例定義兩個電子郵件地址,Word DRT應在回應可疑攻擊時聯絡該地址。aws shield update-emergency-contact-settings \ --emergency-contact-list
EmailAddress=ops@example.com
EmailAddress=ddos-notifications@example.com
此命令不會產生輸出。
如需詳細資訊,請參閱 Shield AWS 進階開發人員指南中的 Shield 如何運作。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateEmergencyContactSettings
。
-
下列程式碼範例示範如何使用 update-subscription
。
- AWS CLI
-
若要修改帳戶的 AWS Shield Advanced 訂閱
下列
update-subscription
範例會啟用 帳戶的 AWS Shield Advanced 訂閱自動續約。aws shield update-subscription \ --auto-renew
ENABLED
此命令不會產生輸出。
如需詳細資訊,請參閱 Shield AWS 進階開發人員指南中的 Shield 如何運作。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateSubscription
。
-