AWS初心者でも迷わないように、実際の手順とつまづきやすいポイントを含めてまとめました。この記事では、AWSコンソールの設定からWindows PowerShellでファイルをアップロードできる状態までを丁寧に解説します。
1. まずはAWSアカウントにログイン
- ブラウザでAWSマネジメントコンソールにアクセスします。
- メールアドレスとパスワードを入力し、ログインします。
まだAWSアカウントを作成していない場合は、先にアカウント登録を行ってください。
2. IAMユーザーを作成してアクセスキーを取得する
AWS CLIでS3を使うには、AWSアクセスキーIDとシークレットアクセスキーが必要です。
2-1. IAMコンソールを開く
- AWSコンソールの検索バーに「IAM」と入力します。
IAMをクリックしてIAMダッシュボードを開きます。
2-2. ユーザーを追加する
- 左メニューの「ユーザー」をクリックします。
ユーザーを追加をクリックします。
2-3. ユーザー情報の入力
- ユーザー名:
user - アクセスタイプ: プログラムによるアクセス
2-4. 権限を付与する
今回は簡単に始められるように、AmazonS3FullAccess を一時的に付与します。
既存のポリシーを直接アタッチを選択AmazonS3FullAccessにチェック
実運用では、必要な権限だけに絞ることが安全です。
2-5. アクセスキーを保存する
ユーザー作成後に表示される Access key ID と Secret access key を必ず保存します。
この画面は1回しか表示されないため、メモまたは安全な場所に保存してください。
3. S3バケットを作成する
3-1. S3コンソールを開く
AWSコンソールの検索バーに「S3」と入力して、S3サービスを開きます。
3-2. 新しいバケットを作成する
バケットを作成をクリック- バケット名を入力
例:sample-upload-bucket-2026 - リージョンを選択
例:アジアパシフィック(東京) - ほかは基本的にデフォルトのままでOK
作成をクリック
バケット名は世界で一意である必要があります。他の人と重ならない名前を付けてください。
4. WindowsにAWS CLIをインストールする
4-1. AWS CLIをダウンロードしてインストール
- AWS公式サイトでAWS CLI v2をダウンロードします。
- インストーラーを実行してインストールします。
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/*"
]
}
]
}

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権限をより安全に設計する方法」もご案内します。

コメント