アクセス権の管理

アクセス権の管理

  • ユーザーは、各種アカウントでロールを持ちます。たとえば、管理者ロールのユーザーは、アカウント内の全コンテナーやオブジェクトに対してあらゆるアクセスが可能です。コンテナーレベルでのアクセス制御リスト (ACL) の設定や読み取り、書き込みアクセスのサポートリストの設定が可能です。読み取りアクセスは X-Container-Read で、書き込みアクセスは X-Container-Write ヘッダーで設定されます。

    ユーザーに読み取り権限を与えるには、パラメーターに -r を指定して swift post コマンドを実行します。ユーザーに書き込み権限を与えるには -w パラメーターを使用します。

  • 以下は、コンテナーの read ACL の例です。

    何らかの HTTP referer ヘッダーがある場合、コンテナーの内容の読み出しを許可します。

    $ swift post CONTAINER -r ".r:*"
    

    何らかの HTTP referer ヘッダーがある場合、コンテナーの内容の読み出しと一覧表示を許可します。

    $ swift post CONTAINER -r ".r:*,.rlistings"
    

    指定された HTTP referer ヘッダーがある場合、コンテナーの内容の読み出しを許可します。

    $ swift post CONTAINER -r \
      ".r:openstack.example.com,.r:swift.example.com,.r:storage.example.com"
    

    指定された HTTP referer ヘッダーがある場合、読み出しアクセスを拒否します。

    $ swift post CONTAINER -r \
      ".r:*,.r:-openstack.example.com,.r:-swift.example.com,.r:-storage.example.com"
    

    project1 のすべてのユーザーがこのコンテナーの内容の読み出しができます。

    $ swift post CONTAINER -r "project1:*"
    

    project1 の user1 はこのコンテナーの内容の読み出しができます。

    $ swift post CONTAINER -r "project1:user1"
    

    指定されたユーザーやプロジェクトがこのコンテナーの内容の読み出しができます。

    $ swift post CONTAINER -r \
      "project1:user1,project1:user2,project3:*,project4:user1"
    
  • 以下は、コンテナーの write ACL の例です。

    project1 のすべてのユーザーがこのコンテナーに書き込みができます。

    $ swift post CONTAINER -w "project1:*"
    

    project1 の user1 はこのコンテナーに書き込みができます。

    $ swift post CONTAINER -w "project1:user1"
    

    指定されたユーザーやプロジェクトがこのコンテナーに書き込みができます。

    $ swift post CONTAINER -w \
      "project1:user1,project1:user2,project3:*,project4:user1"
    

注釈

コンテナーの書き込みが成功するには、ユーザーは (書き込み権限に加え) そのコンテナーへの読み出し権限を持っている必要があります。上記のすべての読み出し/書き込み ACL の例において、プロジェクト名/ユーザー名の代わりにプロジェクト ID/ユーザー ID、つまり <project_uuid>:<user_uuid> を使うことができます。複数の keystone ドメインを使用する場合には、 UUID 形式が必須となります。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.