0

こんにちは、Google Compute Engine がバケットに書き込みできるように ACL ファイルを変更したいと思います

私の 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 に答える