를 사용하여 예제 보호 AWS CLI - AWS Command Line Interface

이 설명서는 의 버전 1 AWS CLI 전용입니다. 의 버전 2와 관련된 설명서는 버전 2 사용 설명서 를 AWS CLI참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 사용하여 예제 보호 AWS CLI

다음 코드 예제에서는 Shield AWS Command Line Interface 와 함께 를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.

주제

작업

다음 코드 예시에서는 associate-drt-log-bucket을 사용하는 방법을 보여 줍니다.

AWS CLI

가 Amazon S3 버킷에 액세스할 DRT 수 있는 권한을 부여하려면

다음 associate-drt-log-bucket 예제에서는 DRT와 지정된 S3 버킷 간의 연결을 생성합니다. 이렇게 하면 DRT가 계정을 대신하여 버킷에 액세스할 수 있습니다.

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

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS Shield 고급 개발자 안내서 DDoS 대응 팀 승인을 참조하세요.

다음 코드 예시에서는 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 내용은 명령 참조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 고급 개발자 안내서보호할 리소스 지정을 참조하세요.

  • 자세한 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 예제에서는 지정된 DDoS 공격 ID를 사용하여 공격에 대한 세부 정보를 표시합니다. 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 내용은 명령 참조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 고급 개발자 안내서 DDoS 대응 팀 승인을 참조하세요.

  • 자세한 API 내용은 명령 참조DescribeDrtAccess의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 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" } ] }

자세한 내용은 AWS Shield AWS Advanced Developer Guide의 Shield 작동 방식<https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html>을 참조하세요.

다음 코드 예시에서는 describe-protection을 사용하는 방법을 보여 줍니다.

AWS CLI

AWS Shield Advanced 보호에 대한 세부 정보를 검색하려면

다음 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 내용은 명령 참조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 고급 개발자 안내서의 Shield 작동 방식을 참조하세요. AWS

다음 코드 예시에서는 disassociate-drt-log-bucket을 사용하는 방법을 보여 줍니다.

AWS CLI

사용자를 대신하여 Amazon S3 버킷에 액세스할 DRT 수 있는 권한 부여를 제거하려면

다음 disassociate-drt-log-bucket 예제에서는 DRT와 지정된 S3 버킷 간의 연결을 제거합니다. 이 명령이 완료되면 는 더 이상 계정을 대신하여 버킷에 액세스할 DRT 수 없습니다.

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

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS Shield 고급 개발자 안내서 DDoS 대응 팀 승인을 참조하세요.

다음 코드 예시에서는 disassociate-drt-role을 사용하는 방법을 보여 줍니다.

AWS CLI

사용자를 대신하여 잠재적 공격을 완화DRT하기 위해 에 대한 권한 부여를 제거하려면

다음 disassociate-drt-role 예제에서는 DRT 와 계정 간의 연결을 제거합니다. 이 호출 후에는 DRT가 더 이상 계정에 액세스하거나 계정을 관리할 수 없습니다.

aws shield disassociate-drt-role

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS Shield 고급 개발자 안내서 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 고급 개발자 안내서의 Shield 작동 방식을 참조하세요. AWS

다음 코드 예시에서는 list-attacks을 사용하는 방법을 보여 줍니다.

AWS CLI

AWS Shield Advanced에서 공격 요약을 검색하려면

다음 list-attacks 예제에서는 지정된 기간 동안 지정된 AWS CloudFront 배포에 대한 공격 요약을 검색합니다. 응답에는 공격에 대한 자세한 정보를 위해 describe-attack 명령에 제공할 수 IDs 있는 공격이 포함됩니다.

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 고급 개발자 안내서 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 고급 개발자 안내서보호할 리소스 지정을 참조하세요.

  • 자세한 API 내용은 명령 참조ListProtections의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 update-emergency-contact-settings을 사용하는 방법을 보여 줍니다.

AWS CLI

에 저장된 긴급 이메일 주소를 정의하려면 DRT

다음 update-emergency-contact-settings 예제에서는 의심되는 공격에 대응할 때 가 문의DRT해야 하는 두 개의 이메일 주소를 정의합니다.

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

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS Shield 고급 개발자 안내서의 Shield 작동 방식을 참조하세요. AWS

다음 코드 예시에서는 update-subscription을 사용하는 방법을 보여 줍니다.

AWS CLI

계정의 AWS Shield Advanced 구독을 수정하려면

다음 update-subscription 예제에서는 계정에 대한 AWS Shield Advanced 구독의 자동 갱신을 활성화합니다.

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

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS Shield 고급 개발자 안내서의 Shield 작동 방식을 참조하세요. AWS

  • 자세한 API 내용은 명령 참조UpdateSubscription의 섹션을 참조하세요. AWS CLI