2

特定のユーザーのバケット/オブジェクトの読み取り/書き込みアクセス許可と、AllUsers のみのオブジェクトの読み取りアクセス許可を持つバケットを作成しようとしています。

私は:

  • バケットを作成し、
  • これをデフォルトの ACL リストに追加しました:
<Entry>
    <Scope type="AllUsers"/>
    <Permission>
        READ
    </Permission>
</Entry>

経由:gsutil setdefacl <f> gs://bucket

  • オブジェクトを追加しました (test.png)

今、URL を使用してブラウザからこれにアクセスしようとしてhttp[s]://storage.cloud.google.com/bucket/test.pngいますが、Google アカウントのサインイン ページに移動します。明示的な権限が設定されていない別の Google アカウント (プロジェクト/バケット/オブジェクトの作成に使用したことはありません) でサインインすると、pic が表示されます。

gsutil getacl新しいオブジェクトの READ 権限が AllUsers に設定されていることを示していますが、AllAuthenticatedUsers のように機能します。

期待どおりに動作するためのアクセス許可をどうするかについてのアイデアはありますか?

4

1 に答える 1

1

そのエントリをデフォルトのACLに追加したということは、AccessControlList.Entries内の要素として追加したということです。ACLの全文を見ずに、何が起こったのかを知ることはやや困難です。

ただし、オブジェクトをパブリックに読み取り可能にしているため(スコープAllUsersに対してREAD権限が付与されている)、バケットのデフォルトのオブジェクトACLに追加のスコープは必要ありません。あなたは簡単に行うことができます:

gsutil setdefacl public-gs://bucketを読む

次に、オブジェクトをバケットにアップロードします。

特定のユーザーに読み取り/書き込み権限を付与したいのですが、書き込み権限はオブジェクトACLではなくバケットACLによって制御されます(したがって、バケットのデフォルトのオブジェクトACLによっても制御されません)。

上記を試して、最初に認証しないとブラウザ経由でオブジェクトにアクセスできない場合はお知らせください。

マイクシュワルツ、GoogleCloudStorageチーム

于 2012-12-12T14:18:27.437 に答える