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

Object Storage Service:チュートリアル: バケットポリシーを使用してインターネット経由のOSSへのアクセスを制限する

最終更新日:Feb 21, 2024

バケットポリシーは、Object Storage Service (OSS) バケットの権限付与ポリシーです。 バケットポリシーを使用して、特定のRAMユーザーがインターネット経由でOSSリソースにアクセスできないようにすることができます。

シナリオ

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

エンタープライズAの前述の要件を満たすには、ポリシー構文を使用してバケットポリシーを設定します。

手順

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

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

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

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

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

    次のポリシーでは、137918634953 **** はexamplebucketバケットの所有者のユーザーIDで、Principal要素のユーザーIDはRAMユーザーのユーザーIDです。

    {
        "Version": "1"、
        "Statement": [{
            "Effect": "Deny",
            "Action": [
                "oss:RestoreObject" 、
                "oss:ListObjects",
                "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"
            ],
            "プリンシパル": [            
                "26642223584287 ****" 、
                "27658173539067 ****" 、
                "24430533117653 ****"
            ],
            "Resource": [            
                "acs:oss:*:137918634953 ****:examplebucket/examplefolder/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "acs:SourceVpc": [
                        "vpc-*"
                    ]
                }
            }
        }, {
            "Effect": "Deny",
            "Action": [
                "oss:ListObjects",
                "oss:GetObject"
            ],
            "プリンシパル": [
                "26642223584287 ****" 、
                "27658173539067 ****" 、
                "24430533117653 ****"
            ],
            "Resource": [
                "acs:oss:*:137918634953 ****:examplebucket"
            ],
            "Condition": {
                "StringLike": {
                    "oss:Prefix": [
                        "examplefolder/*"
                    ]
                },
                "StringNotLike": {
                    "acs:SourceVpc": [
                        "vpc-*"
                    ]
                }
            }
        }]
    }
  6. 設定 をクリックします。 表示されるメッセージで、[OK] をクリックします。

参考資料

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

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