AWS 예상치 못한 법안을 어떻게 방어할 것인가
This article was first published on bahr.dev.
Subscribe to get new articles straight to your inbox!
시간이 모자라다Set up Budget Alerts in less than 2 minutes .
깜짝 계산서 있어요?Here’s how you can contact AWS Support .
지난 6개월 동안 클라우드에서 취미 프로젝트를 운영해 왔다고 상상해 보세요.너는 매달 20센트를 지불한다.진정한 관심으로는 부족하다.그러나 어느 날 아침, 당신은 2700달러의 큰 거래에 주의를 기울였다.
Good morning, $2700 AWS bill!
Holy shit...
— Chris Short @ KubeCon ( )
클라우드 컴퓨팅은 우리가 저장, 계산 및 기타 서비스를 사용할 때 비용을 지불할 수 있도록 허락한다.우리는 컴퓨터 가게에 가서 서버 프레임을 사지 않고 서비스를 이용해서 월말에 계산서를 받을 수 있다.그러나 불리한 점은 우리가 더 많은 돈을 쓸 수 있다는 것이다.이것은 서버가 없는 해결 방안에 있어서 특히 까다롭다. 이러한 해결 방안은 유량이 증가함에 따라 자동으로 확대될 것이다.
의외로 비싼 가상 기기를 운행하게 하거나, 당신의 람바다 함수를 제어하지 못하게 하면, 무서운 의외의 계산서를 초래할 수 있다.
— Fernando (@fmc_sea)
본고에서 우리는 비용 계산의 작업 원리와 의외의 비용 계산을 어떻게 방지하는지 이해할 것이다.
소액 어음에 주목하다
본고는 주로 계산서가 상대적으로 적은 개인이나 소규모 회사 계좌에 주목한다.큰 회사 명세서에서 3000달러의 원가 급등은 뚜렷하지 않을 수도 있지만, 취미 프로젝트를 운영하는 개인 계좌에 있어서는 파멸적일 수도 있다.
완벽한 솔루션 없음
불행하게도 의외의 계산서를 막기 위한 완벽한 해결 방안이 없다.AsCorey Quinn explains on his podcast AWS 요금 계산 시스템은 모든 데이터를 수신하는 데 몇 시간이 걸릴 수도 있고, 어떤 경우에는 최대 24시간이나 48시간이 걸릴 수도 있다.따라서 예산 경보는 중대한 지출이 발생한 지 몇 시간 또는 며칠 뒤에 촉발될 수 있다.예산 알림은 여전히 좋은 도구이다. 예를 들어 비싼 EC2 실례를 잊어버리는 것을 방지할 수 있다. 과거에는 기계 학습 세미나에서 이 실례를 주목했다.
이것은 당신이 예상치 못한 계산서의 위험을 낮추기 위해 얼마나 많은 시간을 투자하고 싶느냐에 달려 있지만, 나는 당신이 2분을 써서 예산 알림을 설정하는 것을 강력히 건의합니다.
방어 메커니즘
너는 여러 가지 메커니즘을 응용하여 갑작스러운 계산서를 막을 수 있다.보안, 경고, 보완 조치, 가시성 향상 등의 내용이 수록되어 있습니다.
1. 다중 요소 인증을 통해 계정 보호
이것은 새 AWS 계정을 만들 때 설정해야 할 첫 번째 작업입니다.
Hey! You! 👋 Do you own an AWS account?
🚨STOP SCROLLING AND CHECK THIS NOW- is MFA enabled on your root account?
Yes? Cool, carry on 🙋🏻♂️
No? ENABLE IT NOW! PLEASE! 🙏🏽
This reminder brought to you by an SA who had two customers with theirs account compromised in a week 🙈
— Karan (@somecloudguy)
Follow this official guide 계정에 MFA(다중 요소 인증)를 설정합니다.계정에서 MFA를 활성화하여 악성 공격자에게 다른 장벽을 추가합니다.
2. 예산 경고
새 AWS 계정을 만들 때 설정해야 할 두 번째 사항입니다.
예산 알림은 지출에 가장 많은 관심을 기울이는 방식이다.예산 경고를 작성하면 임계값을 초과했다는 알림과 같은 알림을 받게 됩니다.알림은 Amazon SNS 또는 AWS Chatbot를 통해 추가로 사용자 정의할 수 있습니다.
다음은 short video(52초)의 예산 경고입니다. 첫 번째 예산 경고를 만들 수 있습니다.예산 경고와 관련된 더 많은 상하문과 다양한 방식을 설정할 수 있습니다.
CDK를 이미 사용하고 있는 경우 패키지aws-budget-notifier가 빠른 부팅을 제공합니다.
너는 몇 번부터 시작해야 합니까?
현재의 비용보다 조금 높은 액수부터 시작하고, 이 액수에 만족한다.만약 네가 막 일을 시작한다면, 10달러는 아마도 좋은 생각일 것이다.만약 당신의 업무량이 이미 몇 달 동안 지속되었다면, 당신의 평균 지출에 50% 를 더해라.
또한 임계값에 따라 여러 개의 청구 경고를 설정하는 것이 좋습니다.
위험-궤도 핵무기 옵션
SNS에 알림을 보낼 수 있기 때문에, 계정의 모든 인프라를 파괴하는 실행 aws-nuke 의 람다 함수를 터치할 수 있습니다.생산 데이터가 있는 계정에 사용하지 마십시오.더 많은 정보를 알고 싶다면check out the GitHub repository.
3. 예산 행동
AWSrecently announced Budget Actions.이것은 예산 경보의 확장으로 예산이 한도값을 초과할 때 조작을 촉발할 수 있다.전자 우편 알림을 보내는 것 외에, "EC2 실행 실례 거부"와 같은 사용자 정의 IAM 정책을 적용하거나, AWS에서 EC2와 RDS 실례를 닫을 수 있습니다.
4. 모바일 앱
AWS Console Mobile Application 3-5번의 클릭만으로 비용 관리자를 구현할 수 있습니다.이렇게 하면 너는 최소한의 노력으로 너의 지출을 검사할 수 있다.
모바일 애플리케이션의 화면은 다음과 같습니다.
이 프로그램을 사용하려면 set up a dedicated user 이 프로그램만 표시해야 합니다. gets the permissions 이 프로그램은 지출을 표시해야 합니다.
cost explorer와cloudwatch 경보를 읽을 수 있는 IAM 정책이 있습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ce:DescribeCostCategoryDefinition",
"ce:GetRightsizingRecommendation",
"ce:GetCostAndUsage",
"ce:GetSavingsPlansUtilization",
"ce:GetReservationPurchaseRecommendation",
"ce:ListCostCategoryDefinitions",
"ce:GetCostForecast",
"ce:GetReservationUtilization",
"ce:GetSavingsPlansPurchaseRecommendation",
"ce:GetDimensionValues",
"ce:GetSavingsPlansUtilizationDetails",
"ce:GetCostAndUsageWithResources",
"ce:GetReservationCoverage",
"ce:GetSavingsPlansCoverage",
"ce:GetTags",
"ce:GetUsageForecast",
"health:DescribeEventAggregates",
"cloudwatch:DescribeAlarms",
"aws-portal:ViewAccount",
"aws-portal:ViewUsage",
"aws-portal:ViewBilling"
],
"Resource": "*"
}
]
}
우리는 권한을 세 조로 나눌 수 있다.ce:
로 시작하는 모든 컨텐츠)이를 통해 우리는 현재 또는 예측 지출에 대한 상세한 정보를 얻을 수 있다.cloudwatch:DescribeAlarms
.이것은 당신에게 어떤 경보가 있는지 보여줄 수 있지만, 당신을 더 멀리 가게 할 수는 없다.aws-portal:
과 health:
로 시작하는 권한.이렇게 하면 이동 계기판을 정확하게 표시할 수 있다.만약 테스트를 거친 계기판이 없다면, 너는 그것들의 세부 사항을 이해할 수 없을 것이다.5. 비밀경리
If access keys get leaked through public repositories 악의적인 참여자는 귀하의 계좌에서 비싼 EC2 실례를 시작하고 이를 사용하여 비트코인을 발굴할 수 있습니다.또 일부 보고서에 따르면 실례는 사용 빈도가 낮은 구역에 숨겨져 있어 계산서 요약에서 발견할 수 없을 정도로 작다고 한다.
코드가 액세스 키나 기타 기밀의 영향을 받지 않도록 하려면 AWS Secrets Manager 코드를 실행할 때 필요한 기밀을 저장할 수 있습니다.
Follow this AWS tutorial 당신의 첫 번째 비밀을 만들어 보세요.일단 하나를 만들면, 공식 AWS 클라이언트 boto3 for Python 로 코드 라이브러리에서 이 비밀을 되찾으십시오.
import boto3
client = boto3.client('secretsmanager')
response = client.get_secret_value(SecretId='replace-me')
secret = response['SecretString']
비밀은 매달 0.40달러, API 10000개당 0.05달러가 소요됩니다.지원 부서에 문의
예상치 못한 청구서가 발생하면 지출이 많은 애플리케이션을 중지하고 필요한 경우 액세스 키를 돌려 AWS 지원에 문의하십시오.
Here’s a 20 seconds video which guides you to the support case .
지원 통지서를 제출하려면 다음과 같이 하십시오.
결론
네가 해야 할 첫 번째 일은 설정MFA과 Budget Alerts이다.이후 지출이 급증하면 예산과 같은 더 높은 조작을 연구할 수 있다.
응용 프로그램이 기밀 또는 액세스 키를 사용하는 경우 storing the secrets in the AWS Secrets Manager instead를 사용하여 저장소에 실수로 나타나는 것을 방지할 수 있습니다.
리소스
Reference
이 문제에 관하여(AWS 예상치 못한 법안을 어떻게 방어할 것인가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/michabahr/how-to-defend-against-aws-surprise-bills-c2a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)