이 문서는 AWS CLI의 버전 1에만 해당합니다. AWS CLI의 버전 2와 관련된 문서는 버전 2 사용 설명서를 참조하세요.
다음 코드 예시는 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 Advanced 개발자 안내서의 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 Advanced 개발자 안내서의 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 Advanced 개발자 안내서의 보호할 리소스 지정을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateProtection
을 참조하세요.
-
다음 코드 예시에서는 create-subscription
의 사용 방법을 보여줍니다.
- AWS CLI
-
계정에 대해 AWS Shield Advanced 보호 활성화
다음
create-subscription
예시에서는 계정에 대해 Shield Advanced 보호를 활성화합니다.aws shield create-subscription
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS Shield Advanced 개발자 안내서의 AWS Shield Advanced 시작하기를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateSubscription
을 참조합니다.
-
다음 코드 예시에서는 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 리소스에서 AWS Shield Advanced 제거를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteProtection
을 참조하세요.
-
다음 코드 예시에서는 describe-attack
의 사용 방법을 보여줍니다.
- AWS CLI
-
공격에 대한 자세한 설명 가져오기
다음
describe-attack
예시에서는 지정된 공격 ID를 가진 DDoS 공격의 세부 정보를 표시합니다. 공격 ID는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 세부 정보는 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 Advanced 개발자 안내서의 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 Advanced 개발자 안내서의 AWS Shield 작동 방식<https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html>을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeEmergencyContactSettings
를 참조하세요.
-
다음 코드 예시에서는 describe-protection
의 사용 방법을 보여줍니다.
- AWS CLI
-
AWS Shield Advanced 보호의 세부 정보 가져오기
다음
describe-protection
예시에서는 지정된 ID를 가진 Shield Advanced 보호의 세부 정보를 표시합니다. 보호 ID는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 세부 정보는 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 } ] } }
자세한 내용은 AWS Shield Advanced 개발자 안내서의 AWS Shield 작동 방식을 참조하세요.
-
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 Advanced 개발자 안내서의 DDoS 대응 팀에 권한 부여를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DisassociateDrtLogBucket
을 참조하세요.
-
다음 코드 예시에서는 disassociate-drt-role
의 사용 방법을 보여줍니다.
- AWS CLI
-
DRT가 사용자를 대신하여 잠재적 공격을 완화할 수 있는 권한 제거
다음
disassociate-drt-role
예시에서는 DRT와 계정 간의 연결을 제거합니다. 이 직접적 호출 후에는 DRT가 더 이상 계정에 액세스하거나 계정을 관리할 수 없습니다.aws shield disassociate-drt-role
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS Shield Advanced 개발자 안내서의 DDoS 대응 팀에 권한 부여를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DisassociateDrtRole
을 참조하세요.
-
다음 코드 예시에서는 get-subscription-state
의 사용 방법을 보여줍니다.
- AWS CLI
-
계정의 AWS Shield Advanced 구독의 현재 상태 가져오기
다음
get-subscription-state
예시에서는 계정에 대한 Shield Advanced 보호의 상태를 가져옵니다.aws shield get-subscription-state
출력:
{ "SubscriptionState": "ACTIVE" }
자세한 내용은 AWS Shield Advanced 개발자 안내서의 AWS Shield 작동 방식을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetSubscriptionState
를 참조하세요.
-
다음 코드 예시에서는 list-attacks
의 사용 방법을 보여줍니다.
- AWS CLI
-
AWS Shield Advanced에서 공격 요약 가져오기
다음
list-attacks
예시에서는 지정된 기간 동안 지정된 AWS CloudFront 배포에 대한 공격 요약을 가져옵니다. 응답에는 공격에 대한 자세한 정보를 얻기 위해describe-attack
명령에 제공할 수 있는 공격 ID가 포함됩니다.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 Advanced 개발자 안내서의 DDoS 인시던트 검토를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListAttacks
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 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 Advanced 개발자 안내서의 AWS Shield 작동 방식을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateEmergencyContactSettings
를 참조하세요.
-
다음 코드 예시에서는 update-subscription
의 사용 방법을 보여줍니다.
- AWS CLI
-
계정의 AWS Shield Advanced 구독 수정
다음
update-subscription
예시에서는 계정에 대한 AWS Shield Advanced 구독의 자동 갱신을 활성화합니다.aws shield update-subscription \ --auto-renew
ENABLED
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS Shield Advanced 개발자 안내서의 AWS Shield 작동 방식을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateSubscription
을 참조하세요.
-