Comment résoudre une erreur S3AccessDenied liée aux journaux d'état CloudWatch de ma passerelle de fichiers ?

Lecture de 5 minute(s)
0

Je souhaite accéder à mon partage de fichiers NFS (Network File System) ou SMB (Server Message Block) sur AWS Storage Gateway. Cependant, les journaux d'état Amazon CloudWatch de ma passerelle de fichiers indiquent une erreur de type S3AccessDenied.

Résolution

Pour résoudre une erreur S3AccessDenied, vous devez examiner les politiques d'autorisation associées à votre partage de fichiers. Ensuite, vous devez ajouter toutes les autorisations nécessaires manquantes. Les autorisations à examiner dépendent de l’étape à laquelle l'erreur Accès refusé survient :

  • Lors de la création du partage de fichiers, celui-ci reste bloqué à l'état Création ou Indisponible
  • Lors de l'écriture des fichiers sur le partage de fichiers
  • Lors de la lecture des fichiers à partir du partage de fichiers

Lors de la création du partage de fichiers, celui-ci reste bloqué à l'état Création ou Indisponible

Le message d'erreur Accès refusé peut survenir lors de la création du partage de fichiers, si celui-ci reste bloqué à l'état Création ou Indisponible. Le journal CloudWatch ressemble alors à l'exemple suivant :

{
"severity": "ERROR",
"bucket": "AWSDOC-EXAMPLE-BUCKET",
"prefix": "",
"roleArn": "arn:aws:iam::123456789:role/service-role/StorageGatewayBucketAccessRolec6914add-b232-40dc-abef-4a9eeaaed8",
"source": "share-ABCD1234",
"type": "S3AccessDenied",
"operation": "s3:ListObjects",
"gateway": "sgw-ABCD1234",
"timestamp": "1597486809991"
}

Vérifiez les paramètres d'autorisation suivants :

1.    Vérifiez le rôle AWS Identity and Access Management (IAM) associé à votre partage de fichiers. Celui-ci doit disposer des autorisations suivantes pour le compartiment Amazon Simple Storage Service (Amazon S3) associé :

  • s3:GetBucketLocation
  • s3:ListBucket

2.    Examinez la politique du compartiment associé. Vérifiez qu'elle ne contient pas de déclaration de refus explicite (« Effet » : « Refuser ») bloquant l'accès requis pour les autorisations suivantes :

  • s3:GetBucketLocation
  • s3:ListBucket

3.    Si l'Amazon Virtual Private Cloud (Amazon VPC) dans lequel se trouve la passerelle de fichiers utilise un point de terminaison de VPC Amazon S3, examinez la politique du point de terminaison. Vérifiez que la politique autorise votre passerelle de fichiers à accéder au compartiment et aux objets S3.

Lors de l'écriture des fichiers sur le partage de fichiers

Si le message d'erreur Accès refusé survient lors de l'écriture des fichiers sur le partage de fichiers, le journal CloudWatch ressemblera à l'exemple suivant :

{
  "severity": "ERROR",
  "bucket": "AWSDOC-EXAMPLE-BUCKET",
  "prefix": "/test1",
  "roleArn": "arn:aws:iam::123456789:role/service-role/StorageGatewayBucketAccessRole0617b6ee-4809-48bc-b646-8dda9e9c32",
  "source": "share-ABCD1234",
  "type": "S3AccessDenied",
  "operation": "S3Upload",
  "gateway": "sgw-ABCD1234",
  "timestamp": "1597493322178"
}

Vérifiez les paramètres d'autorisation suivants :

1.    Examinez le rôle IAM associé à votre partage de fichiers. Vérifiez qu'il dispose des autorisations suivantes pour le compartiment Amazon S3 associé :

  • s3:PutObject
  • s3:PutObjectAcl

2.    Examinez la politique du compartiment associé. Vérifiez qu'elle ne contient pas de déclaration de refus explicite (« Effet » : « Refuser ») bloquant l'accès nécessaire pour les autorisations suivantes :

  • s3:PutObject
  • s3:PutObjectAcl

