GoogleStorageのACLについてのメモ

ACLってのはアクセス制限を定義するやつ。ここに書いてある。
http://code.google.com/intl/ja/apis/storage/docs/accesscontrol.html

  • スコープごとにパーミッションを指定する
    • スコープごとっていうのはユーザーごとにとか、メールアドレスごとにとか、グループ(管理画面で設定できるEditorsとかTeam)ごととか
    • パーミッションっていうのはReadかWriteかFULL_CONTROLのどれか
    • FULL_CONTROLはREAD/Writeってこと
    • ファイルごとに、Editorsの人はFULL_CONTROLでTeamの人はREADだけ、みたいな権限の設定ができるってこと
  • BucketsとObjectsではパーミッションの意味が違う
  • ACLXMLで記述する
  • あらかじめ用意されたpredefined(canned)ACLsってのがあるからそれ使うと簡単
    • project-privateとかprivateとかpublic-readとか色々
    • Bucketsのデフォルトはproject-privateになってて、Owners、EditorsはFULL_CONTROL、TeamはREADになってる
    • Objectsのデフォルトはprivateになってて自分(アップした人)だけFULL_CONTROL

という感じ。gsutilでは

$ gsutil getacl gs://<buckets>/path/to/file

ってやると設定されてるXMLが返ってくる。

設定するときはXMLのファイル名を指定するかcanned ACLsで設定する

$ gsutil setacl hoge.xml gs://<buckets>/path/to/file
$ gsutil setacl project-private gs://<buckets>/path/to/file

もしくはcpのときに-aオプションで指定する

$ gsutil cp -a project-private hoge.txt gs://<buckets>

今のところWebのUIからはACL設定できなさそげ。
あと、ObjectsのデフォルトのACLをproject-privateにしたいけどできなさそう。