amazon-web-services - with - s3 glacier




A ação S3 Bucket não se aplica a nenhum recurso (4)

A ação de erro não se aplica a nenhum recurso na instrução

Simplesmente significa que a ação (que você escreveu na política) não se aplica ao recurso. Eu estava tentando tornar público meu balde para que qualquer pessoa pudesse baixar do meu balde. Eu estava recebendo erro até remover ("s3: ListBucket") da minha declaração.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"        
      ],
      "Principal": {
        "AWS": "[IAM ARN HERE]"
      },
      "Resource": "arn:aws:s3:::my-bucket-name"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject", 
        "s3:PutObject"
      ],
      "Principal": {
        "AWS": "[IAM ARN HERE]"
      },
      "Resource": "arn:aws:s3:::my-bucket-name/*"
    }
  ]
}

Como o depósito de lista não se aplica dentro do intervalo, portanto, excluindo essa política de ação funcionou bem.

Estou seguindo as instruções desta resposta para gerar a seguinte política de bucket do S3:

{
  "Id": "Policy1495981680273",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1495981517155",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::surplace-audio",
      "Principal": "*"
    }
  ]
}

Eu recebo o seguinte erro:

A ação não se aplica a nenhum recurso na instrução

O que estou perdendo da minha política?


Apenas corri para este problema e encontrei uma solução mais curta para aqueles que querem ter ListBucket e GetObject na mesma política.

{
  "Id": "Policyxxxx961",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmtxxxxx4365",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": [
          "arn:aws:s3:::bucket-name",
          "arn:aws:s3:::bucket-name/*"
      ],
      "Principal": "*"
    }
  ]
}

De documentos do IAM, http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Action

Alguns serviços não permitem especificar ações para recursos individuais; em vez disso, quaisquer ações que você listar no elemento Action ou NotAction se aplicam a todos os recursos nesse serviço. Nesses casos, você usa o curinga * no elemento Recurso.

Com essa informação, o recurso deve ter um valor como abaixo:

"Resource": "arn:aws:s3:::surplace-audio/*"

Eu também tenho enfrentado o problema semelhante ao criar o balde

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::mrt9949"
            ]
        }
    ]
}

Eu mudei o código acima para

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::mrt9949/*"
            ]
        }
    ]
}

adicione / * ao nome do seu intervalo para resolver o problema

Aqui meu nome de depósito é mrt9949







amazon-s3