Amazon S3 API/CLIコマンドとIAM Actionの対応関係まとめ

Amazon S3 API/CLIコマンドとIAM Actionの対応関係まとめ

Clock Icon2025.02.14

はじめに

AWS S3を使っていると、AWS CLIのコマンドとIAM PolicyのActionの名前が異なることでハマることがあります。

# AWS CLIでバケット一覧を取得
aws s3api list-buckets

# 必要なIAM Policy Action
s3:ListAllMyBuckets  # なんで名前が違うの!?

例えば:

  • CLIでは list-buckets
  • APIでは ListBuckets
  • IAM Actionでは s3:ListAllMyBuckets

「なんでこんなに違うの!?」「どうやって対応関係を覚えればいいの?」

この記事では、よく使うS3の操作について、CLI・API・IAM Actionの対応関係をまとめました。

1.バケット操作系

操作内容 AWS CLI (s3api) API アクション名 IAM Action
バケット一覧取得 list-buckets ListBuckets s3:ListAllMyBuckets
バケット内容確認 list-objects-v2 ListObjectsV2 s3:ListBucket
バケットの場所確認 get-bucket-location GetBucketLocation s3:GetBucketLocation

2.オブジェクト操作系

操作内容 AWS CLI (s3api) API アクション名 IAM Action
オブジェクトコピー copy-object CopyObject s3:PutObject + s3:GetObject
オブジェクトタグ付け put-object-tagging PutObjectTagging s3:PutObjectTagging
マルチパートアップロード開始 create-multipart-upload CreateMultipartUpload s3:PutObject

3.アクセス制御系

操作内容 AWS CLI (s3api) API アクション名 IAM Action
バケットポリシー設定 put-bucket-policy PutBucketPolicy s3:PutBucketPolicy
ACL取得 get-object-acl GetObjectAcl s3:GetObjectAcl

権限エラーが出たら

An error occurred (AccessDenied) when calling the XXX operation

このエラーメッセージの XXX 部分を見ることで、必要なIAM Actionが推測できます。

デバックに困ったら

# まずはデバッグモードで実行
aws s3api list-buckets --debug

# それでもダメなら、CloudTrailで実際のAPI呼び出しを確認

まとめ

以上、実際にハマりがちなコマンドについてまとめてみました!
ぜひブックマークして、困ったときのリファレンスとして使ってください!

参考

https://docs.aws.amazon.com/ja_jp/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/index.html

https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.