Я новичок в / изучая AWS, в настоящее время использую LocalStack
вместо реального живого AWS
.
arn:aws:s3:::my-bucket/path/to/foo.json
- действительный ключ S3
для объекта в недавно созданное S3
ведро. Поскольку корзина только что создана и нетронута, кроме загрузки одного файла, ничто в ней не доступно извне. Я пытаюсь узнать о IAM
, работая с примерами, чтобы создать политику, предоставляющую доступ на чтение к частям корзины S3
.
Я создал следующий файл политики на основе this пример из справки CLI AWS
:
$ cat ./policy
{
"Version": "2020-04-27",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::my-bucket/path/to/foo.json"
]
}
]
}
Из того же связанного примера я попытался создать свою политику с помощью этой команды, которая завершилась неудачно:
$ aws --endpoint-url=http://localhost:4593 iam create-policy --policy-name my-bucket-policy --policy-document file://policy
An error occurred (MalformedPolicyDocument) when calling the CreatePolicy operation: Syntax errors in policy.
Почему эта команда завершилась неудачно или есть способ получить более описательное сообщение об ошибке?
(policy
- это файл в cwd
, где я выполняю aws
Команда CLI)
Насколько я понимаю, в сообщении об ошибке указывается неверное значение JSON, но такие символы, как https://jsonlint.com/, указывают, что текст действителен JSON. Более того, изменения из исходного примера минимальны и могут показаться разумными: "Version"
заменено на сегодняшнюю дату, а "Resource"
ARN
заменено на то, что относится ко мне.