{"id":17225,"date":"2020-10-02T11:05:00","date_gmt":"2020-10-02T09:05:00","guid":{"rendered":"https:\/\/www.sysbus.eu\/?p=17225"},"modified":"2020-09-28T11:31:33","modified_gmt":"2020-09-28T09:31:33","slug":"externen-mit-wenig-aufwand-einen-sicheren-upload-auf-ihren-amazon-s3-bucket-ermoeglichen","status":"publish","type":"post","link":"https:\/\/www.sysbus.eu\/?p=17225","title":{"rendered":"Externen mit wenig Aufwand einen sicheren Upload auf Ihren Amazon S3 Bucket erm\u00f6glichen"},"content":{"rendered":"\n<p>Bisweilen m\u00fcssen Unternehmen ihren Gesch\u00e4ftspartnern gezielt wichtige Informationen zur Verf\u00fcgung stellen, so etwa bei Projekten. Dies muss nicht nur sicher, sondern auch einfach erfolgen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"580\" src=\"https:\/\/www.sysbus.eu\/wp-content\/uploads\/2020\/09\/200925_Screenshot-002-1024x580.png\" alt=\"\" class=\"wp-image-17226\" srcset=\"https:\/\/www.sysbus.eu\/wp-content\/uploads\/2020\/09\/200925_Screenshot-002-1024x580.png 1024w, https:\/\/www.sysbus.eu\/wp-content\/uploads\/2020\/09\/200925_Screenshot-002-300x170.png 300w, https:\/\/www.sysbus.eu\/wp-content\/uploads\/2020\/09\/200925_Screenshot-002-768x435.png 768w, https:\/\/www.sysbus.eu\/wp-content\/uploads\/2020\/09\/200925_Screenshot-002.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Screenshot: AWS<\/figcaption><\/figure>\n\n\n\n<!--more-->\n\n\n\n<p>F\u00fcr den Upload von Objekten durch einen externen Gesch\u00e4ftspartner in den eigenen Amazon S3 Bucket sind vorsignierte URLs ein bisher wenig bekannter, aber programmatischer Weg. Der Vorteil des Ansatzes ist, dass die Partner kein eigenes AWS-Konto ben\u00f6tigen. Zum Erstellen einer solchen vorsignierten URL geben Sie den Bucket-Namen, einen Objektprefix (<em>object key<\/em>), eine HTTP-Methode (PUT f\u00fcr das Hochladen von Objekten) sowie ein Datum und eine Uhrzeit f\u00fcr den Ablauf an. Die Erstellung dieser URLs funktioniert ebenso mit serverseitig-verschl\u00fcsselten Amazon S3 Buckets. Dabei haben Sie die Wahl zwischen der Verschl\u00fcsselung durch den AWS Key Management Service (SSE-KMS) oder Amazon S3 (SSE-S3).<\/p>\n\n\n\n<p>F\u00fcr die Erstellung einer vorab signierten URL mit serverseitiger Verschl\u00fcsselung verwenden Sie die Signaturversion 4 (SigV4). Dabei aktivieren Sie SigV4 durch die AWS SDK oder AWS CLI. Das folgende Code-Beispiel zeigt eine explizite Konfiguration \u00fcber den Amazon S3 Client (AWS SDK for Java \u2013 1.9.31).<\/p>\n\n\n\n<p class=\"has-black-color has-text-color\">AmazonS3Client s3 = <span class=\"has-inline-color has-vivid-cyan-blue-color\">new AmazonS3Client(<\/span><\/p>\n\n\n<p style=\"padding-left: 160px;\"><span style=\"color: #3366ff;\">new<\/span><\/p>\n\n\n<p><span class=\"has-inline-color has-vivid-cyan-blue-color\">ClientConfiguration<\/span>().<span class=\"has-inline-color has-vivid-green-cyan-color\">withSignerOverride<\/span>(&#8222;<span class=\"has-inline-color has-vivid-green-cyan-color\">AWSS3V4SignerType<\/span>&#8222;));<\/p>\n\n\n\n<p>Anschlie\u00dfend k\u00f6nnen Sie eine vorsignierte PUT-URL mit SSE-KMS generieren. Dabei wird Amazon S3 den Standard KMS Master Key verwenden, der automatisch f\u00fcr Sie erstellt wird.<\/p>\n\n\n\n<p>String myExistingBucket <span class=\"has-inline-color has-vivid-red-color\">= &#8230;<\/span><span class=\"has-inline-color has-cyan-bluish-gray-color\"> \/\/ an existing bucket<\/span><\/p>\n\n\n\n<p>String myKey <span class=\"has-inline-color has-vivid-red-color\">= &#8230;<\/span>\u00a0 \u00a0 <span class=\"has-inline-color has-cyan-bluish-gray-color\">\/\/ target S3 key<\/span><\/p>\n\n\n\n<p><span class=\"has-inline-color has-cyan-bluish-gray-color\">\/\/ Generieren Sie eine vorsignierte PUT-URL zur Verwendung mit SSE-KMS<\/span><\/p>\n\n\n\n<p>GeneratePresignedUrlRequest genreq = <span class=\"has-inline-color has-vivid-cyan-blue-color\">new GeneratePresignedUrlRequest<\/span>(<\/p>\n\n\n<p style=\"padding-left: 160px;\">myExistingBucket, myKey, HttpMethod.PUT)<\/p>\n\n<p style=\"padding-left: 160px;\"><span style=\"color: #008080;\"><span style=\"color: #000000;\">.<\/span>withSSEAlgorithm<\/span>(SSEAlgorithm.KMS.<span style=\"color: #008000;\">getAlgorithm<\/span>());<\/p>\n\n\n<p>URL puturl = <span class=\"has-inline-color has-vivid-green-cyan-color\">s3.generatePresignedUrl<\/span>(genreq);<\/p>\n\n\n\n<p>System.out.<span class=\"has-inline-color has-vivid-green-cyan-color\">println(&#8222;Presigned PUT URL with SSE-KMS<\/span>: &#8220; + puturl);<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bisweilen m\u00fcssen Unternehmen ihren Gesch\u00e4ftspartnern gezielt wichtige Informationen zur Verf\u00fcgung stellen, so etwa bei Projekten. Dies muss nicht nur sicher, sondern auch einfach erfolgen.<\/p>\n","protected":false},"author":1,"featured_media":17226,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[22,6],"tags":[2073,4135,11273,5346],"class_list":["post-17225","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-tipps","tag-amazon","tag-aws","tag-bucket","tag-s3"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=\/wp\/v2\/posts\/17225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=17225"}],"version-history":[{"count":1,"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=\/wp\/v2\/posts\/17225\/revisions"}],"predecessor-version":[{"id":17228,"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=\/wp\/v2\/posts\/17225\/revisions\/17228"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=\/wp\/v2\/media\/17226"}],"wp:attachment":[{"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sysbus.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}