2015-12-22 2 views
3

Dans la console AWS S3, vous pouvez accorder des droits d'accès à des fichiers pour "Tout utilisateur AWS authentifié" et accorder des autorisations "Ouvrir/Télécharger".Amazon S3 Options de licences CLI

Quelle est la commande CLI pour faire la même chose?

Je connais déjà la commande cp (pour le téléchargement):

aws s3 cp filename s3://bucket/folder/filename 

Mais, je ne peux pas comprendre la configuration de --grants et la documentation n'est pas spécifique avec les valeurs acceptées.

Bonus si vous pouvez fournir le reste des valeurs acceptées pour l'indicateur --grants (par exemple Afficher les autorisations, Modifier les autorisations)?

Est-ce que cela peut être fait récursivement?

EDIT 1 J'ai trouvé ce qui suit, mais il met le fichier à la disposition de TOUS (public). Alors, où est l'URI pour mes groupes? Je suppose que ce n'est pas la même chose que l'ARN du groupe.

aws s3 cp file.txt s3://my-bucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers 

Nous pouvons encore faire:

aws s3 cp file.txt s3://my-bucket/ --grants [email protected] 

qui fournira tous les droits sur le compte associé à cette adresse e-mail.

Toujours pas de miroir "Tout utilisateur AWS authentifié" (je suppose que cela est authentifié dans mon compte).

Répondre

8

Vous devez utiliser le paramètre --acl pour obtenir les autorisations préenregistré:

aws s3 cp local.txt s3://some-bucket/remote.txt --acl authenticated-read 

La documentation aws s3 cp décrit ce que la syntaxe est un raccourci pour la CLI:

--acl (string Définit la liste de contrôle d'accès pour l'objet lorsque la commande est exécutée. Si vous utilisez ce paramètre, vous devez avoir l'autorisation "s3: PutObjectAcl" incluse dans la liste des actions pour votre politique IAM . N'accepte que les valeurs de lecture privée, publique, lecture-écriture-écriture, lecture-authentifiée, lecture-écriture-lecture-écriture, contrôle-propriétaire-plein-contrôle et écriture-remise-écriture.Voir les détails Canned ACL pour

--grants semble permettre ACLs personnalisés peaufinées, mais la syntaxe est plus compliquée, que vous avez découvert.

+0

Existe-t-il un moyen d'utiliser --acl pour autoriser les utilisateurs authentifiés en lecture et en écriture? – Brooks

+0

Je crois que vous devriez utiliser l'option '--grant' comme @helloV décrit, en ajoutant une permission d'écriture. – James

+0

Merci, --ACL authentifié-lire travaillé, ne peut pas croire que je l'ai manqué. – Brooks

3

Vérifiez ce lien: Using High-Level s3 Commands with the AWS Command Line Interface

Vous pouvez vouloir faire:

aws s3 cp filename s3://bucket/folder/filename --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers 

Pour l'option récursive, utilisez --recursive

Lorsque l'option --recursive est utilisé sur un ou répertoire avec cp, mv, ou rm, la commande parcourt l'arborescence de répertoires, y compris tous les sous-répertoires . Ces commandes acceptent également les options --exclude, --include, et --acl comme le fait la commande sync.

+0

Bien sûr que cela le rend public. Je souhaite qu'il soit disponible pour tous les utilisateurs associés à mon compte. – Brooks

+0

ok. J'ai mal interprété votre question. – helloV