In che modo è possibile risolvere gli errori 403 Access Denied (Accesso negato) dal mio bucket Amazon S3 in cui tutte le risorse provengono dallo stesso account AWS?

5 minuti di lettura
0

Sto cercando di accedere al mio bucket Amazon Simple Storage Service (Amazon S3). Tutte le risorse pertinenti provengono dallo stesso account AWS. Tuttavia, ricevo un errore "403 Accesso negato".

Breve descrizione

Quando esegui una richiesta vietata al tuo bucket Amazon S3, il servizio restituisce un errore "403 Accesso negato". Per risolvere manualmente gli errori 403 Accesso negato, consulta la sezione In che modo è possibile risolvere gli errori 403 Accesso negato da Amazon S3?

Puoi anche utilizzare il runbook AWSSupport-TroubleshootS3AccessSameAccount di AWS Systems Manager per diagnosticare i problemi di accesso negato dal tuo bucket S3. Il runbook valuta il livello di accesso concesso al richiedente sulla tua risorsa S3 per tutte le risorse pertinenti dallo stesso account AWS. Ciò include policy di accesso, utenti e risorse associate alla risorsa S3 e all'utente o ruolo di AWS Identity and Access Management (IAM) specificato nei parametri di input.

Nota: AWSSupport-TroubleshootS3AccessSameAccount non valuta le autorizzazioni per le risorse tra account. Inoltre, il richiedente deve trovarsi nello stesso account AWS del bucket o dell'oggetto S3.

Risoluzione

Passaggi richiesti

Segui questi passaggi per eseguire il runbook AWSSupport-TroubleshootS3AccessSameAccount dalla console di Systems Manager:

1.    Apri la console di Systems Manager.

2.    Nel pannello di navigazione, scegli Automation (Automazione).

3.    Scegli Execute automation (Esegui automazione).

4.    In Scegli documento, scegli la scheda Owned by Amazon (Proprietà di Amazon).

5.    Nella barra di ricerca del documento di automazione, scegli il filtro Document name prefix (Prefisso del nome del documento) dall'elenco a discesa. Quindi, scegli Equals (Uguale a) dall'elenco a discesa e inserisci AWSSupportTroubleshootS3AccessSameAccount. Quindi, premi Enter (Invio).

6.    Seleziona AWSSupport-TroubleshootS3AccessSameAccount.

7.    Sceglш Next (Avanti).

8.    Seleziona Simple execution (Esecuzione semplice).

9.    Per S3ResourceArn, inserisci l'ARN del bucket o dell'oggetto S3 per il quale desideri risolvere i problemi. Ad esempio, per verificare il caricamento o il download di un oggetto:

arn:aws:s3:::bucket_name/key_name

10.    Per S3Action, scegli l'azione S3 per la quale desideri che il runbook valuti il contesto di accesso.

11.    Per RequesterArn, inserisci l'ARN dell'utente o del ruolo IAM per il quale desideri trovare il livello di accesso sulla risorsa S3 specifica. Ad esempio:

arn:aws:iam::123456789012:user/user_name or arn:aws:iam::123456789012:role/example-role

12.    Scegli Execute (Esegui).

Usa lo stato Execution (Esecuzione) per tenere traccia dell'avanzamento del documento. Dopo che lo stato è cambiato in Success (Esito positivo), rivedi i risultati elencati nella sezione Outputs (Output). I risultati includono codici di errore per ogni oggetto valutato.

Nota: per esaminare il risultato di una singola fase della valutazione, scegli lo Step ID (ID passaggio) pertinente in Executed steps (Passaggi eseguiti).

Passaggi facoltativi

I seguenti passaggi sono facoltativi.

Per AutomationAssumeRole, puoi selezionare un ruolo IAM da far assumere a Systems Manager per inviare richieste al bucket. Se lasci vuoto questo campo, Systems Manager utilizzerà l'identità IAM che stai utilizzando per configurare il documento. Per ulteriori informazioni, consulta la sezione Autorizzazioni IAM richieste per AutomationAssumeRole.

Importante: la policy di attendibilità del ruolo IAM che selezioni deve consentire a Systems Manager Automation di assumere il ruolo. Inoltre, il ruolo IAM deve disporre dell'autorizzazione per eseguire il runbook AWSSupport-TroubleshootS3AccessSameAccount.

Se l'ARN IAM è un ruolo e desideri assegnare un nome di sessione specifico, per RequesterRoleSessionName inserisci il nome della sessione.

Se l'oggetto ha più versioni, per S3ObjectVersionId inserisci il VersionId dell'oggetto. Questo parametro consente di specificare la versione dell'oggetto per cui desideri valutare il contesto di accesso.

Se è rilevante per l'operazione, inserisci l'ARN della chiave KMS per KmsKeyArn. Ad esempio, per testare il download di un oggetto crittografato con una chiave KMS.

Per VpcEndpointId, puoi inserire l'ID dell'endpoint Amazon Virtual Private Cloud (Amazon VPC) correlato alla valutazione dell'accesso. Le policy dei bucket di Amazon S3 possono controllare l'accesso ai bucket da specifici endpoint Amazon VPC.

Per ContextKeyList, puoi immettere l'elenco delle chiavi di contesto della condizione e i valori corrispondenti relativi alla valutazione delle policy. Ad esempio, un rifiuto esplicito per un PutObject nella tua policy del bucket:

{"ContextKeyName":"s3:x-amz-server-side-encryption-aws-kms-key-id","ContextKeyValues”:["arn:aws:kms:us-east-1:123456789012:key/abc12345-b1e9-45a3-aa90-39ec93dd9b82”],"ContextKeyType":"string”}

Se desideri che il runbook confronti l'input con una specifica policy di controllo del servizio (SCP) di AWS Organizations, per SCPPolicy, inserisci la SCP. Rimuovi eventuali nuove righe, tabulazioni o spazi bianchi quando inserisci un valore.

Nota: se esegui il runbook dall'account di gestione di Organization, il passaggio precedente non è necessario.

Per Tags (Tag), puoi aggiungere tag alle tue automazioni per classificarle.

Per AWS CLI command and shareable execution link (Comando AWS CLI e collegamento di esecuzione condivisibile), il runbook fornisce un esempio di comando dell'Interfaccia della linea di comando AWS (AWS CLI) per Linux, Unix e macOS X. Il runbook fornisce anche un collegamento condivisibile.

Autorizzazioni IAM richieste per AutomationAssumeRole

Il parametro AutomationAssumeRole richiede determinate operazioni per l'utilizzo del runbook.

La seguente policy di esempio include le operazioni richieste per il ruolo di automazione:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "iam:SimulateCustomPolicy",
        "iam:GetUser",
        "iam:GetPolicy",
        "iam:GetPolicyVersion",
        "iam:ListAttachedUserPolicies",
        "iam:ListUserPolicies",
        "iam:GetUserPolicy",
        "iam:ListGroupsForUser",
        "iam:ListGroupPolicies",
        "iam:GetGroupPolicy",
        "iam:ListAttachedGroupPolicies",
        "iam:GetRole",
        "iam:GetRolePolicy",
        "iam:ListAttachedRolePolicies",
        "iam:ListRolePolicies"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "s3:GetObjectAcl",
        "s3:GetObjectVersionAcl",
        "s3:GetObject",
        "s3:GetObjectVersion"
      ],
      "Resource": "arn:aws:s3:::bucket_name/destination-prefix",
      "Effect": "Allow"
    },
    {
      "Action": [
        "s3:GetBucketPolicy",
        "s3:GetBucketAcl",
        "s3:ListBucket",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation",
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::bucket_name",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ec2:DescribeVpcEndpoints"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "kms:GetKeyPolicy"
      ],
      "Resource": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
      "Effect": "Allow"
    },
    {
      "Action": [
        "organizations:ListPolicies",
        "organizations:DescribePolicy"
      ],
      "Resource": "arn:aws:organizations::aws:policy/service_control_policy/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ssm:GetAutomationExecution",
        "ssm:DescribeAutomationExecutions"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": "ssm:StartAutomationExecution",
      "Resource": "arn:aws:ssm:*:*:automation-definition/AWSSupport-TroubleshootS3AccessSameAccount:*",
      "Effect": "Allow",
      "Sid": "StartAutomationExecution"
    },
    {
      "Action": "access-analyzer:ValidatePolicy",
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}

AWS UFFICIALE
AWS UFFICIALEAggiornata 6 mesi fa