Получение ошибки «Недопустимый json» при создании iam-роли с использованием aws cli

#amazon-web-services #aws-cli #assume-role

#amazon-web-services #aws-cli #предположим, что роль

Вопрос:

Я получаю сообщение об ошибке при попытке создать новую роль с помощью aws cli.

Вот сообщение об ошибке.

 An error occurred (MalformedPolicyDocument) when calling the CreateRole operation: This policy contains invalid Json
  

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

 aws iam create-role --path /role-service/ --role-name Test-Role --assume-role-policy-document policy.json 
  

и policy.json является

 {
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "cognito-idp.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "d611c8fd-0fd1-469a-a5ea-b02186042023"
        }
      }
    }
  ]
}
  

Комментарии:

1. Как все прошло? Проблема все еще сохраняется?

Ответ №1:

Вы должны использовать file:// , как описано в:

Поэтому вы можете попробовать следующее, если policy.json в вашем текущем рабочем каталоге:

 aws iam create-role --path /role-service/ --role-name Test-Role --assume-role-policy-document file://policy.json 
  

Комментарии:

1. Но, если файл policy.json находится в определенном каталоге в текущем каталоге, как указать путь?

2. @Venus713 Вы можете указать полный путь к нему. Например, если /tmp/ это возможно file:///tmp/policy.json . Ссылка в ответе содержит больше примеров.

3. aws iam create-role --path /service-role/ --role-name test-role --assume-role-policy-document file:///src/actions/export/server/role-trust-policy.json Я запустил приведенную выше команду и получил следующую ошибку. Error parsing parameter '--assume-role-policy-document': Unable to load paramfile file:///src/actions/export/server/role-trust-policy.json: [Errno 2] No such file or directory: '/src/actions/export/server/role-trust-policy.json'

4. @Venus713 вероятно, у вас неправильный путь. Если /src/actions/export/server/role-trust-policy.json на самом деле существует, команда верна.