バケットポリシーは、Object Storage Service (OSS) バケットの権限付与ポリシーです。バケットポリシーを使用すると、インターネット経由での OSS リソースへのアクセスを防ぐことができます。
シナリオ
企業 A は、中国 (杭州) リージョンに examplebucket という名前のバケットを作成します。大量の内部データが examplebucket の examplefolder ディレクトリに保存されています。企業 A は、特定のパートナーが RAM ユーザーを使用してインターネット経由で examplefolder ディレクトリ内のリソースにアクセスすることを望んでいません。
企業 A の前述の要件を満たすために、ポリシー構文を使用してバケットポリシーを設定できます。
手順
OSS コンソールにログインします。
左側のナビゲーションウィンドウで、バケット をクリックします。[バケット] ページで、examplebucket をクリックします。
左側のナビゲーションツリーで、 を選択します。
表示されたページで、構文で追加 タブをクリックし、編集 をクリックします。バケット承認ポリシー
コードエディタに、次のポリシーを入力します。
次のポリシーでは、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-*" ] } } }] }設定 をクリックします。表示されるメッセージで、[OK] をクリックします。
関連資料
他の部門のユーザーに、自分の部門で共有されているデータをダウンロードさせたい場合があります。ただし、ユーザーにデータを書き込んだり、共有データを削除させたりしたくない場合もあります。この場合、バケットポリシーに基づいて、複数の部門間でデータ共有を実装できます。詳細については、「チュートリアル: バケットポリシーに基づいて部門間でデータを共有する」をご参照ください。
同じ Alibaba Cloud アカウント内および複数の Alibaba Cloud アカウントにまたがる匿名ユーザーまたは RAM ユーザーに、読み取り専用権限や読み取り/書き込み権限など、さまざまな権限を付与して、バケットリソースへのアクセスや管理を行うことができます。詳細については、「例」をご参照ください。