WindowsからAWS S3にファイルをアップロードするガイド

 

AWS初心者でも迷わないように、実際の手順とつまづきやすいポイントを含めてまとめました。この記事では、AWSコンソールの設定からWindows PowerShellでファイルをアップロードできる状態までを丁寧に解説します。

2. IAMユーザーを作成してアクセスキーを取得する

AWS CLIでS3を使うには、AWSアクセスキーIDとシークレットアクセスキーが必要です。

2-1. IAMコンソールを開く

  1. AWSコンソールの検索バーに「IAM」と入力します。
  2. IAM をクリックしてIAMダッシュボードを開きます。

2-2. ユーザーを追加する

  1. 左メニューの「ユーザー」をクリックします。
  2. ユーザーを追加 をクリックします。

2-3. ユーザー情報の入力

  • ユーザー名: user
  • アクセスタイプ: プログラムによるアクセス

2-4. 権限を付与する

今回は簡単に始められるように、AmazonS3FullAccess を一時的に付与します。

  1. 既存のポリシーを直接アタッチ を選択
  2. AmazonS3FullAccess にチェック

実運用では、必要な権限だけに絞ることが安全です。

2-5. アクセスキーを保存する

ユーザー作成後に表示される Access key IDSecret access key を必ず保存します。

この画面は1回しか表示されないため、メモまたは安全な場所に保存してください。

3. S3バケットを作成する

3-1. S3コンソールを開く

AWSコンソールの検索バーに「S3」と入力して、S3サービスを開きます。

3-2. 新しいバケットを作成する

  1. バケットを作成 をクリック
  2. バケット名を入力
    例: sample-upload-bucket-2026
  3. リージョンを選択
    例: アジアパシフィック(東京)
  4. ほかは基本的にデフォルトのままでOK
  5. 作成 をクリック

バケット名は世界で一意である必要があります。他の人と重ならない名前を付けてください。

4. WindowsにAWS CLIをインストールする

4-1. AWS CLIをダウンロードしてインストール

  1. AWS公式サイトでAWS CLI v2をダウンロードします。
  2. インストーラーを実行してインストールします。

4-2. PowerShellでインストール確認

PowerShellを開き、次のコマンドを実行します。

aws --version

正常にインストールされていれば、aws-cli/2.x.x のように表示されます。

5. AWS CLIでプロファイルを設定する

5-1. default プロファイルを設定する

以下のコマンドを実行します。

aws configure

次の入力を求められます。

  • AWS Access Key ID
  • AWS Secret Access Key
  • Default region name
    例: ap-northeast-1
  • Default output format
    例: json

aws configure は一度実行すればよく、毎回設定する必要はありません。

5-2. プロファイルを確認する

プロファイルが設定されているか確認するには、次のコマンドを使います。

aws configure list

6. PowerShellからファイルをアップロードする

6-1. 1ファイルをアップロードする

以下のコマンドでアップロードできます。

aws s3 cp "C:\example.txt" "s3://sample-upload-bucket-2026/upload/example.txt"

次の内容を確認してください。

  • C:\example.txt はアップロードしたいファイルのパス
  • sample-upload-bucket-2026 は作成したS3バケット名
  • upload/example.txt はS3上の保存先パス

ファイルアップロード

6-2. プロファイル指定を使う場合

aws s3 cp "C:\example.txt" "s3://sample-upload-bucket-2026/upload/example.txt" --profile myprofile

default プロファイルを使っている場合は --profile は不要です。

7. つまづきやすいポイントと対処法

7-1. AccessDenied が出た場合

AccessDenied: User arn:aws:iam::xxxxxxxxxxx:user/xxxxx is not authorized to perform: s3:ListBucket

原因

aws s3 cp はバケット内の一覧確認の操作を行うため、s3:ListBucket 権限が必要な場合があります。IAMユーザーにその権限がないとエラーになります。

対処

IAMコンソールのユーザーに、以下のようなポリシーを追加します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::sample-upload-bucket-2026",
        "arn:aws:s3:::sample-upload-bucket-2026/*"
      ]
    }
  ]
}

IAMポリシー編集

7-2. プロファイルは毎回作成しなくてよい

一度 aws configure を実行して default または任意のプロファイルを作成すれば、次回以降は同じプロファイルを使って何度でも実行できます。

7-3. default プロファイルを使うメリット

  • --profile を省略できる
  • 設定がシンプルになる
  • AWS CLI初心者におすすめ

8. 実用的なPowerShellスクリプト

Windowsで繰り返し使いたいなら、以下のスクリプトを保存しておくと便利です。

param(
    [Parameter(Mandatory=$true)]
    [string]$FilePath,

    [Parameter(Mandatory=$true)]
    [string]$BucketName,

    [Parameter(Mandatory=$true)]
    [string]$Key,

    [string]$Region = "ap-northeast-1",
    [string]$Profile = ""
)

try {
    $awsVersion = aws --version 2>$null
    Write-Host "AWS CLIがインストールされています: $awsVersion"
} catch {
    Write-Error "AWS CLIがインストールされていません。https://aws.amazon.com/cli/ からインストールしてください。"
    exit 1
}

if (-not (Test-Path $FilePath)) {
    Write-Error "指定されたファイルが見つかりません: $FilePath"
    exit 1
}

$awsArgs = @("sts", "get-caller-identity", "--region", $Region)
if ($Profile) {
    $awsArgs += @("--profile", $Profile)
}

try {
    aws @awsArgs | Out-Null
    Write-Host "AWS認証情報が正しく設定されています。"
} catch {
    Write-Error "AWS認証情報が設定されていません。aws configure を実行するか、環境変数を設定してください。"
    exit 1
}

$uploadArgs = @("s3", "cp", $FilePath, "s3://$BucketName/$Key", "--region", $Region)
if ($Profile) {
    $uploadArgs += @("--profile", $Profile)
}

Write-Host "ファイルをアップロード中: $FilePath -> s3://$BucketName/$Key"
try {
    aws @uploadArgs
    Write-Host "アップロードが完了しました。"
} catch {
    Write-Error "アップロードに失敗しました: $_"
    exit 1
}

実行例

.upload-to-s3.ps1 -FilePath "C:\example.txt" -BucketName "sample-upload-bucket-2026" -Key "upload/example.txt"

Profile を指定したい場合は -Profile "myprofile" を追加できます。

9. 大量ファイルをアップロードしたいとき

大量のファイルやフォルダをまとめて転送するなら sync を使うと便利です。

aws s3 sync "C:\Users\upload-folder" "s3://sample-upload-bucket-2026/upload-folder"
  • 新しいファイルだけを転送
  • 更新されたファイルだけ再転送
  • フォルダー構造を保持

10. まとめ

  • AWSの初期設定は IAMユーザー作成アクセスキー取得aws configure
  • default プロファイルなら毎回 --profile は不要
  • AccessDenied が出たら s3:ListBucket などの権限を追加する
  • upload-to-s3.ps1 を使えばPowerShellから簡単にアップロードできる
  • 大量ファイルは aws s3 sync が便利

これで、Windows環境からAWS S3にファイルをアップロードできるようになります。必要なら、次に「AWS SSOを使う場合の手順」や「IAM権限をより安全に設計する方法」もご案内します。

コメント

タイトルとURLをコピーしました