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

Object Storage Service:パブリックアクセスブロック

最終更新日:Sep 18, 2026

パブリックアクセスブロックは、アカウント、バケット、アクセスポイント、またはオブジェクト FC アクセスポイントのレベルで OSS リソースへの匿名アクセスを防止します。この機能を有効にすると、既存のパブリックアクセス権限は無視され、新しいパブリックアクセス権限は作成できなくなります。

バケットポリシーと ACL でのパブリックアクセスの確認

バケットポリシーと ACL を確認し、オブジェクトがパブリックアクセス可能かどうかを判断します。パブリックアクセスを許可する設定がある場合は、パブリックアクセスブロックを有効にします。

バケットポリシー

(推奨) GetBucketPolicyStatus API の呼び出し

GetBucketPolicyStatus API を呼び出して、バケットポリシーがパブリックアクセスを許可しているかどうかを確認します。

  • IsPublic が true の場合、バケットポリシーはパブリックアクセスを許可しています。

  • IsPublic が false の場合、バケットポリシーはパブリックアクセスを許可していません。

詳細については、「GetBucketPolicyStatus」をご参照ください。

バケットポリシー設定の手動確認

非パブリックアクセスの条件と例

  • バケットポリシーのステートメントは、そのプリンシパルまたは Condition 要素がこれらの基準のいずれかを満たす場合、非パブリックと見なされます。

    説明
    • Action および Resource 要素は、パブリックアクセスの評価に影響しません。

    • Effect 要素が Deny の場合、ポリシーはパブリックアクセスを許可しません。

    要素

    フィールド

    値

    プリンシパル

    N/A

    アスタリスク (*) ワイルドカードを含まない 1 つ以上の固定値を指定します。

    Condition

    acs:SourceVpcId

    アスタリスク (*) ワイルドカードを含まない 1 つ以上の固定値を指定します。

    acs:SourceVpc

    アスタリスク (*) ワイルドカードを含まない 1 つ以上の固定値を指定します。

    acs:AccessId

    アスタリスク (*) ワイルドカードを含まない 1 つ以上の固定値を指定します。

    acs:SourceVpcIp

    IPv4 アドレスの場合、マスクは 8 以上である必要があります。

    IPv6 アドレスの場合、マスクは 32 以上である必要があります。

    acs:SourceIp

    IPv4 アドレスの場合、マスクは 8 以上である必要があります。

    IPv6 アドレスの場合、マスクは 32 以上である必要があります。

  • 次のバケットポリシーの例は、非パブリックアクセスを許可します:

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "oss:GetObject",
                    "oss:GetObjectAcl",
                    "oss:GetObjectVersion",
                    "oss:GetObjectVersionAcl"
                ],
                "Effect":"Allow",
                "Principal":[
                    "20214760404935xxxx"
                ],
                "Resource":[
                    "acs:oss:*:174649585760xxxx:examplebucket/hangzhou/2020/*",
                    "acs:oss:*:174649585760xxxx:examplebucket/shanghai/2015/*"
                ]
            },
            {
                "Action":[
                    "oss:ListObjects",
                    "oss:ListObjectVersions"
                ],
                "Condition":{
                    "StringLike":{
                        "oss:Prefix":[
                            "hangzhou/2020/*",
                            "shanghai/2015/*"
                        ]
                    }
                },
                "Effect":"Allow",
                "Principal":[
                    "20214760404935xxxx"
                ],
                "Resource":[
                    "acs:oss:*:174649585760xxxx:examplebucket"
                ]
            }
        ]
    }

パブリックアクセスの条件と例

バケットポリシーが非パブリックアクセスの基準を満たさない場合、そのポリシーはパブリックアクセスを許可します。例:

  • 例 1

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "oss:GetObject",
                "Principal": "*",
                "Resource": "acs:oss:*:17464958576xxxx:examplebucket/*"
            }
        ]
    }
  • 例 2

    バケットポリシーに、すべての VPC からのアクセスを許可するステートメントと、特定のユーザーに対する非パブリックのステートメントの両方が含まれている場合、そのポリシーはパブリックアクセスを許可します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "oss:GetObject",
                "Principal": "*",
                "Resource": "acs:oss:*:17464958576xxxx:examplebucket/*",
                "Condition": {
                    "StringLike": {
                        "acs:SourceVpc": [
                            "vpc-*"
                            ]
                    }
                }
            },
          	{
                "Effect": "Allow",
                "Action": "oss:*",
                "Principal": "27464958576xxxx",
                "Resource": "*"
            }
        ]
    }

ACL

  • バケット ACL またはオブジェクト ACL が public-read または public-read-write の場合、パブリックアクセスは許可されます。

  • バケット ACL とオブジェクト ACL の両方がプライベートの場合、パブリックアクセスは拒否されます。

パブリックアクセスブロックの優先順位

パブリックアクセスブロックは、アカウント、バケット、アクセスポイント、およびオブジェクト FC アクセスポイントのレベルで適用されます。複数のレベルで設定されている場合、OSS は次の優先順位に従います:

アカウント > バケット > アクセスポイント > オブジェクト FC アクセスポイント

