Partage d'objets avec présigné URLs - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Partage d'objets avec présigné URLs

Par défaut, tous les objets Amazon S3 sont privés, seul le propriétaire de l’objet a l’autorisation d’y accéder. Toutefois, le propriétaire de l’objet peut partager des objets avec d’autres personnes en créant une URL présignée. Une URL présignée utilise des informations d’identification de sécurité pour accorder une autorisation limitée dans le temps pour télécharger des objets. L’URL peut être saisie dans un navigateur ou utilisée par un programme pour télécharger l’objet. Les informations d'identification utilisées par l'URL présignée sont celles de l' AWS utilisateur qui a généré l'URL.

Pour des informations générales sur le présigné URLs, consultezTéléchargez et chargez des objets avec une signature préalable URLs.

Vous pouvez créer une URL présignée pour partager un objet sans écrire de code en utilisant la console Amazon S3, AWS Explorer pour Visual Studio (Windows) ou AWS Toolkit for Visual Studio Code. Vous pouvez également générer une URL présignée par programmation en utilisant le AWS Command Line Interface (AWS CLI) ou le. AWS SDKs

Vous pouvez utiliser la console Amazon S3 afin de générer une URL présignée pour partager un objet en suivant ces étapes. Dans la console, le délai d’expiration maximal d’une URL présignée est de 12 heures à compter de la création.

Pour générer une URL présignée à l'aide de la console Amazon S3
  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans le volet de navigation de gauche, choisissez Compartiments à usage général.

  3. Dans la liste des compartiments à usage général, choisissez le nom du compartiment à usage général qui contient l'objet pour lequel vous souhaitez obtenir une URL présignée.

  4. Dans la liste Objects (Objets), sélectionnez l’objet pour lequel vous souhaitez créer une URL présignée.

  5. Dans le menu Actions d’objet, choisissez Partager avec une URL présignée.

  6. Spécifiez la durée de validité souhaitée pour l’URL présignée.

  7. Choisissez Create presigned URL (Créer une URL présignée).

  8. Lorsqu’une confirmation apparaît, l’URL est automatiquement copiée dans votre presse-papier. Un bouton s'affiche pour copier l'URL présignée, si vous devez la copier à nouveau.

L'exemple de AWS CLI commande suivant génère une URL présignée pour partager un objet depuis un compartiment Amazon S3. Lorsque vous utilisez le AWS CLI, le délai d'expiration maximal d'une URL présignée est de 7 jours à compter de sa création. Pour utiliser cet exemple, remplacez user input placeholders par vos propres informations.

aws s3 presign s3://amzn-s3-demo-bucket/mydoc.txt --expires-in 604800

Note

Pour tous Régions AWS ceux lancés après le 20 mars 2019, vous devez spécifier le endpoint-url et Région AWS avec la demande. Pour voir la liste complète des régions et points de terminaison Amazon S3, consultez Régions et points de terminaison dans la Référence générale AWS .

aws s3 presign s3://amzn-s3-demo-bucket/mydoc.txt --expires-in 604800 --region af-south-1 --endpoint-url https://s3.af-south-1.amazonaws.com

Pour plus d’informations, consultez presign dans la Référence des commandes de l’AWS CLI .

Vous pouvez générer une URL présignée par programmation à l'aide du. AWS SDKs

Python

