Google云端存储 - 为Google Compute Engine设置Acl

时间:2012-11-20 16:30:31

标签: acl google-cloud-storage google-compute-engine

您好我想更改我的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>

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

2 个答案:

答案 0 :(得分:3)

计算引擎服务帐户是访问同一项目中的云存储桶的一种非常简洁的方法。无需在每个存储桶或对象上设置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在同一项目中的云存储桶。云存储的范围别名包括: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

答案 1 :(得分:0)

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