Делегирование прав неосновному аккаунту

Вот у меня есть основой Management Account 8xxxxxxx0080 и неосновной 8xxxxxxx9007. Мне надо дать часть прав из основного аккаунта в неосновной.
Для этого:

  • Логинимся в основной Management Account
  • Идем в меню в правом верхнем углу, потом → Security CredentialsRolesCreate 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
  • Слева - UsersAdd 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
Enter your comment. Wiki syntax is allowed:
 
  • devops/aws.txt
  • Last modified: 2022/11/17 12:24
  • by admin