Многопользовательский биллинг в Amazon Web Sevices

в 9:53, , рубрики: Amazon Web Services, AWS, Блог компании EPAM Systems Ukraine, метки: ,

Привет читатели! image

Есть большие проекты с отдельными аккаунтами и множеством IAM пользователями. Но чаще встречаются более мелкие клиенты, и тут хотелось бы собрать всех вместе, но биллить их отдельно. Как же это сделать? Как выставлять счёт разным клиентам под одним аккаунтом AWS? Я сейчас об этом и расскажу.

Тегирование

Для разделения ресурсов и многопользовательского биллинга в AWS используются теги. Тегирование можно приладить ко всему, что угодно. Разного рода трафик, операции ввода-вывода, RDS, SQS, S3 и т.д. можно считать отдельно по тегами. Итак, возьмём главным тег PROJECT и применим его ко всем серивсам, например:
Многопользовательский биллинг в Amazon Web Sevices

S3 Bucket

Отчёты от Amazon будут приходить в отдельный S3 бакет, который нужно создать и подготовить. Создаём бакет и приставляем к нему следующий Bucket Policy:

Bucket Policy

{
	"Version": "2008-10-17",
	"Id": "Policy1335892530063",
	"Statement": [
		{
			"Sid": "Stmt1335892150622",
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::386209384616:root"
			},
			"Action": [
				"s3:GetBucketAcl",
				"s3:GetBucketPolicy"
			],
			"Resource": "arn:aws:s3:::epm-cit_fin_reports"
		},
		{
			"Sid": "Stmt1335892526596",
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::386209384616:root"
			},
			"Action": "s3:PutObject",
			"Resource": "arn:aws:s3:::epm-cit_fin_reports/*"
		}
	]
}  

Эта политика даёт сервису биллинга AWS доступ к вашему бакету, чтоб складывать в него отчёты.

Billing Preferences

Далее идём на страницу Billing Preferences и включаем все сервисы, указав нужный бакет с уже установленной политикой:
Многопользовательский биллинг в Amazon Web Sevices

Cost Allocation Report

Перейдя на страницу настроек отчёта, мы выберем теги, по которым мы будем выставлять счёт нашим клиентам:
Многопользовательский биллинг в Amazon Web Sevices

Отчёты

Итак, со временем в выбранном бакете появятся файлы отчётов в формате CSV. В них будут присутствовать все айтемы, за которые AWS снимает деньги с карты. Те айтемы, которые исходят от сервисов, которые были тегированы, будут помечены. В Excel/OO Calc можно отфильтровать строки по тегам и вывести сумму, которую накрутил отдельный клиент на вашем аккаунте.

Можно сделать что-то такое, чтоб красиво оформлять отчёты:
image

Выводы

В этом небольшом рассказе я дал основные моменты многопользовательского биллинга в AWS. Так легко и просто разделить сервисы между разными пользователями и выставлять им оправданные счета. К сожалению, сейчас нельзя разграничить права доступа между клиентами, чтобы они сами менеджили свои ресурсы под одним аккаунтом, но я думаю, когда-нибудь это станет возможно и обязательно напишу на Хабре как это сделать!

Автор: korjik

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js