В процессе переезда с Amazon на Google Cloud переношу постепенно всякие вещи с S3 в Cloud Storage. В какой-то момент потребовалось забирать файл из хранилища при сборке образа. У ansible есть модуль для работы с этим — gc_storage. Все отлично, но одновременно, как всегда…

В обязательных параметрах указаны: gcs_access_key и gcs_secret_key. Пошел в Интернет в поисках того, что это значит, поскольку прежде таких понятий не встречал. Нет ничего. Ищу дальше. В итоге нахожу на StackOverflow ссылку на страницу документации, касающуюся миграции с Amazon S3 на Cloud Storage. Вот она: https://cloud.google.com/storage/docs/migrating#keys.

Отлично, судя по описанию, это именно то, что нужно. Кому лень переходить по ссылке, кратко опишу шаги получения ключей:

  • открыть страницу Cloud Storage Settings
  • выбрать вкладку Interoperability
  • кликнуть Enable interoperability access, если он не был включен до этого
  • кликнуть Create a new key

Полученные ключи и будут искомыми.

Пишу этот текст как раз в момент сборки образа и наткнулся на еще один интересный момент:

google: fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "msg": "unsupported parameter for module: gcs_secret_key"}

Это означает, что нужно очень внимательно следить на документацией, потому что запросто могут переименовать параметры модулей. Раньше было gcs_secret_key, сейчас gs_secret_key.

Вопрос, нахрена было переименовывать параметр, не столь интересен, мало ли какие причины, хотя и странновато это все. А вот по поводу ключей я не могу успокоиться уже пару часов, потому что это совсем странная вещь. Есть стандартные credentials для доступа к сервисам, которые могут быть или в виде отдельного файла, или просто быть дефолтными для инстанса, который запускается на GCE. Зачем потребовалось делать обязательным указание ключей, которые, по идее, должны использоваться для немного других целей, достаточно специфических, и не использовать стандартные способы определения разрешения на доступы к сервисам, вот этого я понять не могу. Но если уж делаете такое, так хоть ссылку дайте на документацию, как эти ключи вообще получить.