ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

15 примеров конфигураций команд AWS для управления несколькими профилями для CLI

15 примеров конфигураций команд AWS для управления несколькими профилями для CLI

Чтобы использовать интерфейс командной строки AWS, необходимо сначала убедиться, что ваши учетные данные ключа доступа AWS настроены правильно.

Когда у вас есть AWS access_key_id и secret_access_key, вы можете либо вручную добавить их в файл учетных данных, либо использовать команду aws configure, чтобы настроить его на своем локальном компьютере.

В этом руководстве описаны все параметры, доступные в команде aws configure, а также способы управления несколькими профилями:

  1. Первая настройка учетных данных AWS – профиль по умолчанию
  2. Каталог ~/.aws – файл конфигурации и учетных данных для профиля по умолчанию
  3. Изменить учетные данные профиля по умолчанию – подключиться к другой учетной записи AWS
  4. Создание нескольких профилей AWS – Dev и Prod
  5. Каталог ~/.aws – файл конфигурации и учетных данных для нескольких профилей (Dev и Prod)
  6. Переключение между разными профилями AWS с помощью параметра –profile
  7. Переключение между разными профилями AWS с помощью AWS_PROFILE Env Variable
  8. Просмотр информации профиля с помощью опции списка
  9. Изменить настройки и учетные данные по умолчанию FileName и Location
  10. Просмотр значения параметра конкретного профиля с помощью опции get
  11. Задайте значение параметра конкретного профиля с помощью опции set
  12. Добавить новую модель, используя опцию add-model

1. Первая настройка учетных данных AWS – профиль по умолчанию

Когда вы выполните команду aws configure без каких-либо аргументов, вы настроите учетные данные aws в качестве своего профиля по умолчанию.

$ aws configure
AWS Access Key ID [None]: AAABBBCCCDDDEEEFFFGG
AWS Secret Access Key [None]: aaabbbcccdddeeefffggghhhiiijjjkkklllmmmn
Default region name [None]: us-east-1
Default output format [None]: text

 

В приведенном выше:

 

2. Каталог ~/.aws – файл конфигурации и учетных данных для профиля по умолчанию

Когда вы в первый раз выполните конфигурацию aws, он создаст каталог ~/.aws, если он еще не вышел из вашего домашнего каталога со следующими двумя файлами:

$ ls -1 ~/.aws
config
credentials

$ cat ~/.aws/config
[default]
region = us-east-1
output = text

$ cat ~/.aws/credentials
[default]
aws_access_key_id = AAABBBCCCDDDEEEFFFGG
aws_secret_access_key = aaabbbcccdddeeefffggghhhiiijjjkkklllmmmn

 

В приведенном выше:

 

3. Изменить учетные данные профиля по умолчанию – подключиться к другой учетной записи AWS

Если вы хотите подключиться к другой учетной записи AWS из CLI, вы можете изменить существующие учетные данные профиля по умолчанию, снова выполнив команду «aws configure».

$ aws configure
AWS Access Key ID [****************FFGG]: ZZZZZZCCCDDDEEEFFFZZ
AWS Secret Access Key [****************mmmn]: zzzzzzcccdddeeefffggghhhiiijjjkkklllmmzz
Default region name [us-east-1]: us-west-2
Default output format [text]: json

$ cat ~/.aws/config
[default]
region = us-west-2
output = json

 

Замечания:

 

4. Создайте несколько профилей AWS – Dev и Prod

Когда вы подключаетесь к нескольким учетным записям AWS, используя только профиль по умолчанию, вы должны продолжать изменять значения access_key_id и secret_access_key, что нецелесообразно.

В этом случае вы можете создать несколько профилей.

Допустим, вам нужно использовать команды CLI AWS для доступа к вашей учетной записи AWS-dev и учетной записи AWS-prod. В этом случае создайте профиль разработчика и профиль продукта, как описано ниже.

Сначала создайте профиль разработчика, как показано ниже. Используйте значения access_key_id и secret_access_key вашей учетной записи AWS-dev:

$ aws configure --profile dev
AWS Access Key ID [None]: DEVBBBCCCDDDEEEFFDEV
AWS Secret Access Key [None]: devbbbcccdddeeefffggghhhiiijjjkkklllmdev
Default region name [None]: us-east-1
Default output format [None]:

 

Затем создайте профиль продукта, как показано ниже. Используйте значения access_key_id и secret_access_key вашей учетной записи AWS-prod:

$ aws configure --profile prod
AWS Access Key ID [None]: PRODBBCCCDDDEEEFPROD
AWS Secret Access Key [None]: prodbbcccdddeeefffggghhhiiijjjkkklllprod
Default region name [None]: us-west-2
Default output format [None]:

