Sdílení S3 objektu pomocí (presigned) adresy URL

Aby bylo možné generovat URL adresy pro sdílení objektů uložených v rámci S3 úložiště, je nutné nejdříve provést konfiguraci nástroje aws.

Všechny objekty a buckety jsou ve výchozím nastavení privátní. Presigned URL je odkaz na objekt Ceph S3, který umožňuje komukoli, kdo obdrží adresu URL, načíst objekt S3 pomocí požadavku HTTP GET.

Následující příkaz vygeneruje presigned adresu URL pro určený bucket a klíč, který je platný po dobu jedné hodiny:

aws s3 --profile myprofile --endpoint-url https://s3.cl4.du.cesnet.cz presign s3://bucket/file

Pokud chcete vytvořit pre-signed adresu URL s vlastní životností, která odkazuje na objekt v S3 bucketu, musíte použít:

aws s3 --profile myprofile --endpoint-url https://s3.cl4.du.cesnet.cz presign s3://bucket/file --expires-in 86400

Tímto příkazem se vytvoří URL s expirací jeden den. Parametr „–expires-in“ je v sekundách.

Při vypršení pre-signed adresy URL, uvidíte hlášení o odepření přístupu - přibližně toto:

This XML file does not appear to have any style information associated with it. The document tree is shown below. \\
<Error> \\
<link type="text/css" rel="stylesheet" id="dark-mode-general-link"/> \\
<link type="text/css" rel="stylesheet" id="dark-mode-custom-link"/> \\
<style lang="en" type="text/css" id="dark-mode-custom-style"/> \\
<Code>AccessDenied</Code> \\
<RequestId>tx0000000000000000f8f26-00sd242d-1a2234a7-storage-cl4</RequestId>\\
<HostId>1aasd67-storage-cl4-storage</HostId> \\
</Error> \\

Po vygenerování presigned URL adresy, nemůžete měnit její životnost! Musíte vygenerovat novou podepsanou URL adresu. Platí pro adresy URL aktivní i s prošlou životností.

Maximální nastavení životnosti je 7 dní, v sekundách 604800 (7*24*60*60).
Uvedená maximální hodnota ale závisí na použitém nástroji resp. verzi signatury a se starší verzí (např. nástrojem s3cmd signurl) lze generovat URL i s delší platností (tento postup je ovšem zároveň méně bezpečný).