S3オブジェクトの軽量化とアクセス許可

LightFileボット🤖は、S3バケット内の画像オブジェクト(ファイル)を巡回して軽量化することも可能です。S3バケットへのアクセスを許可する方法には次のふたつがあります。

  1. 弊社のIAMユーザーにクロスアカウントアクセス許可を設定いただく(推奨)
  2. IAMユーザーの認証を提供いただく

弊社のIAMユーザーにクロスアカウントアクセス許可を設定いただく方法

弊社がすでに用意したIAMユーザー(arn:aws:iam::270961102979:user/lightfile-bot)にアクセス許可を設定いただく方法です。

手間が少なく、認証情報の受け渡しも必要ないため安全です。こちらの方法を推奨します。

対象のバケットのバケットポリシーに次のJSONを設定してください。YOUR-BUCKET-NAMEの部分は実際のバケット名に置き換えてください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::270961102979:user/lightfile-bot"
            },
            "Action": [
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:GetObjectTagging",
                "s3:PutObjectTagging",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::YOUR-BUCKET-NAME/*",
                "arn:aws:s3:::YOUR-BUCKET-NAME"
            ]
        }
    ]
}

バケットポリシーをすでに設定済みの場合は、Statementの部分を既存のStatementに追加してください。

IAMユーザーの認証を提供いただく方法

御社のAWSアカウント内に、LightFileボット🤖用に必要最低限の権限を付与したIAMユーザーを作成し、そのアクセスキーIDとシークレットアクセスキーを共有ください。

必要最低限の権限としては、次のポリシーStatementを参考にしてください。YOUR-BUCKET-NAMEは対象のS3バケット名に置き換えてください。

{
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:GetObjectAcl",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:GetObjectTagging",
        "s3:PutObjectTagging",
        "s3:PutObjectAcl"
    ],
    "Resource": [
        "arn:aws:s3:::YOUR-BUCKET-NAME/*",
        "arn:aws:s3:::YOUR-BUCKET-NAME"
    ]
}