5. Каталог ~/.aws – файл конфигурации и учетных данных для нескольких профилей (Dev и Prod)

После добавления новых дополнительных профилей (dev и prod) теперь у нас всего 3 профиля, включая профиль по умолчанию, как показано ниже в файлах конфигурации.

$ cat ~/.aws/config
[default]
region = us-east-1
output = text
[profile dev]
region = us-east-1
[profile prod]
region = us-west-2

$ cat ~/.aws/credentials
[default]
aws_access_key_id = AAABBBCCCDDDEEEFFFGG
aws_secret_access_key = aaabbbcccdddeeefffggghhhiiijjjkkklllmmmn
[dev]
aws_access_key_id = DEVBBBCCCDDDEEEFFDEV
aws_secret_access_key = devbbbcccdddeeefffggghhhiiijjjkkklllmdev
[prod]
aws_access_key_id = PRODBBCCCDDDEEEFPROD
aws_secret_access_key = prodbbcccdddeeefffggghhhiiijjjkkklllprod

 

В приведенном выше:

 

6. Переключение между разными профилями AWS с помощью опции –profile

По умолчанию интерфейс командной строки AWS будет использовать учетные данные из профиля по умолчанию. Например, следующая команда выведет список всех томов EBS с использованием учетных данных профиля по умолчанию.

aws ec2 describe-volumes

 

Если вы хотите подключиться к другой учетной записи AWS. Например, чтобы подключиться к учетной записи AWS-dev, используйте профиль dev, как показано ниже:

aws ec2 describe-volumes --profile dev

 

Следующие будут подключаться к профилю продукта:

aws ec2 describe-volumes --profile prod

 

Обратите внимание, что следующие команды точно такие же. Оба будут использовать профиль по умолчанию:

aws ec2 describe-volumes

aws ec2 describe-volumes --profile default

 

 

В соответствующей заметке, чтобы запустить экземпляр EC2 из CLI, обратитесь к следующему: Как запустить экземпляр Amazon AWS EC2 с UserData из CLI.

 

7. Переключение между разными профилями AWS с помощью AWS_PROFILE Env Variable

Указание параметра профиля во всех ваших CLI может быть немного громоздким. Чтобы избежать этого, вы можете установить свой профиль, используя переменную среды AWS_PROFILE.

Сначала настройте AWS_PROFILE для подключения к учетной записи AWS-dev.

export AWS_PROFILE=dev

 

С этого момента все выполняемые вами команды CLI AWS будут подключаться к учетной записи AWS-dev. Вам больше не нужно указывать опцию –profile.

Следующие команды будут использовать учетные данные профиля dev (не учетные данные по умолчанию), так как мы установили AWS_PROFILE равным dev.

aws ec2 description-объемы
aws ec2 description-instance
aws s3 ls
..

 

Если вы хотите подключиться к учетной записи AWS-prod, просто установите AWS_PROFILE на prod, как показано ниже.

export AWS_PROFILE = prod

 

После вышеизложенного следующие команды будут использовать учетные данные профиля prod для подключения к вашей учетной записи AWS-prod.

aws ec2 describe-volumes
aws ec2 describe-instances
aws s3 ls
..

 

Если вы выбрали dev или prod и хотите подключиться к учетной записи AWS, которая указывает на профиль по умолчанию, у вас есть два варианта.

Вы можете установить AWS_PROFILE по умолчанию, как показано ниже.

export AWS_PROFILE=prod

 

Или вы можете просто удалить переменную среды AWS_PROFILE, которая затем автоматически начнет использовать профиль по умолчанию.

unset AWS_PROFILE

 

После вышеизложенного следующие команды будут использовать учетные данные профиля по умолчанию для подключения к вашей учетной записи AWS-prod.

aws ec2 describe-volumes
aws ec2 describe-instances
aws s3 ls
..

 

8. Просмотр информации профиля, используя опцию списка

Простой способ просмотреть все профили, которые вы настроили в своей системе, – это просмотреть содержимое файлов конфигурации и учетных данных.

cat ~/.aws/config

cat ~/.aws/credentials

 

Опция list в команде aws configure отобразит информацию о текущем профиле, как показано ниже.

$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                             None    None
access_key     ****************FFGG shared-credentials-file
secret_key     ****************mmmn shared-credentials-file
    region                us-east-1      config-file    ~/.aws/config

 

В приведенном выше профиле – первая строка показывает, какой профиль вы используете. В столбце «Value» 1-й строки (то есть для профиля) написано «», это означает, что в данный момент вы подключены к профилю «default».

Если вы измените профиль на «prod», вы увидите, что в столбце «Value» 1-й строки будет указано «prod», как показано ниже.

