Делегирование прав неосновному аккаунту
Вот у меня есть основой Management Account 8xxxxxxx0080 и неосновной 8xxxxxxx9007. Мне надо дать часть прав из основного аккаунта в неосновной.
Для этого:
- Логинимся в основной Management Account
- Идем в меню в правом верхнем углу, потом → Security Credentials → Roles → Create Role.
- Создаем роль с Custom trust policy, где указываем arn:aws:iam::8xxxxxxx9007:username/username что данная роль предназначена для вот такого аккаунта
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::8xxxxxxx9007:username/username" ] }, "Action": "sts:AssumeRole" } ] }
- втором шаге AddPermissions - ищем что надо, например - route53fullaccess и выбираем эту политику.
- дальше - при доступе к из aws cli надо в файле ~/.aws/config прописать профиль, который будет свитчиться в ту роль. Примерно так:
[profile specialrole] role_arn = arn:aws:iam::8xxxxxxx0080:role/SpecialPrivilegesRole source_profile = default
- aws-cli юзать так:
aws route53 list-hosted-zones --profile specialrole
Найти EC2 Инстанс по IP
Например - есть публичный IP адрес машинки. надо найти где она - в каком регионе и как называется.
Для начала - определим регион. Для этого скачиваем файлик с соотвествием IP-диапазонов и регионов:
wget https://ip-ranges.amazonaws.com/ip-ranges.json
Теперь найдем:
jq -r '.prefixes | .[]' < ip-ranges.json | grep 13.53 -A1
Ну и теперь можем посмотреть машинки в нужном регионе:
AWS_PROFILE=main aws ec2 --region eu-north-1 describe-instances --filter "Name=instance-state-name,Values=running" --query "Reservations[*].Instances[*].[PublicIpAddress, Tags[?Key=='Name'].Value|[0], InstanceId]" --output text
Перезагрузить EC2 Instance
AWS_PROFILE=main aws ec2 --region eu-north-1 reboot-instances --instance-ids i-02d4044d1542ab62e
Создать ключи для деплоя в кластер EKS
Мне нужно создать пользователя и ключи дл ядеплоя в кластер EKS.
Для этого:
- идем в меню справа сверху → Security Credentials
- Слева - Users → Add user
- Создаем пользователя, Credentials type ставим Access key - Programmatic access, никаких политик ему не назначаем. После создания не забываем скаать csv с ключем.
Дальше даем права юзеру в кластере:
kubectl -n kube-system edit configmap aws-auth
- Редактируем mapRoles и добавлем туда пользователя. Внимание! mapRoles - это строка, а не список:
mapUsers: | - userarn: arn:aws:iam::123456789011:user/xxx username: xxx groups: - system: masters
Discussion