를 사용하여 예제 보호 AWS CLI - AWS SDK 코드 예제

AWS Doc SDK ExamplesWord AWS SDK 리포지토리에는 더 많은 GitHub 예제가 있습니다.

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

를 사용하여 예제 보호 AWS CLI

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

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

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

주제

작업

다음 코드 예시에서는 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 대응 팀 승인을 참조하세요.

다음 코드 예시에서는 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-arn arn: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

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

자세한 내용은 AWS Shield Advanced 개발자 안내서의 Shield Advanced 시작하기를 참조하세요. AWS

다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조DeleteProtection를 참조하세요.

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

AWS CLI

공격에 대한 자세한 설명을 검색하려면

다음 describe-attack 예제에서는 지정된 공격 ID를 사용하여 DDoS 공격에 대한 세부 정보를 표시합니다. list-attacks 명령을 실행하여 attack 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" } ] }

자세한 내용은 AWS Shield AWS 고급 개발자 안내서의 Shield 작동 방식<https://docs.aws.amazon.com/waf/latest/developerguide/ddosWord-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 고급 개발자 안내서보호할 리소스 지정을 참조하세요.

다음 코드 예시에서는 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 대응 팀 승인을 참조하세요.

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

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

다음 list-attacks 예제에서는 지정된 기간 동안 지정된 AWS CloudFront 배포에 대한 공격 요약을 검색합니다. 응답에는 공격에 대한 자세한 정보를 위해 describe-attack 명령에 제공할 수 있는 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 세부 정보는 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 예제에서는 의심되는 공격에 대응할 때 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