Comment puis-je résoudre une erreur S3AccessDenied à partir des journaux d'état CloudWatch de ma passerelle de fichiers ?

Date de la dernière mise à jour : 25/09/2020

J'essaie d'accéder à mon partage de fichiers NFS (Network File System) ou SMB (Server Message Block) sur AWS Storage Gateway. Cependant, les journaux d'état de ma passerelle de fichiers d'Amazon CloudWatch affichent une erreur S3AccessDenied. Comment puis-je résoudre ce problème ?

Solution

Pour résoudre une erreur S3AccessDenied, vous devez examiner les stratégies d'autorisations associées à votre partage de fichiers. Ensuite, vous devez ajouter toutes les autorisations requises manquantes. Identifiez les autorisations que vous devez examiner en fonction du moment où vous obtenez l'erreur Accès refusé :

  • Création du partage de fichiers, et partage de fichiers bloqué à l'état Création ou Non disponible
  • Écriture de fichiers dans le partage de fichiers
  • Lecture de fichiers à partir du partage de fichiers

Création du partage de fichiers, et partage de fichiers bloqué à l'état Création ou Non disponible

Si vous obtenez l'erreur Accès refusé lors de la création du partage de fichiers et que le partage de fichiers est bloqué à l'état Création ou Non disponible, le journal CloudWatch est similaire à ce qui suit :

{
"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"
}

Passez en revue les paramètres d'autorisations suivants :

1.    Vérifiez le rôle AWS Identity and Access Management (IAM) associé à votre partage de fichiers pour confirmer qu'il dispose des autorisations suivantes pour le compartiment Amazon Simple Storage Service (Amazon S3) associé :

  • s3:GetBucketLocation
  • s3:ListBucket

2.    Passez en revue la stratégie de compartiment du compartiment associé pour confirmer qu'il n'y a pas d'instruction de refus explicite (« Effet » : « Deny ») qui bloque l'accès nécessaire aux autorisations suivantes :

  • s3:GetBucketLocation
  • s3:ListBucket

3.    Si Amazon Virtual Private Cloud (Amazon VPC) dans lequel se trouve la passerelle de fichiers utilise un point de terminaison d'un VPC pour Amazon S3, vérifiez la stratégie de point de terminaison d'un VPC. Confirmez que la stratégie autorise votre passerelle de fichiers à accéder au compartiment et aux objets S3.

Écriture de fichiers dans le partage de fichiers

Si vous obtenez l'erreur Accès refusé lors de l'écriture de fichiers sur le partage de fichiers, le journal CloudWatch est similaire à ce qui suit :

{
"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"
}

Passez en revue les paramètres d'autorisations suivants :

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

  • s3:PutObject
  • s3:PutObjectAcl

2.    Passez en revue la stratégie de compartiment du compartiment associé pour confirmer qu'il n'existe aucune instruction de refus explicite (« Effet » : « Deny ») qui bloque l'accès dont vous avez besoin 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 d'un VPC pour Amazon S3, vérifiez la stratégie de point de terminaison d'un VPC. Confirmez que la stratégie 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:ReEncrypt
  • kms:GenerateDataKey
  • kms:DescribeKey*

Si le rôle IAM de votre partage de fichiers et la clé AWS KMS appartiennent à des comptes AWS différents, ces autorisations doivent être définies à la fois dans la stratégie de clé et dans la stratégie du rôle IAM.

Lecture de fichiers à partir du partage de fichiers

Si vous obtenez l'erreur Accès refusé lors de la lecture de fichiers à partir du partage de fichiers, le journal CloudWatch est similaire à ce qui suit :

{
"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"
}

Passez en revue les paramètres d'autorisations suivants :

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

  • s3:GetObject
  • s3:GetObjectAcl

2.    Passez en revue la stratégie de compartiment du compartiment associé pour confirmer qu'il n'existe aucune instruction de refus explicite (« Effet » : « Deny ») qui bloque l'accès dont vous avez besoin 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 d'un VPC pour Amazon S3, vérifiez la stratégie de point de terminaison d'un VPC. Confirmez que la stratégie 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:ReEncrypt
  • kms:GenerateDataKey
  • kms:DescribeKey*

Si le rôle IAM de votre partage de fichiers et la clé AWS KMS appartiennent à des comptes AWS différents, ces autorisations doivent être définies à la fois dans la stratégie de clé et dans la stratégie du rôle IAM.

Remarque : l'exemple de stratégie IAM suivant accorde à votre partage de fichiers les autorisations requises pour répertorier un compartiment, ainsi que pour transférer, 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"
}
]
}

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?