AWSでS3にアクセスする権限があるかどうかのみを確認する方法

awscliというのをインストールしてやれば無駄な開発をしなくていいのでおすすめです。

awscliをインストールする

適当なUbuntuのDockerイメージでも使ってawscliを入れておくと良いと思います。awscliのインストールと検索すればいくらでも出てきますが、私のやりかたはこちらにまとめていますので参考にどうぞ。

アクセスキーを登録する

cliから下記のように登録することができます。

# aws configure
AWS Access Key ID [****************MNYA]:
AWS Secret Access Key [****************OiaY]:
Default region name [None]:
Default output format [None]:

この結果は環境によって違うと思いますが、~/.awsあたりに保存されます。直接設定ファイル編集派の人はそこをいじってもOKです。したがって、下記のようにスクリプトで自動設定することも可能です。

echo -e "[default]\naws_access_key_id = $S3_KEY\naws_secret_access_key = $S3_SECRET" > /root/.aws/credentials

Dockerビルド時に設定しちゃいたかったり、S3へのデータバックアップなどを自動化したい時はこれがおすすめ。と言いたいところでしたが、なんだかうまくいかないケースも存在した。こちらによると環境変数から指定することもできるようなので、スクリプトで自動化するならこれで設定したほうがいいですね。

export AWS_ACCESS_KEY_ID=hoge
export AWS_SECRET_ACCESS_KEY=hoge

権限の確認

権限に問題がなければaws s3 lsとすれば下記のようにバケット一覧を確認することができます。

# aws s3 ls
2018-09-20 11:50:03 hoge

権限がきちんと設定されていないとこれらが表示されません。

# aws s3 ls
An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied

これはフルアクセス権限がある場合のみの確認方法ですが、権限によっては特定のコマンドでは適切ではない場合があります。基本的にはフルアクセス権限を持っているか持っていないかでしか作業しないと思うので今の所はこれだけ書いておきます。

フルアクセスではない場合

権限を絞られている場合はlsが使えないことがあります。その場合は想像で念じながらaws s3 cp ./hoge.png s3://hoge.pngなどとしてみてみると良いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA