GCP docker身份验证:如何使用gcloud比仅使用JSON密钥文件更安全?
建议GCP docker身份验证:如何使用gcloud比仅使用JSON密钥文件更安全?,docker,security,google-cloud-platform,Docker,Security,Google Cloud Platform,建议gcloud比使用带有凭据的JSON文件更安全。我不同意。事实上,我要说的恰恰相反。我误解了什么 说: gcloud作为凭证助手(推荐) 配置您的工件注册表凭据,以便直接在gcloud中与Docker一起使用。如果可能,请使用此方法以安全、短期地访问项目资源。此选项仅支持Docker版本18.03或更高版本 其次是: JSON密钥文件 用户管理的密钥对,可以用作服务帐户的凭据。因为凭证是长期存在的,所以它是所有可用身份验证方法中最不安全的选项 JSON密钥文件包含一个私钥和其他让黑客长期访问
gcloud
比使用带有凭据的JSON文件更安全。我不同意。事实上,我要说的恰恰相反。我误解了什么
说:
gcloud
作为凭证助手(推荐)
配置您的工件注册表凭据,以便直接在gcloud中与Docker一起使用。如果可能,请使用此方法以安全、短期地访问项目资源。此选项仅支持Docker版本18.03或更高版本
其次是:
JSON密钥文件
用户管理的密钥对,可以用作服务帐户的凭据。因为凭证是长期存在的,所以它是所有可用身份验证方法中最不安全的选项
JSON密钥文件包含一个私钥和其他让黑客长期访问的东西。王国的钥匙。但在这个实例中,只对工件存储库进行访问,因为JSON文件所针对的服务帐户仅具有这些权限
现在,gcloud
有两个身份验证选项:
gcloud auth激活服务帐户帐户--密钥文件=密钥文件
gcloud身份验证登录
gcloud
和一个服务帐户开始:它在~/.config/gcloud/credentials.db中以未加密的方式存储KEYFILE
。使用JSON文件可以直接归结为docker login-u\u JSON\u key--password stdinhttps://some.server
将KEYFILE
内容存储在~/.docker/config.json
中。因此,将gcloud
与服务帐户一起使用或直接使用JSON文件应该是等效的、安全的。它们都将相同的KEYFILE
未加密存储在一个文件中
gcloud auth login
要求使用浏览器登录,我同意允许gcloud
访问我的整个用户帐户。它不像服务帐户那样局限于工件存储库。查看sqlite3~/.config/gcloud/credentials.db.dump
我可以看到它存储了access\u令牌
,但也存储了refresh\u令牌
。如果黑客可以通过访问和刷新令牌访问~/.config/gcloud/credentials.db
,那么他对系统的拥有程度不就如同他可以访问JSON文件一样吗?事实上,这更糟糕,因为我的用户帐户不仅限于访问工件注册表-现在用户可以访问我的用户可以访问的所有内容
总而言之:gcloud auth login
在安全方面充其量相当于使用JSON文件。但是,由于访问不限于工件注册表,事实上更糟
你不同意吗?