¿Cómo puedo conceder a un usuario acceso a la consola Amazon S3 solo a un determinado bucket o carpeta?

3 minutos de lectura
0

Quiero conceder a un usuario acceso a la consola de Amazon Simple Storage Service (Amazon S3) a un bucket o carpeta (prefijo). Sin embargo, no quiero que el usuario vea otros buckets de la cuenta ni otras carpetas dentro del bucket.

Descripción breve

Cambie los permisos de AWS Identity and Access Management (IAM) de un usuario para limitar el acceso del usuario a la consola Amazon S3 a un determinado bucket o carpeta (prefijo):

1.    Elimina el permiso a la acción de 3:ListAllMyBuckets .

2.Agregue permisos a s3:ListBucket solo para el bucket o la carpeta a los que desea que acceda el usuario. Para permitir que el usuario cargue y descargue objetos del bucket o la carpeta, también debe incluir S3:PutObject y s3:GetObject.

Resolución

1.Abra la consola de IAM.

2.Seleccione el usuario o rol de IAM al que desee restringir el acceso.

3.En la pestaña Permisos del usuario o rol de IAM, expanda cada política para ver su documento de política JSON.

4.En el documento de política de JSON, busque la política que concede al usuario permiso para la acción s3:ListAllMyBuckets o para las acciones s3:* (todas las acciones de S3).

5.Modifique la política para eliminar el permiso a la acción s3:ListAllMyBuckets.

**Nota:**Si una política de usuario adjunta permite a s3:* o el acceso de Full Admin con el recurso «*», la política incluye los permisos s3:ListAllMyBuckets . Elimine el recurso «*». A continuación, utilice uno de los siguientes ejemplos de políticas.

6.Agregue permiso a s3:ListBucket solo para el bucket o la carpeta a los que desea que el usuario acceda desde la consola.

El siguiente ejemplo de política es para el acceso a un bucket de S3:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject"
      ],
      "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
    }
  ]
}

La política permite al usuario realizar las acciones de s3:ListBucket, s3:PutObject, y s3:GetObject únicamente en DOC-EXAMPLE-BUCKET.

El siguiente ejemplo de política concede acceso a una carpeta. La política permite al usuario realizar las acciones s3:ListBucket, s3:ListBucketVersions, s3:PutObject, s3:GetObject, y s3:GetObjectVersion solo en folder2 dentro de DOC-EXAMPLE-BUCKET. Utilice s3:ListBucketVersions, s3:GetObjectVersion y s3:GetBucketVersioning solo si el bucket tiene control de versiones y desea que los usuarios tengan acceso a versiones anteriores de los objetos.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowUsersToAccessFolder2Only",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/folder1/folder2/*"
      ]
    },
    {
      "Sid": "AllowListOfBucketOnlyOnPrefix",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:ListBucketVersions"
      ],
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
      ],
      "Condition": {
        "StringLike": {
          "s3:prefix": [
            "folder1/folder2/*"
          ]
        }
      }
    },
    {
      "Sid": "AllowListVersionOnObjectDetails",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketVersioning"
      ],
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
      ]
    }
  ]
}

7.Proporcione al usuario un enlace de consola directo a la carpeta o bucket de S3.

Advertencia: Tras cambiar estos permisos, el usuario recibe un error de acceso denegado cuando accede a la consola de Amazon S3 principal. El usuario debe usar un enlace directo a la consola para acceder al bucket o a la carpeta.

El siguiente enlace es un ejemplo de un enlace directo de consola a un bucket de S3:

https://s3.console.aws.amazon.com/s3/buckets/DOC-EXAMPLE-BUCKET/

El siguiente enlace es un ejemplo de un enlace directo de consola a una carpeta:

https://s3.console.aws.amazon.com/s3/buckets/DOC-EXAMPLE-BUCKET/folder1/folder2/

Información relacionada

Ejemplos de políticas de usuario

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año