Le script Python ci-dessous génère une URL GET présignée pour partager un objet.

  1. Copiez le contenu du script et enregistrez-le sous forme de fichier « get-only-url.py ». Pour utiliser les exemples suivants, remplacez le user input placeholders par vos propres informations (telles que le nom de votre fichier).

    import argparse import boto3 from botocore.exceptions import ClientError def generate_presigned_url(s3_client, client_method, method_parameters, expires_in): """ Generate a presigned Amazon S3 URL that can be used to perform an action. :param s3_client: A Boto3 Amazon S3 client. :param client_method: The name of the client method that the URL performs. :param method_parameters: The parameters of the specified client method. :param expires_in: The number of seconds the presigned URL is valid for. :return: The presigned URL. """ try: url = s3_client.generate_presigned_url( ClientMethod=client_method, Params=method_parameters, ExpiresIn=expires_in ) except ClientError: print(f"Couldn't get a presigned URL for client method '{client_method}'.") raise return url def main(): parser = argparse.ArgumentParser() parser.add_argument("bucket", help="The name of the bucket.") parser.add_argument( "key", help="The key (path and filename) in the S3 bucket.", ) args = parser.parse_args() # By default, this will use credentials from ~/.aws/credentials s3_client = boto3.client("s3") # The presigned URL is specified to expire in 1000 seconds url = generate_presigned_url( s3_client, "get_object", {"Bucket": args.bucket, "Key": args.key}, 1000 ) print(f"Generated GET presigned URL: {url}") if __name__ == "__main__": main()
  2. Pour générer une URL GET présignée pour partager un fichier, exécutez le script suivant avec le nom de votre compartiment et le chemin d'objet souhaité.

    La commande suivante utilise des exemples de valeurs. Remplacez user input placeholders par vos propres informations.

    python get-only-url.py amzn-s3-demo-bucket <object-path>

    Le script affichera une URL GET présignée :

    Generated GET presigned URL: https://amzn-s3-demo-bucket.s3.amazonaws.com/object.txt?AWS AccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=vjbyNxybdZaMmLa%2ByT372YEAiv4%3D&Expires=1741978496
  3. Vous pouvez télécharger le fichier en utilisant l'URL présignée générée avec curl :

    curl -X GET "generated-presigned-url" -o "path/to/save/file"

Pour d'autres exemples d'utilisation du AWS SDKs pour générer une URL présignée pour partager un objet, consultez Créer une URL présignée pour Amazon S3 à l'aide d'un AWS SDK.

Note

Pour tous Régions AWS ceux lancés après le 20 mars 2019, vous devez spécifier le endpoint-url et Région AWS avec la demande. Pour voir la liste complète des régions et points de terminaison Amazon S3, consultez Régions et points de terminaison dans la Référence générale AWS .

Note

Lorsque vous utilisez le AWS SDKs, l'attribut Tagging doit être un en-tête et non un paramètre de requête. Tous les autres attributs peuvent être transmis en tant que paramètre pour l’URL présignée.

Note

À l'heure actuelle, Visual Studio pour Mac AWS Toolkit for Visual Studio n'est pas compatible.

  1. Installez le AWS Toolkit for Visual Studio en suivant les instructions ci-dessous, Installation et configuration du Toolkit for Visual Studio dans le guide de AWS Toolkit for Visual Studio l'utilisateur.

  2. Connectez-vous à AWS en suivant les étapes ci-dessous, section Connexion à AWS dans le guide de AWS Toolkit for Visual Studio l'utilisateur.

  3. Dans le volet latéral gauche intitulé Explorateur AWS , double-cliquez sur le compartiment contenant votre objet.

  4. Cliquez avec le bouton droit sur l’objet pour lequel vous souhaitez générer une URL présignée, puis sélectionnez Créer une URL présignée.

  5. Dans la fenêtre contextuelle, définissez la date et l’heure d’expiration de votre URL présignée.

  6. La clé d’objet devrait être préremplie en fonction de l’objet que vous avez sélectionné.

  7. Choisissez GET pour spécifier que cette URL présignée est utilisée pour télécharger un objet.

  8. Cliquez sur le bouton Générer.

  9. Pour copier l’URL dans le presse-papiers, choisissez Copier.

  10. Pour utiliser l’URL présignée générée, collez l’URL dans n’importe quel navigateur.

Si vous utilisez Visual Studio Code, vous pouvez générer une URL pré-signée pour partager un objet sans écrire de code grâce à AWS Toolkit for Visual Studio Code. Pour des informations générales, consultez AWS Toolkit for Visual Studio Code dans le Guide de l’utilisateur AWS Toolkit for Visual Studio Code .

Pour obtenir des instructions sur l'installation du AWS Toolkit for Visual Studio Code, reportez-vous à la section Installation du AWS Toolkit for Visual Studio Code dans le guide de AWS Toolkit for Visual Studio Code l'utilisateur.

  1. Connectez-vous à AWS en suivant les étapes ci-dessous, section Connexion à AWS Toolkit for Visual Studio Code dans le guide de AWS Toolkit for Visual Studio Code l'utilisateur.

  2. Sélectionnez le AWS logo sur le panneau de gauche dans Visual Studio Code.

  3. Sous EXPLORER, sélectionnez S3.

  4. Choisissez un compartiment et un fichier, puis ouvrez le menu contextuel (clic droit).

  5. Choisissez Générer une URL présignée, puis définissez le délai d’expiration (en minutes).

  6. Appuyez sur Entrée et l’URL présignée est copiée dans votre presse-papiers.