Amazon S3バケットの特定のフォルダーにだけアクセスを許可する


AWS Amazon S3 バケット内の特定のフォルダーにだけアクセスを許可する方法について

Amazon S3バケットの特定のフォルダーにだけアクセスを許可する

IAM ポリシーを使用して、AWS Amazon S3 バケット内の特定のフォルダーにだけアクセスを許可する方法について説明します。

■ IAM ユーザーの作成
Amazon S3 バケットへアクセスする際に使用する認証情報を作成します。
AWS マネジメント コンソールで IAM ユーザーを作成し、アクセス キーとシークレット キーを発行します。

■ IAM ポリシーの作成
Amazon S3 バケットへのアクセス権限を定義する IAM ポリシーを作成します。
以下のようなインライン ポリシーを作成し、先程の IAM ユーザーに付与します。

例として、my-bucket バケット配下の、Suzuki フォルダー内のみ(サブフォルダーを含む)アクセスを許可する例を示します。

バケット名(my-bucket)、およびフォルダー名(Suzuki)は適宜置き換えてください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUserToSeeBucketListInTheConsole",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "AllowRootAndSuzukiListingOfMyBucket",
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::my-bucket"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "",
                        "Suzuki/"
                    ],
                    "s3:delimiter": [
                        "/"
                    ]
                }
            }
        },
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::my-bucket"
            ],
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "Suzuki/*"
                    ]
                }
            }
        },
        {
            "Sid": "AllowAllS3ActionsInUserFolder",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket/Suzuki/*"
            ]
        }
    ]
}


これで、AWS Amazon S3 バケット内の特定のフォルダーにだけアクセスを許可することができました。

なお、ポリシー変数 ${aws:username} を使用することで、固定のフォルダー名(Suzuki)の代わりに、任意のユーザー名を指定することも可能です。

※ StringLike のみがアスタリスク (*) をワイルドカードとして認識します。StringEquals はアスタリスク (*) をワイルドカードとして認識しませんので、ご注意ください。



JPCYBER S3 Driveをサイレントインストールする

Amazon S3 Express One Zoneストレージをマウントする

キャッシュを作成しないでAmazon S3にファイルをコピーする

Amazon S3 マウント推奨オプション

Amazon S3 Glacierストレージをマウントする

IAMロールでAmazon S3にアクセスするために必要な設定

JPCYBER S3 Driveの動作に必要なポート番号

マウント時のドライブのオプションを設定する

AWS PrivateLink for Amazon S3を使用してマウントする

Oracle Cloud Object StorageをWindowsにマウントする

WasabiオブジェクトストレージをWindowsにマウントする

JPCYBER S3 Driveの設定ファイルによる高度な設定

JPCYBER S3 Driveのオプションを設定する

Amazon S3のアクセスに必要な最低限のIAMポリシーの設定

robocopyでAmazon S3にバックアップする時のオプション指定

インターネットに接続されていないPCでライセンス認証する

Amazon S3アクセスポイントをマウントする

Google Cloud StorageをWindowsにマウントする

新しいPCにライセンスを移行する

共有リンク(Amazon S3署名付きURL)へのアクセスを禁止する