tencent cloud

フィードバック

アクセスポリシーの言語概要

最終更新日:2023-01-13 14:24:23
    注意:

    サブユーザーまたはコラボレーターにアクセスポリシーを追加する際は、必ず業務の必要性に応じて、最小権限の原則に従って権限を付与してください。サブユーザーまたはコラボレーターに対し、すべてのリソース(resource:*)またはすべてのアクション(action:*)の権限を直接与えてしまうと、権限の範囲が大きすぎるためにデータセキュリティ上のリスクが生じる場合があります。

    概要

    アクセスポリシーはCloud Object Storage(COS)リソースへのアクセス権限を付与するために用いられます。アクセスポリシーにはJSONをベースにしたアクセスポリシー言語を使用します。アクセスポリシー言語の権限によって、指定するプリンシパル(principal)に指定のCOSリソースに対する指定のアクションを実行させることができます。

    アクセスポリシー言語はバケットポリシー(Bucket Policy)の基本要素および使用法を記述するものです。ポリシー言語の説明に関してはCAMポリシー管理をご参照ください。

    アクセスポリシーの要素

    アクセスポリシー言語には次の基本的な意味を持つ要素が含まれます。

    • プリンシパル(principal):ポリシーが権限を付与するエンティティを記述します。例えばユーザー(ルートアカウント、サブアカウント、匿名ユーザー)、ユーザーグループなどです。この要素はバケットアクセスポリシーに対して有効ですが、ユーザーアクセスポリシーには追加すべきではありません。
    • ステートメント(statement):1つまたは複数の権限の詳細情報を記述します。この要素にはエフェクト、アクション、リソース、条件などのいくつかの他の要素の権限または権限セットが含まれます。1つのポリシーには1つのステートメント要素しかありません。
    • エフェクト(effect):ステートメントによる結果が「許可」であるか「明示的な拒否」であるかを記述します。allowとdenyの2種類が含まれます。この要素は入力必須項目です。
    • アクションaction:許可する、または拒否するアクションを記述します。アクションはAPI(nameプレフィックスで記述)または機能セット(permidプレフィックスが付いた特定のAPIセット)とすることができます。この要素は入力必須項目です。
    • リソース(resource) は権限が適用されるリソースについて記述します。リソースは6セグメント式で説明されます。リソース定義の詳細は各製品によって異なります。リソースの指定方法については、作成したリソースステートメントに対応する製品ドキュメントをご参照ください。この要素は必須項目です。
    • 条件(condition):ポリシー発効の制約条件を記述します。条件はオペレーター、アクションキーとアクション値から構成されています。条件値には時間、IPアドレスなどの情報を含めることができます。一部のサービスは、条件に対しほかの値を指定することを認めています。この要素は入力必須項目ではありません。

    要素の使用法

    プリンシパルの指定

    プリンシパル(principal)の要素はリソースへのアクセスを許可される、または拒否されるユーザー、アカウント、サービスまたはその他のエンティティを指定するために用いられます。principalの要素はバケット内でのみ作用します。ユーザーポリシーでは指定する必要がありませんが、これはユーザーポリシーが特定のユーザーに直接付加されるものだからです。principalの指定の例は次のとおりです。

    "principal":{
    "qcs": [
    "qcs::cam::uin/100000000001:uin/100000000001"
    ]
    }
    

    匿名ユーザーに権限を付与:

    "principal":{
    "qcs": [
    "qcs::cam::anonymous:anonymous"
    ]
    }
    

    ルートアカウントUIN 100000000001に権限を付与:

    "principal":{
    "qcs": [
    "qcs::cam::uin/100000000001:uin/100000000001"
    ]
    }
    

    サブアカウントUIN 100000000011(ルートアカウントのUINは100000000001)に権限を付与:

    注意:

    操作を行う前に、サブアカウントがルートアカウントのサブアカウントリストに追加されていることを確認する必要があります。

    "principal":{
    "qcs": [
    "qcs::cam::uin/100000000001:uin/100000000011"
    ]
    }
    

    エフェクトの指定

    リソースへのアクセス権限を明示的に付与(許可)していない場合、アクセスは暗黙的に拒否されます。リソースへのアクセスを明示的に拒否(deny)することもでき、そうした場合はユーザーがそのリソースに確実にアクセスできなくなります。これは他のポリシーがアクセス権限を付与している場合であっても同様です。許可のエフェクトを指定する例を次に挙げます。

    "effect" : "allow"
    

    アクションの指定

    COSはポリシーの中で、ある特定のCOSアクションを指定することができると定義しています。指定するアクションは発行されるAPIのリクエスト操作 と完全に同じです。一部のバケット操作およびオブジェクト操作を次に列記します。その他の具体的な操作については、API操作リストのドキュメントをご参照ください。

    バケットの操作

    説明 対応するAPIインターフェース
    name/cos:GetService GET Service
    name/cos:GetBucket GET Bucket (List Objects)
    name/cos:PutBucket PUT Bucket
    name/cos:DeleteBucket DELETE Bucket

    オブジェクト操作

    説明 対応するAPIインターフェース
    name/cos:GetObject GET Object
    name/cos:PutObject PUT Object
    name/cos:HeadObject HEAD Object
    name/cos:DeleteObject DELETE Object

    アクション許可の指定の例を次に示します。

    "action":[
    "name/cos:GetObject",
    "name/cos:HeadObject"
    ]
    

    リソースの指定

    リソース(resource)要素は単一または複数の操作オブジェクト(COSバケットまたはオブジェクトなど)を記述します。すべてのリソースには下記の6セグメント式の記述方法を使用することができます。

    qcs:project_id:service_type:region:account:resource
    

    パラメータの説明は次のとおりです。

    パラメータ 説明 入力必須かどうか
    qcs qcloud serviceの略称であり、Tencent Cloudのクラウドサービスであることを表します。 はい
    project_id プロジェクト情報を記述します。CAMのレガシーロジックとの互換性のためにのみ使用されます。 オプション
    service_type 「COS」のような、製品の略称を記述します。 はい
    region リージョンの情報を説明します。Tencent Cloud COSがサポートするアベイラビリティリージョンをご参照ください。 はい
    account リソース所有者のルートアカウント情報を記述します。現在、リソース所有者の記述方式は2種類をサポートしています。1つはuin方式、すなわちルートアカウントのUINアカウントであり、uin/${OwnerUin}で表され、uin/100000000001のようになります。もう1つはuid方式、すなわちルートアカウントのAPPIDであり、uid/${appid}で表され、uid/1250000000のようになります。現在、COSのリソース所有者はすべてuid方式を使用して記述され、ルートアカウントの開発者APPIDとなります。 はい
    resource 具体的なリソースの詳細を記述します。COSサービスではバケットのXML APIアクセスドメイン名を使用して記述します。 はい

    バケットexamplebucket-1250000000を指定する例を次に挙げます。

    "resource": ["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]
    

    バケットexamplebucket-1250000000内の/folder/フォルダ下の全オブジェクトを指定する例を次に挙げます。

    "resource": ["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/folder/*"]
    

    バケットexamplebucket-1250000000内のオブジェクト、/folder/exampleobjectを指定する例を次に挙げます。

    "resource": ["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/folder/exampleobject"]
    

    条件の指定

    アクセスポリシー言語は権限承認を受ける際の条件を指定することができます。例えばユーザーのアクセス元の制限、権限承認時間の制限などです。現在サポートされている条件オペレーターのリストおよび一般的な条件キーとその例などの情報を次に列記します。

    条件オペレーター 意味 条件名
    ip_equal IP一致 qcs:ip {"ip_equal":{"qcs:ip ":"10.121.2.0/24"}}
    ip_not_equal IP不一致 qcs:ip {"ip_not_equal":{"qcs:ip ":["10.121.1.0/24", "10.121.2.0/24"]}}

    以下は、アクセスIPが10.121.2.0/24のネットワークセグメント内という条件を満たす例です。

    "ip_equal":{"qcs:ip ":"10.121.2.0/24"}
    

    以下は、アクセスIPが101.226.100.185および101.226.100.186であるという条件を満たす例です。

    "ip_equal":{
      "qcs: ip": [
          "101.226.100.185",
          "101.226.100.186"
      ]
    }
    

    実際の例

    ルートアカウントが匿名ユーザーを許可し、アクセス元のIPが101.226.100.185または101.226.100.186であった場合、華南リージョンのバケットexamplebucket-1250000000内のオブジェクトに対し、GET(ダウンロード)およびHEAD操作を実行し、認証は必要ありませんでした。その他の事例については、権限設定の関連事例をご参照ください。

    {
      "version": "2.0",
      "principal":{
          "qcs": [
              "qcs: : cam: : anonymous: anonymous"
          ]
      },
      "statement":[
          {
              "action":[
                  "name/cos: GetObject",
                  "name/cos: HeadObject"
              ],
              "condition":{
                  "ip_equal":{
                      "qcs: ip": [
                          "101.226.100.185",
                          "101.226.100.186"
                      ]
                  }
              },
              "effect": "allow",
              "resource":[
                  "qcs: : cos: ap-guangzhou: uid/1250000000: examplebucket-1250000000.ap-guangzhou.myqcloud.com/*"
              ]
          }
      ]
    }
    
    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)