すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:チュートリアル: バケットポリシーを使用して OSS へのパブリックアクセスを制限する

最終更新日:Nov 09, 2025

バケットポリシーは、Object Storage Service (OSS) バケットの権限付与ポリシーです。バケットポリシーを使用すると、インターネット経由での OSS リソースへのアクセスを防ぐことができます。

シナリオ

企業 A は、中国 (杭州) リージョンに examplebucket という名前のバケットを作成します。大量の内部データが examplebucket の examplefolder ディレクトリに保存されています。企業 A は、特定のパートナーが RAM ユーザーを使用してインターネット経由で examplefolder ディレクトリ内のリソースにアクセスすることを望んでいません。

企業 A の前述の要件を満たすために、ポリシー構文を使用してバケットポリシーを設定できます。

手順

  1. OSS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、バケット をクリックします。[バケット] ページで、examplebucket をクリックします。

  3. 左側のナビゲーションツリーで、権限管理 > バケット承認ポリシー を選択します。

  4. 表示されたページで、構文で追加 タブをクリックし、編集 をクリックします。バケット承認ポリシー

  5. コードエディタに、次のポリシーを入力します。

    次のポリシーでは、137918634953xxxx は examplebucket バケットのオーナーのユーザー ID であり、Principal 要素のユーザー ID は RAM ユーザーのユーザー ID です。

    {
        "Version": "1",
        "Statement": [{
            "Effect": "Deny",
            "Action": [
                "oss:RestoreObject",
                "oss:AbortMultipartUpload",
                "oss:PutObjectAcl",
                "oss:GetObjectAcl",
                "oss:ListParts",
                "oss:DeleteObject",
                "oss:PutObject",
                "oss:GetObject",
                "oss:GetVodPlaylist",
                "oss:PostVodPlaylist",
                "oss:PublishRtmpStream",
                "oss:ListObjectVersions",
                "oss:GetObjectVersion",
                "oss:GetObjectVersionAcl",
                "oss:RestoreObjectVersion"
            ],
            "Principal": [            
                "26642223584287xxxx",
                "27658173539067xxxx",
                "24430533117653xxxx"
            ],
            "Resource": [            
                "acs:oss:*:137918634953xxxx:examplebucket/examplefolder/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "acs:SourceVpc": [
                        "vpc-*"
                    ]
                }
            }
        }, {
            "Effect": "Deny",
            "Action": [
                "oss:ListObjects"
            ],
            "Principal": [
                "26642223584287xxxx",
                "27658173539067xxxx",
                "24430533117653xxxx"
            ],
            "Resource": [
                "acs:oss:*:137918634953xxxx:examplebucket"
            ],
            "Condition": {
                "StringLike": {
                    "oss:Prefix": [
                        "examplefolder/*"
                    ]
                },
                "StringNotLike": {
                    "acs:SourceVpc": [
                        "vpc-*"
                    ]
                }
            }
        }]
    }
  6. 設定 をクリックします。表示されるメッセージで、[OK] をクリックします。

関連資料

  • 他の部門のユーザーに、自分の部門で共有されているデータをダウンロードさせたい場合があります。ただし、ユーザーにデータを書き込んだり、共有データを削除させたりしたくない場合もあります。この場合、バケットポリシーに基づいて、複数の部門間でデータ共有を実装できます。詳細については、「チュートリアル: バケットポリシーに基づいて部門間でデータを共有する」をご参照ください。

  • 同じ Alibaba Cloud アカウント内および複数の Alibaba Cloud アカウントにまたがる匿名ユーザーまたは RAM ユーザーに、読み取り専用権限や読み取り/書き込み権限など、さまざまな権限を付与して、バケットリソースへのアクセスや管理を行うことができます。詳細については、「」をご参照ください。