Política de usuario de IAM para RW a carpetas específicas

Política de usuario de IAM para RW a carpetas específicas

Estoy probando la herramienta CloudBerry Drive para conectar depósitos S3 como mi unidad de red. Tengo un depósito y 2 carpetas dentro de él, asumiendo el nombre del depósito como entorno y 2 carpetas como dev y prod. Tengo 3 grupos de usuarios que usarían esto: Admin, Dev y Prod. Administrador: debe tener permisos de lectura y escritura para ambas carpetas. Dev: debe tener acceso de escritura solo a la carpeta de desarrollo. Prod: debe tener acceso de lectura a la carpeta de desarrollo y acceso de escritura a la carpeta de desarrollo.

Sin embargo, estoy confundido con los permisos de IAM. El administrador funciona bien con los permisos de acceso total de S3. Pero las otras 2 cuentas no funcionan bien.

desarrollador

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",
            "s3:DeleteObjectVersion",
            "s3:RestoreObject",
            "s3:PutObjectVersionTagging",
            "s3:PutObjectTagging",
            "s3:DeleteObject"
        ],
        "Resource": "arn:aws:s3:::environment/dev/*"
    }
  ]
}

Con esto debería poder leer y escribir en la carpeta de desarrollo, lo cual no puedo hacer. Usando CloudBerry Drive puedo copiar y pegar un archivo, pero no lo subo a S3. Además, los archivos en S3 se enumeran aquí (lo cual es obligatorio) pero no se puede acceder a ellos (error adjunto).

Pinchar

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "s3:DeleteObjectTagging",
            "s3:DeleteObjectVersion",
            "s3:GetObjectVersionTagging",
            "s3:ReplicateTags",
            "s3:RestoreObject",
            "s3:PutObjectVersionTagging",
            "s3:DeleteObjectVersionTagging",
            "s3:ListMultipartUploadParts",
            "s3:ReplicateObject",
            "s3:GetObjectVersionTorrent",
            "s3:PutObject",
            "s3:GetObjectAcl",
            "s3:GetObject",
            "s3:ObjectOwnerOverrideToBucketOwner",
            "s3:GetObjectTorrent",
            "s3:AbortMultipartUpload",
            "s3:GetObjectVersionAcl",
            "s3:GetObjectTagging",
            "s3:PutObjectTagging",
            "s3:GetObjectVersionForReplication",
            "s3:DeleteObject",
            "s3:ReplicateDelete",
            "s3:GetObjectVersion"
        ],
        "Resource": "arn:aws:s3:::environment/Prod"
    }
  ]
}

Con esto debería poder leer y escribir en la carpeta prod, lo cual no puedo hacer. Usando CloudBerry Drive puedo copiar y pegar un archivo, pero no lo subo a S3.

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "s3:GetObjectVersionTorrent",
            "s3:GetObjectAcl",
            "s3:GetObject",
            "s3:GetObjectTorrent",
            "s3:GetObjectVersionTagging",
            "s3:GetObjectVersionAcl",
            "s3:GetObjectTagging",
            "s3:GetObjectVersionForReplication",
            "s3:GetObjectVersion",
            "s3:ListMultipartUploadParts"
        ],
        "Resource": [
            "arn:aws:s3:::environment"
        ],
        "Condition": {
            "StringLike": {
                "s3:prefix": [
                    "dev/*"
                ]
            }
        }
    }
  ]
}

Los archivos en S3 se enumeran aquí (lo cual es obligatorio) pero no se puede acceder a ellos (error adjunto).

Espero tener claro mi requisito: 1. el usuario dev debe tener acceso R/W a la carpeta dev solamente 2. el usuario prod debe tener acceso R/W a la carpeta prod y acceso R a la carpeta dev 3. Todo esto se realiza usando CloudBerry Drive para S3.

Nota: Busqué mucho en Google y probé casi todo, incluidas algunas políticas que muestran cómo otorgar permiso de escritura a una carpeta de usuario específica. ingrese la descripción de la imagen aquí

Respuesta1

Disculpas por escribir una respuesta retrasada: pero en mi guión, cambie la condición de esta manera:

"Condition":{"StringLike":{"s3:prefix":["home/David/*"]}}

Gracias a ceejayoz, por señalarme este error.

información relacionada