组织权限限制示例

您可以使用组织权限限制来控制来自网络的出站流量,以便用户和工作负载只能访问允许的Google Cloud 组织。这些限制有助于防止数据渗漏到未经授权的外部环境。以下示例展示了如何针对常见场景(例如单个或多个组织、Cloud Storage 读取权限和上传请求)配置组织权限限制请求标头。

仅限贵组织访问

在此示例中,组织 A 的 Google Cloud 管理员和出站代理管理员共同协作,限制员工只能访问其Google Cloud 组织中的资源。

如需仅限贵组织访问,请执行以下操作:

  1. 作为 Google Cloud 管理员,如需获取组织 A 的 Google Cloud 组织 ID,请使用 gcloud organizations list 命令:

        gcloud organizations list
    
    

    以下是示例输出:

        DISPLAY_NAME: Organization A
        ID: 123456789
        DIRECTORY_CUSTOMER_ID: a1b2c3d4
    
  2. 作为出站代理管理员,在从 Google Cloud管理员处获取组织 ID 后,请按以下格式编写标头值的 JSON 表示法:

     {
     "resources": ["organizations/123456789"],
      "options": "strict"
     }
    
  3. 作为出站代理管理员,请按照 RFC 4648 第 5 节规范对请求标头的值进行编码。

    例如,如果标头值的 JSON 表示法存储在 authorized_orgs.json 文件中,如需对该文件进行编码,请运行以下 basenc 命令:

     $ cat authorized_orgs.json | basenc --base64url -w0
     ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiXSwKICJvcHRpb25zIjogInN0cmljdCIKfQo
    
  4. 作为出站流量代理管理员,请配置出站流量代理,以便在源自组织 A 中受管设备的所有请求中插入以下请求标头:

     X-Goog-Allowed-Resources: ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiXSwKICJvcHRpb25zIjogInN0cmljdCIKfQo
    

限制对贵组织的访问权限,并允许对 Cloud Storage 资源发出读取请求

在此示例中,组织 A 的 Google Cloud 管理员和出站代理管理员共同协作,限制员工只能访问其Google Cloud 组织中的资源,但对 Cloud Storage 资源的读取请求除外。管理员可能希望从组织权限限制强制执行中省略对 Cloud Storage 资源的读取请求,以确保其员工可以访问使用 Cloud Storage 托管静态内容的外部网站。管理员使用 cloudStorageReadAllowed 选项允许对 Cloud Storage 资源发出读取请求。

如需仅限您的组织访问并允许对 Cloud Storage 资源发出读取请求,请执行以下操作:

  1. 作为 Google Cloud 管理员,如需获取组织 A 的 Google Cloud 组织 ID,请使用 gcloud organizations list 命令:

        gcloud organizations list
    

    以下是示例输出:

        DISPLAY_NAME: Organization A
        ID: 123456789
        DIRECTORY_CUSTOMER_ID: a1b2c3d4
    
  2. 作为出站代理管理员,在从 Google Cloud管理员处获取组织 ID 后,请按以下格式编写标头值的 JSON 表示法:

     {
     "resources": ["organizations/123456789"],
      "options": "cloudStorageReadAllowed"
     }
    
  3. 作为出站代理管理员,请按照 RFC 4648 第 5 节规范对请求标头的值进行编码。

    例如,如果标头值的 JSON 表示法存储在 authorized_orgs.json 文件中,如需对该文件进行编码,请运行以下 basenc 命令:

     $ cat authorized_orgs.json | basenc --base64url -w0
    ewogICJyZXNvdXJjZXMiOiBbIm9yZ2FuaXphdGlvbnMvMTIzNDU2Nzg5Il0sCiAgIm9wdGlvbnMiOiAiY2xvdWRTdG9yYWdlUmVhZEFsbG93ZCIKfQo=l
    
  4. 作为出站流量代理管理员,请配置出站流量代理,以便在源自组织 A 中受管设备的所有请求中插入以下请求标头:

     X-Goog-Allowed-Resources: ewogICJyZXNvdXJjZXMiOiBbIm9yZ2FuaXphdGlvbnMvMTIzNDU2Nzg5Il0sCiAgIm9wdGlvbnMiOiAiY2xvdWRTdG9yYWdlUmVhZEFsbG93ZCIKfQo=l
    

    组织 A 的员工现在可以访问其 Google Cloud 组织,并对 Cloud Storage 资源拥有读取权限。

