特定S3バケットに対してのみアクセスを許可したい

AWS運用自動化サービス「Cloud Automator」

指定したS3バケットだけアクセスさせたいしバケット一覧も見せたくない!

多くの利用者さんが一つのAWSアカウントを使っているが、それぞれの利用者さんには指定したS3バケットにだけアクセスさせたい、ということがあると思います。



しかし、AWSのマネジメントコンソールからS3を利用するには、全てのS3バケットを一覧表示する権限(s3:ListAllMyBuckets)を IAM Userに付与しなければいけないため、S3バケット名すら見せたくない!という場合には、少し困ってしまいます。



場合によっては、利用者さんは CloudBerry Explorer for Amazon S3Cyberduck といったクライアントソフトウェアを利用しているかもしれません。



上記の代表的な2つのクライアントソフトウェアではS3バケット一覧を見せることなく特定のS3バケットのみにアクセスすることができます。

またもちろん、 AWS CLI を使用するのも手です。


IAMポリシーの設定の例



下記に your-bucket-name という名前のS3バケットへのアクセスを許可するポリシー例を記載しています。

念のため、バケットの削除や作成もできないように制限しています。



CloudBerry Explorer for Amazon S3



s3:ListAllMyBuckets権限がないと下記スクリーンショットのようにバケット一覧が表示されません。しかしスクリーンショット赤枠の部分にS3バケット名を入力してください。特定のS3バケットにのみアクセスできます。




Cyberduck



s3:ListAllMyBuckets権限がない状態でS3バケットを指定せずアクセスしようとすると、下記スクリーンショットのように「 ディレクトリ一覧取得に失敗しました 」というエラーメッセージが表示されてしまいます。







バケットのリスト権限が無くてもアクセスできるようにするには、接続設定をする際に下記スクリーンショットの赤枠部分にS3バケット名を入力してください。これで接続が可能です。




AWS CLI



AWS CLIではバケットのリスト権限が無くても、通常通りS3へ接続することができます。

おことわり

本投稿では例として上記の3つのソフトウェアを取り上げていますが、スクリーンショットを含め、内容は2018年4月23日現在のものですのでご注意ください。また、当社として上記ソフトウェアのご利用を保証するものではありません!あくまで参考情報としてご閲覧ください。

AWS運用自動化サービス「Cloud Automator」