3.    Si l'Amazon VPC dans lequel se trouve la passerelle de fichiers utilise un point de terminaison de VPC Amazon S3, examinez la politique du point de terminaison du VPC. Vérifiez que la politique autorise votre passerelle de fichiers à accéder au compartiment et aux objets S3.

4.    Si le compartiment S3 associé est chiffré avec AWS Key Management Service (AWS KMS), vérifiez la stratégie de la clé de chiffrement. La stratégie de clé doit accorder les autorisations suivantes au rôle IAM associé à votre partage de fichiers :

  • kms:Decrypt
  • kms:Encrypt
  • kms:ReEncryptFrom
  • kms:ReEncryptTo
  • kms:GenerateDataKey
  • kms:DescribeKey

Vérifiez le rôle IAM associé au partage de fichiers, ainsi que la clé AWS KMS. S'ils appartiennent à des comptes AWS différents, ces autorisations doivent être définies à la fois dans la stratégie de clé et dans la politique du rôle IAM.

Lors de la lecture des fichiers à partir du partage de fichiers

Si le message d'erreur Accès refusé survient lors de la lecture des fichiers à partir du partage de fichiers, le journal CloudWatch ressemblera à l'exemple suivant :

{
  "severity": "ERROR",
  "bucket": "AWSDOC-EXAMPLE-BUCKET",
  "prefix": "/test1",
  "roleArn": "arn:aws:iam::123456789:role/service-role/StorageGatewayBucketAccessRole0617b6ee-4809-48bc-b646-8dda9e9c32",
  "source": "share-ABCD1234",
  "type": "S3AccessDenied",
  "operation": "s3:HeadObject",
  "gateway": "sgw-ABCD12347",
  "timestamp": "1597488260202"
}

Vérifiez les paramètres d'autorisation suivants :

1.    Examinez le rôle IAM associé à votre partage de fichiers. Vérifiez qu'il dispose des autorisations suivantes pour le compartiment Amazon S3 associé :

  • s3:GetObject
  • s3:GetObjectAcl

2.    Examinez la politique du compartiment associé. Vérifiez qu'elle ne contient pas de déclaration de refus explicite (« Effet » : « Refuser ») bloquant l'accès nécessaire pour les autorisations suivantes :

  • s3:GetObject
  • s3:GetObjectAcl

3.    Si l'Amazon VPC dans lequel se trouve la passerelle de fichiers utilise un point de terminaison de VPC Amazon S3, examinez la politique du point de terminaison du VPC. Vérifiez que la politique autorise votre passerelle de fichiers à accéder au compartiment et aux objets S3. 4.    Si le compartiment S3 associé est chiffré avec AWS KMS, vérifiez la stratégie de la clé de chiffrement. La stratégie de clé doit accorder les autorisations suivantes au rôle IAM associé à votre partage de fichiers :

  • kms:Decrypt
  • kms:Encrypt
  • kms:ReEncryptFrom
  • kms:ReEncryptTo
  • kms:GenerateDataKey
  • kms:DescribeKey

Vérifiez le rôle IAM associé au partage de fichiers, ainsi que la clé AWS KMS. S'ils appartiennent à des comptes AWS différents, ces autorisations doivent être définies à la fois dans la stratégie de clé et dans la politique du rôle IAM. Remarque : vous trouverez ci-dessous un exemple de politique IAM. Celle-ci accorde au partage de fichiers les autorisations nécessaires pour répertorier un compartiment, ainsi que pour charger, télécharger et supprimer des objets du compartiment (AWSDOC-EXAMPLE-BUCKET) :

{
  "Version": "2012-10-17",
  "Statement": [{
    "Action": ["s3:GetAccelerateConfiguration", "s3:GetBucketLocation", "s3:GetBucketVersioning", "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads"],
    "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET",
    "Effect": "Allow"
  }, {
    "Action": ["s3:AbortMultipartUpload", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:PutObjectAcl"],
    "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*",
    "Effect": "Allow"
  }]
}

Informations connexes

Comprendre les alarmes CloudWatch

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 8 mois