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 はアスタリスク (*) をワイルドカードとして認識しませんので、ご注意ください。



PCの再起動後にS3 Driveサービスが自動的に開始されません

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

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

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

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

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

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

インターネットに接続されていない PC でもライセンス認証は可能ですか?

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

新しいPCにライセンスを移行することは可能ですか?

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

マウントしたドライブにアクセスすると「デバイスの準備ができていません」というエラーが表示される

Amazon S3バケットをマウントしたドライブに共有アクセス許可を設定する

AWS Amazon S3バケットへのアクセスにIP制限をかける

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

AWS Amazon S3バケットをWindowsにマウントする

Amazon S3にアクセスするために必要なAWSの設定

JPCYBER S3 Driveのインストール方法