上位レベルの設定は下位レベルの設定を上書きします。たとえば、アカウントレベルのパブリックアクセスブロックは、個々の設定に関係なく、すべてのバケット、アクセスポイント、およびオブジェクト FC アクセスポイントへのパブリックアクセスをブロックします。

  • バケットへのパブリックアクセスを許可するには、アカウントレベルとバケットレベルでパブリックアクセスブロックを無効にする必要があります。

  • アクセスポイントを介したパブリックアクセスを許可するには、アカウント、バケット、およびアクセスポイントのレベルでパブリックアクセスブロックを無効にする必要があります。

  • オブジェクト FC アクセスポイントを介したパブリックアクセスを許可するには、アカウント、バケット、アクセスポイント、およびオブジェクト FC アクセスポイントのレベルでパブリックアクセスブロックを無効にする必要があります。

使用上の注意

  • RAM ユーザーがパブリックアクセスブロックを管理するには、次の権限が必要です:

    • アカウントレベルでは: oss:PutPublicAccessBlock、oss:GetPublicAccessBlock、および oss:DeletePublicAccessBlock

    • 個々のバケット: oss:PutBucketPublicAccessBlock、oss:GetBucketPublicAccessBlock、および oss:DeleteBucketPublicAccessBlock

    • 個々のアクセスポイント: oss:PutAccessPointPublicAccessBlock、oss:GetAccessPointPublicAccessBlock、および oss:DeleteAccessPointPublicAccessBlock

    • 個々のオブジェクト FC アクセスポイントの場合: oss:PutAccessPointConfigForObjectProcess、oss:GetAccessPointConfigForObjectProcess、および oss:DeleteAccessPointForObjectProcess

  • 有効にすると、既存のパブリックアクセス権限は無視され、新しい権限は設定できなくなります。無効にすると、既存の権限が復元され、新しい権限が設定できるようになります。

  • バケットポリシーがすべてのユーザーにアクセスポイントの管理を許可している場合、アクセスポイントでパブリックアクセスブロックが有効になっていても、ユーザーはバケットのサブドメインを介してそのパブリックアクセスブロックのステータスを変更できます。アクセスポイントの設定は、バケットのサブドメインを介したリクエストには適用されません。

  • クロスリージョンレプリケーション (CRR) および同一リージョンレプリケーション (SRR) 中、オブジェクト ACL はパブリックアクセスブロックの設定に関係なく保持されます。送信先バケットでパブリックアクセスブロックが有効になっている場合、レプリケートされたオブジェクトの ACL が public-read または public-read-write であっても、それらのオブジェクトにパブリックアクセスすることはできません。

方法

OSS コンソールの使用

アカウントレベルでのパブリックアクセスブロックの有効化

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

  2. 左側のナビゲーションペインで、データサービス > 公開アクセス禁止 を選択します。

  3. 公開アクセス禁止 ページで、パブリックアクセスのブロックをオンにし、画面の指示に従って完了します。

バケットのパブリックアクセスブロックの有効化

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

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

  3. 左側のナビゲーションツリーで、権限管理 > 公開アクセス禁止 を選択します。

  4. 公開アクセス禁止 タブで、パブリックアクセスブロックをオンにし、画面の指示に従います。

アクセスポイントのパブリックアクセスブロックの有効化

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

  2. 左側のナビゲーションペインで、エンドポイントリスト をクリックします。目的のアクセスポイントをクリックします。

  3. エンドポイントの基本情報 セクションで、[パブリックアクセスのブロック] の横にある [有効化] をクリックし、画面の指示に従います。

オブジェクト FC アクセスポイントのパブリックアクセスブロックの有効化

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

  2. 左側のナビゲーションペインで、オブジェクト FC アクセスポイントリスト をクリックします。目的の Object FC Access Point をクリックします。

  3. FC アクセスポイントの基本情報 セクションで、パブリックアクセスのブロックの横にある [有効化] をクリックし、画面の指示に従って操作を完了します。

ossutil の使用

ossutil を使用してパブリックアクセスブロックを有効にします。ossutil のインストールについては、「ossutil のインストール」をご参照ください。

  • アカウントレベルでパブリックアクセスブロックを有効にするには:

    ossutil api put-public-access-block --public-access-block-configuration "{\"BlockPublicAccess\":\"true\"}"

    詳細については、「put-public-access-block」をご参照ください。

  • examplebucket のパブリックアクセスブロックの有効化:

    ossutil api put-bucket-public-access-block --bucket examplebucket --public-access-block-configuration "{\"BlockPublicAccess\":\"true\"}"

    詳細については、「put-bucket-public-access-block」をご参照ください。

  • アクセスポイント ap-01 のパブリックアクセスブロックの有効化:

    ossutil api put-access-point-public-access-block --bucket examplebucket --access-point-name ap-01 --public-access-block-configuration "{\"BlockPublicAccess\":\"true\"}"

    詳細については、「put-access-point-public-access-block」をご参照ください。

関連 API

コード内で署名を計算し、RESTful API を直接呼び出します。

  • アカウントレベルでパブリックアクセスをブロックするには、「PutPublicAccessBlock」をご参照ください。

  • バケットのパブリックアクセスをブロックするには、「PutBucketPublicAccessBlock」をご参照ください。

  • アクセスポイントのパブリックアクセスをブロックするには、「PutAccessPointPublicAccessBlock」をご参照ください。

  • オブジェクト FC アクセスポイントのパブリックアクセスをブロックするには、「PutAccessPointConfigForObjectProcess」をご参照ください。

関連トピック

バケット内のオブジェクトレベルのアクセスを制御するには、パブリックアクセスブロックをバケットポリシーおよびオブジェクト ACL と組み合わせます。