AWS Secrets Manger - всегда ошибка, даже если политика верна

У меня есть следующая политика ресурсов для моего AWS Secrets Manager

      {
  "Version" : "2012-10-17",
  "Statement" : [ {
    "Sid" : "policyForSomething",
    "Effect" : "Deny",
          "Condition": {
        "StringNotEquals": {
          "aws:PrincipalArn": [ "arn:aws:sts::**********:assumed-role/####/USERG", 
          "arn:aws:sts::**********:assumed-role/####/USER1",
          "arn:aws:sts::**********:assumed-role/####/USER2", 
          "arn:aws:sts::**********:assumed-role/####/USER3", 
          "arn:aws:sts::**********:assumed-role/####/USER4" ]
        }
      },
    "Action" : "secretsmanager:*",
    "Resource" : "arn:aws:secretsmanager:us-west-2:*******:secret:/*"
  }]
}

Когда я пытаюсь проверить с помощью мастера новой политики, я не вижу ошибок. Но когда я помещаю его в область политики ресурсов для диспетчера секретов, он всегда жалуется: «Эта политика ресурсов содержит синтаксическую ошибку».

Помимо того факта, что «Пользовательский интерфейс AWS и сообщения об ошибках не всегда полезны» - может ли кто-нибудь помочь мне понять, почему это проблема?

1 ответ

Вы должны иметь один из и в своей политике, основанной на ресурсах. Попробуйте использовать with или with.

Кроме того, поскольку вы используете политику на основе ресурсов, Resourceавтоматически и неявно становится секретом вашей политики. (Так что вы можете смело использовать '*' там)

  1. Principal с участием Allow:

             {
         "Version": "2012-10-17",
         "Statement": [{
             "Sid": "policyForSomething",
             "Effect": "Allow",
             "Principal": {
                 "AWS": [
                     "arn:aws:sts::**********:assumed-role/####/USERG",
                     "arn:aws:sts::**********:assumed-role/####/USER1",
                     "arn:aws:sts::**********:assumed-role/####/USER2",
                     "arn:aws:sts::**********:assumed-role/####/USER3",
                     "arn:aws:sts::**********:assumed-role/####/USER4"
                 ]
             },
             "Action": "secretsmanager:*",
             "Resource": "*"
         }]
     }
    
  2. NotPrincipal с участием Deny:

             {
         "Version": "2012-10-17",
         "Statement": [{
             "Sid": "policyForSomething",
             "Effect": "Deny",
             "NotPrincipal": {
                 "AWS": [
                     "arn:aws:sts::**********:assumed-role/####/USERG",
                     "arn:aws:sts::**********:assumed-role/####/USER1",
                     "arn:aws:sts::**********:assumed-role/####/USER2",
                     "arn:aws:sts::**********:assumed-role/####/USER3",
                     "arn:aws:sts::**********:assumed-role/####/USER4"
                 ]
             },
             "Action": "secretsmanager:*",
             "Resource": "*"
         }]
     }
    

Справка:

Другие вопросы по тегам