2017-08-08 9 views
0

J'ai un compartiment dans Amazon S3 et je mets les données à l'intérieur en lecture seule pour tout le monde. Cependant, ce n'est pas ce que je veux. Je voudrais que ces données soient accessibles uniquement à partir de mon application mobile et que je le limite au téléchargement par url.Stratégie Amazon Bucket pour l'accès aux applications mobiles uniquement

Est-ce possible? Si oui, comment mettre en œuvre une telle politique de compartiment?

Répondre

2

Traditionnellement, l'accès à une application mobile est fait de cette façon:

  • L'utilisateur mobile app authentifie à votre back-end (via votre application mobile). Cela pourrait être fait avec Amazon Cognito ou avec votre propre base de données de nom d'utilisateur/mot de passe.
  • Votre application examine son identité et détermine les données auxquelles elle est autorisée à accéder. Il utilise ensuite AWS Security Token Service (STS) pour générer des informations d'identification limitées dans le temps qui ont des autorisations limitées (par exemple, l'accès à un répertoire particulier dans un compartiment S3). L'application principale envoie ces informations d'identification à l'application mobile.
  • L'application mobile peut ensuite utiliser les informations d'identification pour effectuer des appels d'API vers AWS (sans avoir à passer par votre serveur principal).

Si vous souhaitez tout utilisateur sur votre application mobile pour accéder au seau S3, l'utilisateur n'a pas besoin d'authentifier dans la première étape - il serait tout simplement votre application mobile a demandé des informations d'identification temporaires.

Aucun des éléments ci-dessus ne nécessite une politique de compartiment. Les autorisations seraient accordées contre les informations d'identification STS, pas le seau.

+0

Merci pour de précieuses informations. – birdcage

0

Il n'existe pas de méthode directe pour définir les stratégies spécifiques au client dans les compartiments S3, mais votre cas d'utilisation peut être réalisé par d'autres moyens. Way 1 - Définissez un référent de requête http dans vos applications mobiles et créez des stratégies sur S3 qui correspondent à cet éditeur. Way 2 - Redirigez toute votre requête via un serveur qui correspond au type de client et ajoute peu de conditions dans la requête. Ces conditions peuvent être gérées dans les stratégies S3. Way 3 - Redirigez toute votre demande d'application via un serveur dont l'adresse IP est mise en liste blanche sur le compartiment S3. Bien que là, vous devez utiliser un serveur proxy ou loadbalancer.

Voici doc officiel S3 pour les politiques et les conditions d'accès - http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

Hope this helps!