Come posso concedere a un utente l'accesso alla console Amazon S3 solo a un determinato bucket o cartella?

3 minuti di lettura
0

Desidero concedere a un utente l’accesso console Amazon Simple Storage Service (Amazon S3) a un bucket o a una cartella (prefisso). Tuttavia, non voglio che l'utente veda altri bucket nell'account o altre cartelle all'interno del bucket.

Breve descrizione

Modifica le autorizzazioni di AWS Identity and Access Management (IAM) di un utente per limitare l'accesso della console Amazon S3 dell'utente a un determinato bucket o cartella (prefisso):

  1. Rimuovi l'autorizzazione all'azione s3:ListAllMyBuckets.

  2. Aggiungi l'autorizzazione a s3:ListBucket solo per il bucket o la cartella a cui desideri che l'utente acceda. Per consentire all'utente di caricare e scaricare oggetti dal bucket o dalla cartella, devi includere anche s3:PutObject e s3:GetObject.

Risoluzione

  1. Apri la console IAM.

  2. Seleziona l'utente o il ruolo IAM a cui desideri limitare l'accesso.

  3. Nella scheda Autorizzazioni dell'utente o del ruolo IAM, espandi ogni policy per visualizzare il documento relativo alla politica JSON.

  4. Nel documento sulla politica JSON, cerca la politica che concede all'utente l'autorizzazione all'azione s3:ListAllMyBuckets o alle azioni **s3:\ *** (tutte le azioni S3).

  5. Modifica la politica per rimuovere l'autorizzazione all'azione s3:ListAllMyBuckets.

Nota: Se una politica utente allegata consente a s3:* o l'accesso completo da amministratore con la risorsa “\ *”, la politica include le autorizzazioni s3:ListAllMyBuckets. Rimuove la risorsa “\ *”. Quindi, utilizza uno dei seguenti criteri di esempio.

  1. Aggiungi l'autorizzazione a s3:ListBucket solo per il bucket o la cartella a cui desideri che l'utente acceda dalla console.

La seguente politica di esempio riguarda l'accesso a un bucket 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 policy consente all'utente di eseguire le azioni s3:ListBucket, s3:PutObject e s3:GetObject solo su DOC-EXAMPLE-BUCKET.

La politica di esempio seguente concede l'accesso a una cartella. La policy consente all'utente di eseguire le azioni s3:ListBucket, s3:ListBucketVersions, s3:PutObject, s3:GetObject e s3:GetObjectVersion solo su folder2 all'interno di DOC-EXAMPLE-BUCKET. Usa s3:ListBucketVersions, **s3:getObjectVersion ** e s3:getBucketVersioning solo se il bucket dispone del controllo delle versioni e desideri che gli utenti abbiano accesso alle versioni precedenti degli oggetti.

{
  "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"
      ]
    }
  ]
}
  1. Fornisci all'utente un collegamento diretto della console al bucket o alla cartella S3.

Avvertenza: Dopo aver modificato queste autorizzazioni, l'utente riceve un errore di accesso negato quando accede alla console principale di Amazon S3. L'utente deve utilizzare un collegamento diretto alla console per accedere al bucket o alla cartella.

Il seguente link è un esempio di collegamento diretto della console a un bucket S3:

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

Il collegamento seguente è un esempio di collegamento diretto della console a una cartella:

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

Informazioni correlate

Esempi di policy per gli utenti

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa