Help us understand the problem. What is going on with this article?

s3cmd put するために必要最小限の IAM Policy

More than 5 years have passed since last update.

夜な夜なバックアップを取って s3cmd put しようと思い、専用の IAM ユーザを作成しました。万一のことがあってもデータを削除されたりすることのないよう、バックアップファイルを put するだけに必要な最小の IAM Policy は下記です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketLocation",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::{{ bucket-name }}",
        "arn:aws:s3:::{{ bucket-name }}/*"
      ]
    }
  ]
}

s3:GetBucketLocation が必要なところでひとしきりハマってました……。

この記事の本題ではありませんが、上記の Policy だと、 s3cmd --configure で最後に接続確認テストで失敗になります( s3cmd put でアップロードできることは確認しています)。もしここで接続確認テストを通過させたいのであれば s3:ListAllMyBuckets が必要なので下記のようになるでしょう。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketLocation",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::youcube-backups",
        "arn:aws:s3:::youcube-backups/*"
      ]
    }
  ]
}
m3dev
インターネット、最新IT技術を活用し日本・世界の医療を改善することを目指します
https://m3.recruitment.jp/engineer/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away