Activation de l'accès public
Parfois, les données sont faites pour être partagées. Les compartiments peuvent contenir des ensembles de données ouverts pour des recherches académiques et privées ou des référentiels d'images qui sont utilisés par des applications Web et des réseaux de distribution de contenu. Rendez ces compartiments accessibles en utilisant le groupe Accès public.
Trois rôles IAM peuvent être utilisés pour l'accès public à un compartiment: Administrator, ContentReader et ObjectReader. La différence entre ces deux éléments est que Administrator et ContentReader peuvent répertorier les objets dans un compartiment, ce qui est utile pour les applications qui nécessitent une facilité de listage (par exemple, une interface utilisateur Web) en plus de la lecture des objets. Pour plus d'informations, voir
la documentation de référence IAM.
Si l'option Isolation des identités externes (EII) est définie sur Limited, l'accès public échoue car les requêtes anonymes n'ont pas d'identifiant de compte et ne peuvent pas satisfaire à l'exigence de correspondance des identités.
Utilisation de la console pour définir l'accès public
Tout d'abord, vérifiez que vous disposez d'un compartiment. Si tel n'est pas le cas, suivez le tutoriel d'initiation pour vous familiariser avec la console.
Activation de l'accès public
Avant de pouvoir activer l'accès public à un compartiment, le groupe Accès public doit être activé au niveau du compte. Seul le titulaire du compte ou un utilisateur disposant du rôle Administrateur des groupes d'accès IAM peut modifier ce paramètre. Pour vérifier ou activer cette option, accédez à Gérer > Accès (IAM) > Paramètres et assurez-vous que l'option Accès public est réglée sur Activé. Si ce paramètre au niveau du compte est désactivé, les contrôles au niveau du compartiment décrits ci-dessous n'ont aucun effet.
- Dans le tableau de bord de la console IBM Cloud, sélectionnez Stockage pour afficher votre liste de ressources.
- Sélectionnez ensuite l'instance de service contenant votre compartiment à partir du menu Stockage. Vous accédez ainsi à la console Object Storage.
- Choisissez le compartiment qui doit être accessible publiquement. Gardez à l'esprit que cette politique rend tous les objets d'un compartiment accessibles au téléchargement pour toute personne disposant de l' URL appropriée.
- Sélectionnez l'onglet Autorisations parmi les onglets de navigation du compartiment.
- Faites défiler jusqu'à la section Accès public et cliquez sur Créer une politique d'accès.
- Après avoir lu l'avertissement, choisissez Activer.
- A présent, tous les objets de ce compartiment sont accessibles publiquement.
Désactivation de l'accès public
- Depuis n'importe quelle page de la console d' IBM Cloud, sélectionnez le menu Gérer, puis Accès (IAM).
- Sélectionnez Groupes d'accès dans le menu de navigation.
- Sélectionnez Accès public pour afficher la liste de toutes les règles d'accès public en cours d'utilisation.
- Recherchez la règle correspondant au compartiment dont vous souhaitez renforcer le contrôle d'accès.
- Dans la liste d'actions située à l'extrême droite de l'entrée de règle, sélectionnez Supprimer.
- Confirmez l'opération de suppression. La règle est maintenant retirée du compartiment.
Activation de l'accès public sur des objets individuels
Pour rendre un objet accessible au public via l'API REST, vous pouvez inclure un en-tête x-amz-acl: public-read dans la demande. Le fait de définir cet en-tête permet d'ignorer les contrôles de règle IAM et d'autoriser les demandes HEAD et GET non authentifiées. Pour plus d'informations sur les noeuds finaux, voir Noeuds finaux et emplacements de stockage.
De plus, les données d'identification HMAC permettent d'autoriser un accès public temporaire qui utilise des URL présignées.
Envoi par téléchargement d'un objet public
curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}" \
-H "x-amz-acl: public-read" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: text/plain; charset=utf-8" \
-d "{object-contents}"
Activation de l'accès public à un objet existant
Le fait d'utiliser le paramètre de requête ?acl sans un contenu et l'en-tête x-amz-acl: public-read permet d'autoriser l'accès public à l'objet sans avoir à écraser les données.
curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
-H "x-amz-acl: public-read" \
-H "Authorization: Bearer {token}"
Reprivatisation d'un objet public
Le fait d'utiliser le paramètre de requête ?acl sans un contenu et l'en-tête x-amz-acl: permet de révoquer l'accès public à l'objet sans avoir à écraser les données.
curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
-H "Authorization: Bearer {token}" \
-H "x-amz-acl:"
Sites Web statiques
Bien qu' IBM Cloud Object Storage ne prenne pas en charge l'hébergement automatique de sites web statiques, il est possible de configurer manuellement un serveur web et de l'utiliser pour diffuser du contenu accessible au public hébergé dans un compartiment. Pour plus d'informations, voir la présentation des options statiques du site Web.