我对Google Cloud自定义映像以及如何/是否存储凭据有疑问。即,如果我自定义VM并通过公共访问权限保存机器映像,是否可能公开凭据?
尤其是,我正在开发一个基于云的应用程序,该应用程序依赖于同时安装了gsutil和docker的“自定义”映像。基本的GCE VM已预先安装了gsutil,但没有具有docker。另一方面,容器优化的操作系统具有docker,但没有具有gsutil。因此,我只是从一个基本的debian映像开始,然后安装docker来获取我需要的东西。
理想情况下,当我分发我的应用程序时,我只想公开显示该自定义图像以供公众使用;这样,用户将不必花费额外的精力来制作自己的图像。
但是,我担心的是,由于我在定制的VM上使用了gsutil,因此将该磁盘持久保存到映像中会无意间保存了一些与我的项目相关的凭据(如果是的话,它们在哪里?)。因此,使用我的图像的任何人也将获得这些凭据。
答案 0 :(得分:1)
我试图重现你的情况。我从一个实例磁盘创建了一个customer image,该实例可以访问我的项目存储桶。然后,我shared为另一个项目中的另一个用户创建图像。用户可以从共享图像中create实例。但是,当他尝试access我的项目存储桶时,遇到了AccessDeniedException错误。
根据此复制品和我的调查,您的凭据不会与图像一起公开。 IAM grant permissions基于赋予用户,组或服务帐户的角色。共享图像无法将其授予他人。
此外,(如下面的Patrick W所述),您在GCE VM实例中运行的任何操作都将使用VM的服务帐户(除非另有说明)。只要服务帐户有权访问存储桶,您的应用程序(包括Docker容器)也将具有访问权限。