- クラウド技術
プログラムからS3のオブジェクト一覧を取得するIAM設定について
- #AWS
目的
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
プログラムからS3のオブジェクト一覧を取得するために、”s2:listObjects”のような権限を探したところ、見つからずにとても苦労したため、ここにオブジェクト一覧を取得する権限を記載する。
前提
・S3バケットが作成済みであること
今回対象のS3バケット名:aaabbbccc-smallit
AWSコンソールからIAMでユーザーを作成する
①ユーザー名
ユーザー名:smallit-taro
アクセスキー – プログラムによるアクセス:チェック
②アクセス許可の設定
ここでは何も選択せずに次のステップをクリック
③タグの設定
ここでは何も入力せずに次のステップをクリック
④ユーザーの作成
⑤アクセスキーとシークレットアクセスキーはアプリから使用するために必要になるので、保存しておく
ユーザーにインラインポリシーを設定する
今回はこのユーザーのみにしか必要のない権限のため
インラインポリシーで作成する。
①インラインポリシーの追加をクリック
②JSONタブをクリックし、JSONを入力する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::aaabbbccc-smallit/*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::aaabbbccc-smallit" } ] } |
権限の説明:
以下でS3のディレクトリに対して操作する権限を付与している
“s3:PutObject”:オブジェクトのアップロード
“s3:GetObject”:オブジェクトの取得
“s3:DeleteObject”:オブジェクトの削除
1 2 3 4 5 6 7 8 9 10 |
{ "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::aaabbbccc-smallit/*" }, |
以下でS3のバケットに対して操作する権限を付与している
“s3:ListBucket”:バケットの一覧を取得
※もしS3バケットがバージョン管理している場合は”s3:ListBucketVersions”の権限も必要になる
1 2 3 4 5 6 |
{ "Sid": "VisualEditor1", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::aaabbbccc-smallit" } |
③ポリーの確認をクリック
名前:インラインポリシーの名前を入力
④ポリシーの作成をクリック
アクセス権限がアタッチされていれば、プログラムからS3オブジェクトの一覧が取得可能となる。
以上
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>