Необходимо удалить переменные окружения для aws cli, чтобы работать без флага --profile - PullRequest
0 голосов
/ 14 января 2020

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

Так что, в основном, когда AWS_ACCESS_KEY_ID AND AWS_SECRET_ACCESS_KEY, я не могу запускать такие команды, как aws s3 ls, не передав ему флаг --profile, даже если мой профиль [default]

Кроме того, jus отметить значения переменных окружения и значения в моем файле /.aws/credentials точно такие же. Кроме того, я попытался установить значения AWS_PROFILE и AWS_DEFAULT_PROFILE по умолчанию, надеясь, что если все значения, такие как ключи, секрет и профиль, установлены в переменной окружения, то мне не нужно явно передавать флаг --profile. Отсутствие необходимости явно передавать этот флаг для меня очень важно на данном этапе, потому что, если я запускаю приложение, которое подключается к aws и выбирает учетные данные по умолчанию, простого способа передачи информации профиля этому приложению не существует.

мой файл учетных данных выглядит следующим образом:

[default]
aws_access_key_id = AKIA****
aws_secret_access_key = VpR***

Мой файл конфигурации выглядит следующим образом:

[default]
region = us-west-1
output = json

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

Есть идеи, как решить эту проблему?

1 Ответ

1 голос
/ 14 января 2020

CLI AWS ищет учетные данные, используя ряд поставщиков в определенном порядке. (https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#config -settings-and-priority )

В частности:

Command line options – You can specify --region, --output, and --profile as parameters on the command line.

Environment variables – You can store values in the environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN. If they are present, they are used.

CLI credentials file – This is one of the files that is updated when you run the command aws configure. The file is located at ~/.aws/credentials on Linux or macOS, or at C:\Users\USERNAME\.aws\credentials on Windows. This file can contain the credential details for the default profile and any named profiles.

CLI configuration file – This is another file that is updated when you run the command aws configure. The file is located at ~/.aws/config on Linux or macOS, or at C:\Users\USERNAME\.aws\config on Windows. This file contains the configuration settings for the default profile and any named profiles.

Container credentials – You can associate an IAM role with each of your Amazon Elastic Container Service (Amazon ECS) task definitions. Temporary credentials for that role are then available to that task's containers. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

Instance profile credentials – You can associate an IAM role with each of your Amazon Elastic Compute Cloud (Amazon EC2) instances. Temporary credentials for that role are then available to code running in the instance. The credentials are delivered through the Amazon EC2 metadata service. For more information, see IAM Roles for Amazon EC2 in the Amazon EC2 User Guide for Linux Instances and Using Instance Profiles in the IAM User Guide.

Другой потенциальный вариант для вас будет unset любые конфликтующие переменные в вашем env и положитесь на файл aws учетных данных, чтобы предоставить соответствующие учетные данные для доступа из записи default.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...