0

您好我想更改我的 ACL 文件以允许 Google Compute Engine 写入我的存储桶

这是我的 ACL 的样子:

<?xml version="1.0" ?>
<AccessControlList>
    <Owner>
        <ID>XX</ID>
    </Owner>
    <Entries>
        <Entry>
            <Scope type="GroupById">
                <ID>XX</ID>
            </Scope>
            <Permission>FULL_CONTROL</Permission>
        </Entry>
        <Entry>
            <Scope type="AllUsers"/>
            <Permission>READ</Permission>
        </Entry>
        <Entry>
            <Scope type="UserByEmail">
                <EmailAddress>XX@appspot.gserviceaccount.com</EmailAddress>
            </Scope>
            <Permission>WRITE</Permission>
        </Entry>
    </Entries>
</AccessControlList>

或者我不知道有没有其他方法可以做到这一点?

4

2 回答 2

3

Compute Engine 服务帐号是一种非常简洁的方式来访问同一项目中的 Cloud Storage 存储分区。无需在每个存储桶或对象上设置 ACL。

简而言之:

host$ gcutil addinstance reader --service_account_scopes=storage-rw
<output elided...>
host$ gcutil ssh reader
<output elided...>
reader$ gsutil ls gs://YOUR_BUCKET
<outputs the list of objects in your bucket>

...其中 YOUR_BUCKET 是与 Compute Engine 位于同一项目中的 Cloud Storage 存储分区。Cloud Storage 的作用域别名是:storage-r、storage-w、storage-rw 和 storage-full。

如果要启用跨项目访问,可以通过将 GCE 项目的服务帐户的电子邮件地址添加到另一个项目的 Google 存储资源(存储桶/对象)来实现。查找服务帐户的电子邮件地址的最简单方法是在如上启动的 GCE 实例中执行此操作:

reader$ curl -s http://metadata/0.1/meta-data/service-accounts/default | python -mjson.tool
{
    "scopes": [
        "https://www.googleapis.com/auth/devstorage.read_only"
    ], 
    "serviceAccount": "abc123.default@developer.gserviceaccount.com"
}

此处的详细信息: https ://developers.google.com/compute/docs/authentication

于 2012-11-20T22:37:14.043 回答
0

我在列表中添加了服务帐户,实际上它的工作非常简单

于 2012-11-20T16:36:50.593 回答