Security 您可以限制对Google cloud API凭据的访问吗

Security 您可以限制对Google cloud API凭据的访问吗,security,google-cloud-platform,google-drive-api,Security,Google Cloud Platform,Google Drive Api,可以为Google API凭据设置限制,限制API密钥或令牌对特定电子表格或文件夹的访问,这样一来,这些凭据就不能访问帐户的所有信息,只能访问指定的文件。当然 谷歌云平台拥有强大的工具来管理对各种事物的访问,包括API凭证访问 GCP IAM-云权限和访问权限 您可以创建一个云服务来发送带有密钥的响应,只授权某些服务接收/请求密钥 这是我的建议。通过前端云控制台或命令行工具按照他们的指示为api密钥服务设置策略 以下是您为IAM所做工作的要点: 为您的项目授权各种google API 创建服务帐

可以为Google API凭据设置限制,限制API密钥或令牌对特定电子表格或文件夹的访问,这样一来,这些凭据就不能访问帐户的所有信息,只能访问指定的文件。

当然

谷歌云平台拥有强大的工具来管理对各种事物的访问,包括API凭证访问

GCP IAM-云权限和访问权限 您可以创建一个云服务来发送带有密钥的响应,只授权某些服务接收/请求密钥

这是我的建议。通过前端云控制台或命令行工具按照他们的指示为api密钥服务设置策略

以下是您为IAM所做工作的要点:

  • 为您的项目授权各种google API
  • 创建服务帐户,例如
    MyAPI-key@see-谷歌服务域的文档
  • 对于每个需要服务密钥的应用,请创建另一个服务帐户,即
    my-app@see-用于……的文档
  • 为您为api密钥服务创建的服务帐户授予您选择的访问级别/权限
    • 您正在授权每个应用程序访问api密钥服务
  • 部署一个简单的Flask服务,使用api密钥服务帐户发送api密钥
  • 访问应用程序中的api凭据,这些应用程序已被授予自己的IAM权限
    • 请记住,您在步骤4中授权了您的应用程序
  • 磁盘上 对于存储在磁盘上的凭据,最好在应用程序中按需加密/解密它们

    看这个。如果加密密钥,请继续添加到版本控制。否则,请避免

    秘密经理或伯格拉斯 但是,我建议您使用开源工具或谷歌的托管产品。基本上,您将向secrets manager提供api密钥,存储它,然后在必要时在应用程序中或加载时获取它

    改编自谷歌云文档,几乎一字不差:

    #导入Secret Manager客户端库。
    从google.cloud导入secretmanager_v1beta1作为sm
    #在机密管理器中存储机密的GCP项目。
    project\u id='YOUR\u project\u id'
    #要创建的秘密的ID。
    secret\u id='您的\u secret\u id'
    #创建secretmanager客户端。
    client=sm.SecretManagerServiceClient()
    #从项目生成父名称。
    父项=客户端.project\u路径(project\u id)
    #创建父机密
    secret=client.create\u secret(父级、机密id、{
    “复制”:{
    “自动”:{},
    },
    })
    #添加api密钥
    version=client.add_secret_version(secret.name,{'data':b'my-google-api-credentials'})
    #访问api密钥
    响应=客户端.access\u secret\u版本(version.name)
    #现在您有了解码的api凭据,可以用于身份验证
    有效载荷=响应。有效载荷。数据。解码('UTF-8')
    
    我在上面更改了一些评论,但一定要查看谷歌的文档和他们的评论

    如果你更喜欢冒险,Berglas库非常棒,我可以直接在几个项目中使用它,通过它的本地Go客户端和部署服务中的docker映像。

    当然

    谷歌云平台拥有强大的工具来管理对各种事物的访问,包括API凭证访问

    GCP IAM-云权限和访问权限 您可以创建一个云服务来发送带有密钥的响应,只授权某些服务接收/请求密钥

    这是我的建议。通过前端云控制台或命令行工具按照他们的指示为api密钥服务设置策略

    以下是您为IAM所做工作的要点:

  • 为您的项目授权各种google API
  • 创建服务帐户,例如
    MyAPI-key@see-谷歌服务域的文档
  • 对于每个需要服务密钥的应用,请创建另一个服务帐户,即
    my-app@see-用于……的文档
  • 为您为api密钥服务创建的服务帐户授予您选择的访问级别/权限
    • 您正在授权每个应用程序访问api密钥服务
  • 部署一个简单的Flask服务,使用api密钥服务帐户发送api密钥
  • 访问应用程序中的api凭据,这些应用程序已被授予自己的IAM权限
    • 请记住,您在步骤4中授权了您的应用程序
  • 磁盘上 对于存储在磁盘上的凭据,最好在应用程序中按需加密/解密它们

    看这个。如果加密密钥,请继续添加到版本控制。否则,请避免

    秘密经理或伯格拉斯 但是,我建议您使用开源工具或谷歌的托管产品。基本上,您将向secrets manager提供api密钥,存储它,然后在必要时在应用程序中或加载时获取它

    改编自谷歌云文档,几乎一字不差:

    #导入Secret Manager客户端库。
    从google.cloud导入secretmanager_v1beta1作为sm
    #在机密管理器中存储机密的GCP项目。
    project\u id='YOUR\u project\u id'
    #要创建的秘密的ID。
    secret\u id='您的\u secret\u id'
    #创建secretmanager客户端。
    client=sm.SecretManagerServiceClient()
    #从项目生成父名称。
    父项=客户端.project\u路径(project\u id)
    #创建父机密
    secret=client.create\u secret(父级、机密id、{
    “复制”:{
    “自动”:{},
    },
    })
    #添加api密钥
    version=client.add_secret_version(secret.name,{'data':b'my-google-api-credentials'})
    #访问api密钥
    响应=客户端.access\u secret\u版本(version.name)
    #现在您有了解码的api凭据,可以用于身份验证
    有效载荷=响应。有效载荷。数据。解码('UTF-8')
    
    我在上面更改了一些评论,但一定要查看谷歌的评论