Política S3 otimizada para acesso total

1

Eu tenho a seguinte política:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUserToSeeBucketListInTheConsole",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "AllooUserFullAccessToBucket",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::mybucket/*"
            ]
        }
    ]
}

Ao acessar o bucket via Key / Secret (usando o Cloudberry Explorer), posso:

  • Listar todos os intervalos
  • Listar, fazer download, fazer upload e excluir em mybucket , mas somente se isso também está em vigor nas permissões bucket :

OR

Precisoadicionaroutroitemàpolíticaparaacabarcomorequisitodepermissãononíveldointervalo:

{"Sid": "AllooUserFullAccessToBucketPre",
    "Effect": "Allow",
    "Action": [
        "s3:*"
    ],
    "Resource": [
        "arn:aws:s3:::mybucket"
    ]
},

Existe uma sintaxe que permita ter apenas 2 itens (AllowUserToSeeBucketListInTheConsole & um único AllooUserFullAccessToBucket) na política sem exigir a permissão do nível do intervalo?

    
por Gaia 08.11.2016 / 21:10

2 respostas

1

Na minha experiência, tem sido prática bastante comum criar uma política que apenas conceda acesso ao intervalo e ao conteúdo.

Eu costumava usar uma política como essa (não quero permitir que esse usuário substitua as permissões de depósito ou exclua o intervalo etc.):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowS3Browse",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*",
        },
        {
            "Sid": "GrantS3BucketAccess",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:DeleteObject*",
                "s3:Get*",
                "s3:List*",
                "s3:PutBucketAcl",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:RestoreObject"
            ],
            "Resource": [
                "arn:aws:s3:::bucket",
                "arn:aws:s3:::bucket/*"
            ]
        }        
    ]
}
    
por 09.11.2016 / 15:37
0

Tente este:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::mybucket",
                "arn:aws:s3:::mybucket/*"
            ]
        },
        {
            "Effect": "Deny",
            "NotAction": "s3:*",
            "NotResource": [
                "arn:aws:s3:::mybucket",
                "arn:aws:s3:::mybucket/*"
            ]
        }
    ]
}
    
por 18.12.2016 / 23:36