0
votes

Accès refusé en essayant de faire AWS S3 LS en utilisant AWS CLI

J'ai lancé une instance EC2 et j'ai créé un rôle avec une stratégie d'accès S3 complète pour l'instance. J'ai installé AWSCLI dessus et configuré la clé d'accès de mon utilisateur. Mon utilisateur dispose également d'un accès administrateur et d'une stratégie d'accès S3 complète. Je peux voir les godets de la console AWS, mais lorsque j'essaie d'exécuter AWS S3 LS sur l'instance, il est renvoyé une erreur survenue (accès) lors de l'appel de l'opération ListBuckets: Accès refusé .

Que dois-je faire d'autre pour ajouter la permission au rôle ou à mon utilisateur correctement pour pouvoir lister et synchroniser l'objet entre S3 et l'instance?


7 commentaires

Avez-vous ajouté le rôle au serveur? Si oui, montrez votre rôle.


Exécuter AWS STS Get-Caller-Identity-Identity Pour vérifier que vous utilisez le rôle / des informations d'identification que vous pensez être.


@Guest i Ran AWS STS Get-Caller-Identity-Identity Et il a montré mes informations d'utilisateur. J'ai joint la politique Amazone3fullAccess à mon utilisateur et je pensais que cela suffit à fonctionner. @kenlukas J'ai ajouté le rôle avec la politique AmazonS3FullAccesslaccess à l'instance. Est-ce ce que vous voulez dire par le serveur?


Le seau S3 est-il que vous essayez d'accéder dans le même compte AWS que votre utilisateur?


@Guest Oui Même compte


Puis sans regarder par-dessus votre épaule, je ne sais pas quoi vous dire. Si vous avez attaché la politique à votre utilisateur ou au rôle, vous devriez pouvoir accéder au seau.


Lorsque vous avez couru AWS STS Get-Caller-Identity-Identity Vous avez mentionné qu'il a montré vos informations d'utilisateur. Avez-vous configuré vos informations d'identification pour être un profil par défaut? Pouvez-vous confirmer que la stratégie AmazonS3FullAccess est attachée à l'utilisateur IAM?


5 Réponses :


0
votes

Il semble y avoir une confusion sur quand utiliser et IAM Rôles .

Lorsque vous utilisez une instance Amazon EC2 , la meilleure méthode pour accorder des autorisations est la suivante:

  • Créez un rôle iam et joindre des stratégies pour accorder les autorisations souhaitées
  • Associer le rôle IAM avec l'instance Amazon EC2 . Cela peut être fait au moment du lancement ou ensuite (Paramètres d'actions / instance / joindre le rôle IAM).
  • Toute application exécutée sur l'instance EC2 (y compris l'AWS CLI) recevra désormais automatiquement des informations d'identification. ne pas exécuter AWS configure .

    Si vous souhaitez accorder des autorisations sur votre propre ordinateur (non-EC2) , alors:

    • créer un utilisateur iam (ou utilisez votre existant) et joignez des stratégies pour accorder les autorisations souhaitées
    • sur l'ordinateur, exécutez AWS configure et entrez la clé d'accès et la clé secrète associée à l'utilisateur iam. Cela stockera les informations d'identification dans ~ / .aws / informations d'identification .
    • Toute application exécutée sur cet ordinateur utilisera ensuite les informations d'identification à partir des informations d'identification locales

0 commentaires

0
votes

s'avère que j'ai oublié que je devais faire MFA pour obtenir un jeton d'accès pour pouvoir fonctionner dans S3. Merci pour chaque réponse.


1 commentaires

J'ai essayé de la même chose en créant un profil avec un jeton d'accès, un accès secret et un jeton de session, mais obtenez toujours la même erreur. Y a-t-il une autre façon que nous puissions déboguer?



0
votes

J'ai également couru dans ce problème.

i Ran AWS STS Get-Caller-Identity-identité et remarqua que l'ARN ne correspondait pas à ce que je m'attendais. Il s'avère si vous avez des configurations AWS définies dans votre Bash_profile ou BASHRC , l'AWSCLI pour les utiliser à la place.

J'ai changé les variables d'environnement dans bash_profile et bashrc sur les touches appropriées et tout a commencé à fonctionner.


0 commentaires

0
votes

Créer un utilisateur IAM avec autorisation.

sudo apt install awscli
aws configure
AWS Access Key ID [None]: AKIAxxxxxxxxxxxZI4
AWS Secret Access Key [None]: 8Bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8
Default region name [None]: region (ex. us-east-2)
Default output format [None]: json

aws s3 ls s3://s3testingankit1/


2 commentaires

J'ai essayé votre réponse. Même je reçois un jeton de session et créé un profil et j'ai essayé d'accéder à cela, mais toujours le même problème.


Pour essayer, vous pouvez donner une autorisation complète S3 à votre utilisateur IAM.



1
votes

Ce problème peut survenir non seulement de la CLI mais également lors de l'exécution de S3 API par exemple.

La raison de cette erreur peut provenir de la mauvaise configuration des autorisations d'accès au godet.

pour Exemple avec la configuration ci-dessous, vous donnez des privilèges complets pour effectuer des actions sur les objets internes du godet, mais ne spécifiant aucune action sur le godet lui-même : xxx

Cela conduira au mentionné

... (accès) lorsque vous appelez la liste de liste ...

erreur.

Pour résoudre ce problème, vous devez autoriser l'application d'accéder au godet (1er élément d'instruction) et d'éditer tous les objets à l'intérieur du godet (2ème instruction): xxx

Il existe des configurations plus courtes qui pourraient résoudre le problème, mais celle spécifiée ci-dessus essaie également de maintenir des autorisations de sécurité à grain fin.


0 commentaires