Чтобы использовать интерфейс командной строки AWS, необходимо сначала убедиться, что ваши учетные данные ключа доступа AWS настроены правильно.
Когда у вас есть AWS access_key_id и secret_access_key, вы можете либо вручную добавить их в файл учетных данных, либо использовать команду aws configure, чтобы настроить его на своем локальном компьютере.
В этом руководстве описаны все параметры, доступные в команде aws configure, а также способы управления несколькими профилями:
- Первая настройка учетных данных AWS – профиль по умолчанию
- Каталог ~/.aws – файл конфигурации и учетных данных для профиля по умолчанию
- Изменить учетные данные профиля по умолчанию – подключиться к другой учетной записи AWS
- Создание нескольких профилей AWS – Dev и Prod
- Каталог ~/.aws – файл конфигурации и учетных данных для нескольких профилей (Dev и Prod)
- Переключение между разными профилями AWS с помощью параметра –profile
- Переключение между разными профилями AWS с помощью AWS_PROFILE Env Variable
- Просмотр информации профиля с помощью опции списка
- Изменить настройки и учетные данные по умолчанию FileName и Location
- Просмотр значения параметра конкретного профиля с помощью опции get
- Задайте значение параметра конкретного профиля с помощью опции set
- Добавить новую модель, используя опцию 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
В приведенном выше:
- [None]. Это указывает на то, что в вашей системе не настроено ни одного ключа доступа, ни идентификатора ключа доступа для профиля по умолчанию, а запрашивает новые значения.
- Region Name – это необязательно. Если вы оставите это поле пустым, вы должны указать регион во всех ваших командах CLI AWS с помощью параметра –region, иначе вы получите сообщение об ошибке.
- Output – это необязательно. Если вы оставите это поле пустым, выходные данные всех интерфейсов командной строки AWS будут представлены в формате json. Доступные параметры вывода: JSON, текст, таблица
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
В приведенном выше:
- ~ /.aws/credentials – будет содержать ваши access_key_id и secret_access_key
- ~ /.aws/config – будет содержать информацию о конфигурации без полномочий, такую как регион и выходные данные
- [default] – этот раздел указывает, что эти значения принадлежат профилю по умолчанию. Помните, что вы можете настроить более одного профиля, что позволит вам выполнять команды AWS cli для разных учетных записей AWS, как показано в примерах ниже.
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
Замечания:
- Когда он запрашивает access_key_id и secret_access_key, он покажет вам последние 4 символа из существующих значений в []
- Если вы нажмете ввод без указания какого-либо нового значения, оно просто сохранит существующие значения и ничего не изменит.
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
В приведенном выше:
- [default] – содержит информацию об учетных данных, когда мы только что использовали команду «aws configure» без каких-либо параметров. Это наш профиль по умолчанию. У нас нет названия для этого профиля.
- [dev] – Этот раздел содержит учетные данные профиля разработчика.
- [prod] – Этот раздел содержит учетные данные профиля prod.
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