diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc
index a54825c..6336c5d 100644
--- a/buffet/device_registration_info.cc
+++ b/buffet/device_registration_info.cc
@@ -15,6 +15,7 @@
 #include <chromeos/data_encoding.h>
 #include <chromeos/errors/error_codes.h>
 #include <chromeos/http/http_utils.h>
+#include <chromeos/key_value_store.h>
 #include <chromeos/mime_utils.h>
 #include <chromeos/strings/string_utils.h>
 #include <chromeos/url_utils.h>
@@ -58,18 +59,6 @@
 const base::FilePath::CharType kDeviceInfoFilePath[] =
     FILE_PATH_LITERAL("/var/lib/buffet/device_reg_info");
 
-bool GetParamValue(
-    const std::map<std::string, std::string>& params,
-    const std::string& param_name,
-    std::string* param_value) {
-  auto p = params.find(param_name);
-  if (p == params.end())
-    return false;
-
-  *param_value = p->second;
-  return true;
-}
-
 std::pair<std::string, std::string> BuildAuthHeader(
     const std::string& access_token_type,
     const std::string& access_token) {
@@ -155,10 +144,12 @@
 
 DeviceRegistrationInfo::DeviceRegistrationInfo(
     const std::shared_ptr<CommandManager>& command_manager,
-    const std::shared_ptr<StateManager>& state_manager)
+    const std::shared_ptr<StateManager>& state_manager,
+    std::unique_ptr<chromeos::KeyValueStore> config_store)
     : DeviceRegistrationInfo(
         command_manager,
         state_manager,
+        std::move(config_store),
         chromeos::http::Transport::CreateDefault(),
         // TODO(avakulenko): Figure out security implications of storing
         // this data unencrypted.
@@ -168,14 +159,18 @@
 DeviceRegistrationInfo::DeviceRegistrationInfo(
     const std::shared_ptr<CommandManager>& command_manager,
     const std::shared_ptr<StateManager>& state_manager,
+    std::unique_ptr<chromeos::KeyValueStore> config_store,
     const std::shared_ptr<chromeos::http::Transport>& transport,
     const std::shared_ptr<StorageInterface>& storage)
     : transport_{transport},
       storage_{storage},
       command_manager_{command_manager},
-      state_manager_{state_manager} {
+      state_manager_{state_manager},
+      config_store_{std::move(config_store)} {
 }
 
+DeviceRegistrationInfo::~DeviceRegistrationInfo() = default;
+
 std::pair<std::string, std::string>
     DeviceRegistrationInfo::GetAuthorizationHeader() const {
   return BuildAuthHeader("Bearer", access_token_);
@@ -833,4 +828,18 @@
       base::Bind(&IgnoreCloudResult), base::Bind(&IgnoreCloudError));
 }
 
+void DeviceRegistrationInfo::GetParamValue(
+    const std::map<std::string, std::string>& params,
+    const std::string& param_name,
+    std::string* param_value) {
+  auto p = params.find(param_name);
+  if (p != params.end()) {
+    *param_value = p->second;
+    return;
+  }
+
+  bool present = config_store_->GetString(param_name, param_value);
+  CHECK(present) << "No default for parameter " << param_name;
+}
+
 }  // namespace buffet
diff --git a/buffet/device_registration_info.h b/buffet/device_registration_info.h
index 91b897c..714652b 100644
--- a/buffet/device_registration_info.h
+++ b/buffet/device_registration_info.h
@@ -23,6 +23,10 @@
 class Value;
 }  // namespace base
 
+namespace chromeos {
+class KeyValueStore;
+}  // namespace chromeos
+
 namespace buffet {
 
 class CommandManager;
@@ -40,15 +44,19 @@
   // This constructor uses CURL HTTP transport.
   DeviceRegistrationInfo(
       const std::shared_ptr<CommandManager>& command_manager,
-      const std::shared_ptr<StateManager>& state_manager);
+      const std::shared_ptr<StateManager>& state_manager,
+      std::unique_ptr<chromeos::KeyValueStore> config_store);
   // This constructor allows to pass in a custom HTTP transport
   // (mainly for testing).
   DeviceRegistrationInfo(
       const std::shared_ptr<CommandManager>& command_manager,
       const std::shared_ptr<StateManager>& state_manager,
+      std::unique_ptr<chromeos::KeyValueStore> config_store,
       const std::shared_ptr<chromeos::http::Transport>& transport,
       const std::shared_ptr<StorageInterface>& storage);
 
+  ~DeviceRegistrationInfo();
+
   // Returns the authorization HTTP header that can be used to talk
   // to GCD server for authenticated device communication.
   // Make sure ValidateAndRefreshAccessToken() is called before this call.
@@ -155,33 +163,35 @@
 
   void PublishStateUpdates();
 
+  void GetParamValue(
+    const std::map<std::string, std::string>& params,
+    const std::string& param_name,
+    std::string* param_value);
+
   // Builds Cloud API devices collection REST resouce which matches
   // current state of the device including command definitions
   // for all supported commands and current device state.
   std::unique_ptr<base::DictionaryValue> BuildDeviceResource(
       chromeos::ErrorPtr* error);
 