允许员工访问供应商 Google Cloud 组织

在此示例中,组织 B 的 Google Cloud 管理员和出站流量代理管理员共同协作,允许员工除了访问其现有的 Google Cloud 组织之外,还可以访问供应商 Google Cloud 组织。

如需将员工访问权限限制为仅限您的组织和供应商组织,请执行以下操作:

  1. 作为 Google Cloud 管理员,请与供应商联系,获取供应商组织的 Google Cloud组织 ID。

  2. 作为出站代理管理员,除了现有组织 ID 之外,如需添加供应商组织 ID,您必须更新标头值的 JSON 表示法。从 Google Cloud管理员处获取供应商组织 ID 后,请按以下格式更新标头值:

     {
     "resources": ["organizations/1234", "organizations/3456"],
      "options": "strict"
     }
    
  3. 作为出站代理管理员,请按照 RFC 4648 第 5 节规范对请求标头的值进行编码。

    例如,如果标头值的 JSON 表示法存储在 authorized_orgs.json 文件中,如需对该文件进行编码,请运行以下 basenc 命令:

     $ cat authorized_orgs.json | basenc --base64url -w0
     ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiLCAib3JnYW5pemF0aW9ucy8xMDExMTIxMzE0Il0sCiAib3B0aW9ucyI6ICJzdHJpY3QiCn0K
    
  4. 作为出站流量代理管理员,请配置出站流量代理,以便在源自组织 B 中受管设备的所有请求中插入以下请求标头:

     X-Goog-Allowed-Resources: ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiLCAib3JnYW5pemF0aW9ucy8xMDExMTIxMzE0Il0sCiAib3B0aW9ucyI6ICJzdHJpY3QiCn0K
    

    组织 B 的员工现在可以访问供应商和 Google Cloud 组织。

仅限制上传权限

在此示例中,组织 C 的 Google Cloud 管理员和出站流量代理管理员共同协作,限制员工只能将资源上传到Google Cloud 组织。

如需仅向您的组织授予上传权限,请执行以下操作:

  1. 作为 Google Cloud 管理员,如需获取组织 C 的 Google Cloud 组织 ID,请使用 gcloud organizations list 命令:

        gcloud organizations list
    

    以下是示例输出:

        DISPLAY_NAME: Organization C
        ID: 123456789
        DIRECTORY_CUSTOMER_ID: a1b2c3d4
    
  2. 作为出站代理管理员,在从 Google Cloud管理员处获取组织 ID 后,请按以下格式编写标头值的 JSON 表示法:

     {
     "resources": ["organizations/123456789"],
      "options": "strict"
     }
    
  3. 作为出站代理管理员,请按照 RFC 4648 第 5 节规范对请求标头的值进行编码。

    例如,如果标头值的 JSON 表示法存储在 authorized_orgs.json 文件中,如需对该文件进行编码,请运行以下 basenc 命令:

     $ cat authorized_orgs.json | basenc --base64url -w0
    ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiXSwKICJvcHRpb25zIjogInN0cmljdCIKfQo
    
  4. 作为出站流量代理管理员,请配置出站流量代理,以便仅为源自组织 C 中受管设备的 PUT、POST 和 PATCH 方法请求插入以下请求标头:

     X-Goog-Allowed-Resources: ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiXSwKICJvcHRpb25zIjogInN0cmljdCIKfQo
    

后续步骤