$ export AWS_PROFILE=prod

$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                     prod           manual    --profile

 

Вы также можете передать имя профиля, чтобы просмотреть информацию о профиле без изменения текущего профиля, как показано ниже.

$ aws configure list --profile dev

 

9. Изменить настройки по умолчанию и учетные данные FileName и расположение

Вместо стандартных ~/.aws/config и ~/.aws/credentials вы также можете использовать другое местоположение и имя файла, используя следующие переменные среды:

AWS_SHARED_CREDENTIALS_FILE – задайте это значение для имени файла, содержащего ваши учетные данные AWS.
AWS_CONFIG_FILE – задайте для этого значения имя файла, содержащего информацию о конфигурации вашего профиля AWS.

Например:

export AWS_SHARED_CREDENTIALS_FILE=/var/tmp/mycredentials

export AWS_CONFIG_FILE=/var/tmp/myconfig

 

После установки указанных выше значений все команды интерфейса командной строки AWS начнут использовать профили и соответствующие учетные данные из файлов в указанном выше местоположении:

aws ec2 describe-volumes
aws ec2 describe-instances
aws s3 ls
..

 

В следующем выводе столбец «Location» последней строки (region) указывает, какой файл конфигурации он использует.

$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                             None    None
access_key     ****************FFGG shared-credentials-file
secret_key     ****************mmmn shared-credentials-file
    region                us-east-1      config-file    /var/tmp/myconfig

 

10. Просмотр значения параметра конкретного профиля с помощью опции get

Если вы хотите просто просмотреть одно значение из файла конфигурации или файла учетных данных, используйте параметр get в командах настройки aws с использованием следующего синтаксиса.

Команда get полезна, если вы что-то пишете в сценарии и хотите получить информацию о профиле внутри вашего сценария оболочки.

aws configure get varname [--profile profile-name]

 

Следующее будет отображать только access_key_id текущего профиля.

$ aws configure get aws_access_key_id
AAABBBCCCDDDEEEFFFGG

 

Вы также можете использовать любой из следующих:

aws configure get aws_access_key_id
aws configure get aws_secret_access_key
aws configure get region
aws configure get output

 

Вы также можете указать имя профиля, как показано ниже:

aws configure get dev.aws_secret_access_key
aws configure get prod.aws_secret_access_key

 

11. Установите значение параметра конкретного профиля, используя set Option

Настройка команд get и set может быть полезна, если вы пишете сценарий оболочки для управления значениями ваших файлов config/credentials.

Синтаксис:

aws configure set varname value [--profile profile-name]

 

Вы можете просто установить значение одного конкретного параметра, как показано ниже.

$ aws configure set region us-east-2

 

Вы можете установить значения любого из следующих параметров:

aws configure set aws_access_key_id NEWABBCCCDDDEEEFPNEW
aws configure set aws_secret_access_key newdbbcccdddeeefffggghhhiiijjjkkklllpnew
aws configure set region us-east-2
aws configure set output json

 

Вы также можете указать имя профиля, как показано ниже:

aws configure set dev.region us-east-2
aws configure set prod.output json

 

12. Добавить новую модель, используя опцию добавления модели

Вы можете добавлять модели на основе информации из файла JSON.

Например, если у вас есть версия CLI AWS, в которой нет Amazon Polly, вы можете переустановить CLI AWS, чтобы получить опрос.

Или вы можете скачать файл модели polly’s и использовать опцию add-model в aws configure, как показано ниже.

aws configure add-model --service-model file:///var/tmp/polly.json

 

Приведенная выше команда создаст каталог ~/.aws/models и создаст следующий подкаталог на основе информации из данного файла json.

ls -l ~/.aws/models/polly/2016-06-10/service-2.json

 

Ниже приведены первые несколько строк файла json, который использовался в приведенном выше примере.

$ head -10 ~/.aws/models/polly/2016-06-10/service-2.json
{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2016-06-10",
    "endpointPrefix":"polly",
    "protocol":"rest-json",
    "serviceFullName":"Amazon Polly",
    "serviceId":"Polly",
    "signatureVersion":"v4",
    "uid":"polly-2016-06-10"

 

Приведенный выше файл такой же, как тот, который мы использовали во время нашей add-model.

diff -w ~/.aws/models/polly/2016-06-10/service-2.json /var/tmp/polly.json

 

Вы также можете указать другое имя службы, передав параметр –service-name, как показано ниже.

aws configure add-model --service-model file:///var/tmp/custom.json --service-name mycustom

 

Выше создаст подкаталог в ~/.aws/models с именем службы, которое вы указали, как показано ниже.

ls -l ~/.aws/models/mycustom/2016-06-10/service-2.json
Exit mobile version