-  // Persistent data. Some of default values for testing purposes are used.
-  // TODO(avakulenko): remove these default values in the future.
-  // http://crbug.com/364692
-  std::string client_id_ = "58855907228.apps.googleusercontent.com";
-  std::string client_secret_ = "eHSAREAHrIqPsHBxCE9zPPBi";
-  std::string api_key_ = "AIzaSyDSq46gG-AxUnC3zoqD9COIPrjolFsMfMA";
+  std::string client_id_;
+  std::string client_secret_;
+  std::string api_key_;
   std::string refresh_token_;
   std::string device_id_;
   std::string device_robot_account_;
-  std::string oauth_url_ = "https://accounts.google.com/o/oauth2/";
-  std::string service_url_ = "https://www.googleapis.com/clouddevices/v1/";
+  std::string oauth_url_;
+  std::string service_url_;
 
   // Transient data
   std::string access_token_;
   base::Time access_token_expiration_;
   std::string ticket_id_;
-  std::string device_kind_ = "vendor";
-  std::string name_ = "coffee_pot";
-  std::string display_name_ = "Coffee Pot";
-  std::string description_ = "Easy to clean";
-  std::string location_ = "Kitchen";
+  std::string device_kind_;
+  std::string name_;
+  std::string display_name_;
+  std::string description_;
+  std::string location_;
 
   // HTTP transport used for communications.
   std::shared_ptr<chromeos::http::Transport> transport_;
@@ -192,6 +202,9 @@
   // Device state manager.
   std::shared_ptr<StateManager> state_manager_;
 
+  // Buffet configuration.
+  std::unique_ptr<chromeos::KeyValueStore> config_store_;
+
   friend class TestHelper;
   DISALLOW_COPY_AND_ASSIGN(DeviceRegistrationInfo);
 };
diff --git a/buffet/device_registration_info_unittest.cc b/buffet/device_registration_info_unittest.cc
index 38ada93..56e294a 100644
--- a/buffet/device_registration_info_unittest.cc
+++ b/buffet/device_registration_info_unittest.cc
@@ -9,6 +9,7 @@
 #include <chromeos/bind_lambda.h>
 #include <chromeos/http/http_request.h>
 #include <chromeos/http/http_transport_fake.h>
+#include <chromeos/key_value_store.h>
 #include <chromeos/mime_utils.h>
 #include <gtest/gtest.h>
 
@@ -169,8 +170,21 @@
     transport_ = std::make_shared<chromeos::http::fake::Transport>();
     command_manager_ = std::make_shared<CommandManager>();
     state_manager_ = std::make_shared<StateManager>(&mock_state_change_queue_);
+    std::unique_ptr<chromeos::KeyValueStore> config_store{
+      new chromeos::KeyValueStore};
+    config_store->SetString("client_id", test_data::kClientId);
+    config_store->SetString("client_secret", test_data::kClientSecret);
+    config_store->SetString("api_key", test_data::kApiKey);
+    config_store->SetString("device_kind",  "vendor");
+    config_store->SetString("name",  "coffee_pot");
+    config_store->SetString("display_name",  "Coffee Pot");
+    config_store->SetString("description",  "Easy to clean");
+    config_store->SetString("location",  "Kitchen");
+    config_store->SetString("oauth_url", test_data::kOAuthURL);
+    config_store->SetString("service_url", test_data::kServiceURL);
     dev_reg_ = std::unique_ptr<DeviceRegistrationInfo>(
         new DeviceRegistrationInfo(command_manager_, state_manager_,
+                                   std::move(config_store),
                                    transport_, storage_));
   }
 
diff --git a/buffet/etc/buffet/buffet.conf b/buffet/etc/buffet/buffet.conf
new file mode 100644
index 0000000..a9b3d31
--- /dev/null
+++ b/buffet/etc/buffet/buffet.conf
@@ -0,0 +1,12 @@
+client_id=58855907228.apps.googleusercontent.com
+client_secret=eHSAREAHrIqPsHBxCE9zPPBi
+api_key=AIzaSyDSq46gG-AxUnC3zoqD9COIPrjolFsMfMA
+
+oauth_url=https://accounts.google.com/o/oauth2/
+service_url=https://www.googleapis.com/clouddevices/v1/
+
+device_kind=vendor
+name=coffee_pot
+display_name=Coffee Pot
+description=Easy to clean
+location=Kitchen
diff --git a/buffet/manager.cc b/buffet/manager.cc
index 13ca49f..35010d4 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -14,6 +14,7 @@
 #include <chromeos/dbus/async_event_sequencer.h>
 #include <chromeos/dbus/exported_object_manager.h>
 #include <chromeos/errors/error.h>
+#include <chromeos/key_value_store.h>
 #include <dbus/bus.h>
 #include <dbus/object_path.h>
 #include <dbus/values_util.h>
@@ -49,8 +50,14 @@
       new StateChangeQueue(kMaxStateChangeQueueSize));
   state_manager_ = std::make_shared<StateManager>(state_change_queue_.get());
   state_manager_->Startup();
+  std::unique_ptr<chromeos::KeyValueStore> config_store{
+    new chromeos::KeyValueStore};
+  config_store->Load(base::FilePath(
+      FILE_PATH_LITERAL("/etc/buffet/buffet.conf")));
   device_info_ = std::unique_ptr<DeviceRegistrationInfo>(
-      new DeviceRegistrationInfo(command_manager_, state_manager_));
+      new DeviceRegistrationInfo(command_manager_,
+                                 state_manager_,
+                                 std::move(config_store)));
   device_info_->Load();
   dbus_adaptor_.RegisterWithDBusObject(&dbus_object_);
   dbus_object_.RegisterAsync(cb);
