{"id":84457,"date":"2018-07-31T08:34:19","date_gmt":"2018-07-31T15:34:19","guid":{"rendered":"https:\/\/www.backblaze.com\/blog\/?p=84457"},"modified":"2025-12-11T12:42:06","modified_gmt":"2025-12-11T20:42:06","slug":"b2-application-keys","status":"publish","type":"post","link":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/","title":{"rendered":"What\u2019s New In B2: Application Keys + Java SDK"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-84458 size-full\" title=\"How to Use Cloud Storage Application Keys\" src=\"https:\/\/www.backblaze.com\/blog\/wp-content\/uploads\/2018\/07\/b2_application_keys.jpg\" alt=\"B2 Application Keys\" width=\"1426\" height=\"777\" srcset=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys.jpg 1426w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys-300x163.jpg 300w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys-1024x558.jpg 1024w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys-768x418.jpg 768w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys-560x305.jpg 560w\" sizes=\"auto, (max-width: 1426px) 100vw, 1426px\" \/><\/p>\n<p>It\u2019s been a few months since our last \u201cWhat\u2019s New In B2\u201d blog post, so we wanted to highlight some goings on and also introduce a new B2 feature!<\/p>\n<h2 class=\"b2\">Reintroducing: Java SDK + Compute Partnerships<\/h2>\n<p>We wanted to highlight the official Backblaze <a href=\"https:\/\/github.com\/Backblaze\/b2-sdk-java\" target=\"_blank\" rel=\"noopener noreferrer\">B2 Java SDK<\/a> which can be found in our GitHub repo. The official Java SDK came out almost a year ago, but we\u2019ve been steadily updating it since then with help from the community.<\/p>\n<p>We\u2019ve also announced some <a href=\"https:\/\/www.backblaze.com\/b2\/solutions\/compute.html\" target=\"_blank\" rel=\"noopener noreferrer\">Compute Partnerships<\/a> which give folks all the benefits of Backblaze B2\u2019slow-cost <a href=\"https:\/\/www.backblaze.com\/cloud-storage\">cloud storage<\/a> with the computing capabilities of <a href=\"https:\/\/www.backblaze.com\/b2\/solutions\/compute\/packet.html\" target=\"_blank\" rel=\"noopener noreferrer\">Packet<\/a> and <a href=\"https:\/\/www.backblaze.com\/b2\/solutions\/compute\/servercentral.html\" target=\"_blank\" rel=\"noopener noreferrer\">ServerCentral<\/a>. Backblaze <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/integrations\">B2 Cloud storage<\/a> has directly connected to the compute providers, which offers customers low latency and free data transfers with <a href=\"https:\/\/www.backblaze.com\/cloud-storage\">B2 Cloud Storage<\/a>.<\/p>\n<h3 class=\"b3\">Application Keys<\/h3>\n<p>Application keys give developers more control over who can do what and for how long with their B2 data. We\u2019ve had the <a href=\"https:\/\/www.backblaze.com\/b2\/docs\/application_keys.html\" target=\"_blank\" rel=\"noopener noreferrer\">B2 application key documentation<\/a> out for a while, and we\u2019re ready to take off the \u201ccoming soon\u201d tag.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-84475 size-full\" style=\"text-align: center; margin: 6px auto; max-width: 60%;\" title=\"B2 Cloud Storage Application Keys\" src=\"https:\/\/www.backblaze.com\/blog\/wp-content\/uploads\/2018\/07\/keys.png\" alt=\"row of keys\" width=\"812\" height=\"471\" srcset=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/keys.png 812w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/keys-300x174.png 300w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/keys-768x445.png 768w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/keys-560x325.png 560w\" sizes=\"auto, (max-width: 812px) 100vw, 812px\" \/><\/p>\n<h2 class=\"b4\">What are Application Keys?<\/h2>\n<p>In B2, the main application key has root access to everything and essentially controls every single operation that can be done inside B2. With the introduction of additional application keys, developers now have more flexibility.<\/p>\n<p>Application keys are scoped by three things: 1) what operations the key can do, 2) what path inside of B2 that key can take, and 3) for how long it has the ability to do so. For example you might use a \u201cread-only\u201d key that only has access to one B2 bucket. You\u2019d use that read-only key in situations where you don\u2019t actually need to write things to the bucket, only read or \u201cdisplay\u201d them. Or, you might use a \u201cwrite-only\u201d key which can only write to a specific folder inside of <a href=\"https:\/\/www.backblaze.com\/b2\/docs\/quick_bucket.html\">a bucket<\/a>. All of this leads to cleaner code with segmented operations, essentially acting as firewalls should something go awry.<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2018\/07\/applicationkeys.jpg\" data-rel=\"lightbox-gallery-GfZTHMkW\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-84485 size-full\" style=\"max-width: 82%;\" title=\"\" src=\"https:\/\/www.backblaze.com\/blog\/wp-content\/uploads\/2018\/07\/applicationkeys.jpg\" alt=\"Application keys dialog screenshot\" width=\"882\" height=\"1004\" srcset=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/applicationkeys.jpg 882w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/applicationkeys-264x300.jpg 264w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/applicationkeys-768x874.jpg 768w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/applicationkeys-560x637.jpg 560w\" sizes=\"auto, (max-width: 882px) 100vw, 882px\" \/><\/a><\/p>\n<h3 class=\"b4\">Use Cases for Application Keys<\/h3>\n<p>One example of how you\u2019d use an application key is for a standard backing up operation. If you\u2019re backing up an SQL database, you do not need to use your root level key to do so. Simply creating a key that can only upload to a specified folder is good enough.<\/p>\n<p>Another example is that of a developer building apps inside of a client. That developer would want to restrict access and limit privileges of each client to specific buckets and folders &#8212; usually based on the client that is doing the operation. Using more locked-down application keys limits the possibility that one rogue client can affect the entire system.<\/p>\n<p>A final case could be a Managed Service Provider (MSP) who creates and uses different application key for each client. That way, neither the client nor the MSP can accidentally access the files of another client. In addition, an MSP could have multiple application keys for a given client that define different levels of data access for given groups or individuals within the client\u2019s organization.<\/p>\n<p><strong>Note:<\/strong> If you are using a third party integration with B2, please check with the integration provider for appplication key compatibility.<\/p>\n<h3 class=\"b3\">We Hope You Like It<\/h3>\n<p>Are you one of the people that\u2019s been waiting for application key support? We\u2019d love to hear your use cases so sound off in the comments below with what you\u2019re working on!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It\u2019s been a few months since our last \u201cWhat\u2019s New In B2\u201d blog post, so we wanted to highlight the latest B2 developments, which include new application keys, our Java SDK, and  B2 compute partnerships with Packet and ServerCentral.<\/p>\n","protected":false},"author":13,"featured_media":84458,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[7],"tags":[291,468,373,384],"class_list":["post-84457","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-storage","tag-b2","tag-b2cloud","tag-developer","tag-security","entry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Use B2 Application Keys and Application-Specific Signing Keys<\/title>\n<meta name=\"description\" content=\"Application keys give developers more control over who can do what and for how long with their B2 data. Take a look at how to use them.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use B2 Application Keys and Application-Specific Signing Keys\" \/>\n<meta property=\"og:description\" content=\"Application keys give developers more control over who can do what and for how long with their B2 data. Take a look at how to use them.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/\" \/>\n<meta property=\"og:site_name\" content=\"Backblaze Blog | Cloud Storage &amp; Cloud Backup\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/backblaze\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-31T15:34:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-11T20:42:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1426\" \/>\n\t<meta property=\"og:image:height\" content=\"777\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Yev\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@YevP\" \/>\n<meta name=\"twitter:site\" content=\"@backblaze\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Use B2 Application Keys and Application-Specific Signing Keys","description":"Application keys give developers more control over who can do what and for how long with their B2 data. Take a look at how to use them.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/","og_locale":"en_US","og_type":"article","og_title":"How to Use B2 Application Keys and Application-Specific Signing Keys","og_description":"Application keys give developers more control over who can do what and for how long with their B2 data. Take a look at how to use them.","og_url":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/","og_site_name":"Backblaze Blog | Cloud Storage &amp; Cloud Backup","article_publisher":"https:\/\/www.facebook.com\/backblaze","article_published_time":"2018-07-31T15:34:19+00:00","article_modified_time":"2025-12-11T20:42:06+00:00","og_image":[{"width":1426,"height":777,"url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys.jpg","type":"image\/jpeg"}],"author":"Yev","twitter_card":"summary_large_image","twitter_creator":"@YevP","twitter_site":"@backblaze","twitter_misc":{"Written by":"Yev","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/#article","isPartOf":{"@id":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/"},"author":{"name":"Yev","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/person\/bc6b3436ea3db9f65bbeb917951f5408"},"headline":"What\u2019s New In B2: Application Keys + Java SDK","datePublished":"2018-07-31T15:34:19+00:00","dateModified":"2025-12-11T20:42:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/"},"wordCount":576,"commentCount":6,"publisher":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/#primaryimage"},"thumbnailUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys.jpg","keywords":["B2","B2Cloud","Developer","Security"],"articleSection":["Cloud Storage"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.backblaze.com\/blog\/b2-application-keys\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/","url":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/","name":"How to Use B2 Application Keys and Application-Specific Signing Keys","isPartOf":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/#primaryimage"},"image":{"@id":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/#primaryimage"},"thumbnailUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys.jpg","datePublished":"2018-07-31T15:34:19+00:00","dateModified":"2025-12-11T20:42:06+00:00","description":"Application keys give developers more control over who can do what and for how long with their B2 data. Take a look at how to use them.","breadcrumb":{"@id":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.backblaze.com\/blog\/b2-application-keys\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/#primaryimage","url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys.jpg","contentUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys.jpg","width":1426,"height":777},{"@type":"BreadcrumbList","@id":"https:\/\/www.backblaze.com\/blog\/b2-application-keys\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What\u2019s New In B2: Application Keys + Java SDK"}]},{"@type":"WebSite","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#website","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/","name":"Backblaze Cloud Solutions Blog","description":"Cloud Storage &amp; Cloud Backup","publisher":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization","name":"Backblaze","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.backblaze.com\/blog\/wp-content\/uploads\/2017\/12\/backblaze_icon_transparent.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.backblaze.com\/blog\/wp-content\/uploads\/2017\/12\/backblaze_icon_transparent.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Backblaze"},"image":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/backblaze","https:\/\/x.com\/backblaze","https:\/\/www.youtube.com\/user\/Backblaze","https:\/\/en.wikipedia.org\/wiki\/Backblaze"]},{"@type":"Person","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/person\/bc6b3436ea3db9f65bbeb917951f5408","name":"Yev","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/06\/Yev-Backup-Steward-Circle-Newlogo-150x150.png","url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/06\/Yev-Backup-Steward-Circle-Newlogo-150x150.png","contentUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2021\/06\/Yev-Backup-Steward-Circle-Newlogo-150x150.png","caption":"Yev"},"description":"Yev Pusin is the Head of Communications and Community at Backblaze, which he joined in 2011. Yev has a degree in business and communications from the University of Iowa, where he developed an alliteration affinity. Yev enjoys writing in an amusing way about the \"why\" of things and how decisions are made, so that readers can learn and be entertained all at once. Follow Yev on: Twitter: @YevP | LinkedIn: Yev Pusin","sameAs":["https:\/\/x.com\/YevP"],"url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/author\/yev\/"}]}},"jetpack_featured_media_url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2018\/07\/b2_application_keys.jpg","_links":{"self":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts\/84457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/comments?post=84457"}],"version-history":[{"count":0,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts\/84457\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/media\/84458"}],"wp:attachment":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/media?parent=84457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/categories?post=84457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/tags?post=84457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}