#amazon-web-services #amazon-cloudformation #amazon-iam #amazon-efs
#amazon-web-services #aws-cloudformation #amazon-iam #amazon-efs
Вопрос:
У меня есть следующая команда в пользовательских данных моего шаблона cloudformation:
MOUNT_TARGET_IP=$(aws efs describe-mount-targets --file-system-id fs-xxxxxxx --query 'MountTargets[*].IpAddress' --output text)
Также в моем шаблоне у меня есть следующая политика:
MyPolicy:
Type: "AWS::IAM::Policy"
Properties:
PolicyName: !Sub "${AWS::StackName}_bucket_and_mount_targets_policy"
PolicyDocument:
Version: "2012-10-17"
Statement:
-
Effect: "Allow"
Action: "s3:GetObject"
Resource: !Sub "arn:aws:s3:::${AuthorizedKeyBucketName}/authorized_keys"
-
Effect: "Allow"
Action: "s3:ListBucket"
Resource: !Sub "arn:aws:s3:::${AuthorizedKeyBucketName}"
-
Effect: "Allow"
Action: "elasticfilesystem:DescribeMountTargets"
Resource: "arn:aws:elasticfilesystem:us-east-1:xxxxxxxxxx:file-system/fs-xxxxxxx"
Roles:
-
!Ref MyRole
Я не уверен, почему я все еще получаю следующую ошибку:
You must specify a region. You can also configure your region by running "aws configure".
Когда я подключаюсь к экземпляру по ssh, а затем настраиваю регион и ключи доступа вручную, а затем пытаюсь выполнить приведенные выше инструкции, кажется, что все работает просто отлично.
Есть мысли?
Комментарии:
1. Вы используете amazon linux AMI или что-то другое?
Ответ №1:
Для большинства команд командной строки AWS требуется настроить регион, а вы его здесь не настроили.
Вы могли бы изменить свою команду CLI, чтобы указать регион:
MOUNT_TARGET_IP=$(aws efs describe-mount-targets
--file-system-id fs-xxxxxxx
--query 'MountTargets[*].IpAddress'
--region ... # add this
--output text)
Или вы могли бы установить переменную AWS_DEFAULT_REGION:
AWS_DEFAULT_REGION=...
export AWS_DEFAULT_REGION
MOUNT_TARGET_IP=$(aws efs describe-mount-targets --file-system-id fs-xxxxxxx
--query 'MountTargets[*].IpAddress' --output text)
Или вы могли бы запустить свой скрипт aws configure или иным образом указать регион в ~/.aws/config
.
Обратите внимание, что настройка командной строки AWS с помощью ключей доступа не рекомендуется. Вместо этого вам следует использовать роли IAM.