【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

今回は、新ユーザーを作成して「アクセスキー」「シークレットキー」を作成し、Windows よりインターネット経由で AWS S3 にアクセスをするための設定手順について解説をします。

 

 

 

Amazon S3(Simple Storage Service)とは

Amazon S3(Simple Storage Service)とは、インターネット上にあるストレージサービスです。

S3 の堅牢性はイレブンナイン(9が11個)と呼ばれ、99.999999999% の耐久性があると言われています。

このイレブンナインですが、絶対に S3 のサービスが停止しないというわけではなく、1年のうちに S3 を利用できない時間が数分間という意味のようです。

 

Amazon S3 料金表

Amazon S3 の料金表です。

 

Amazon S3 Pricing
https://aws.amazon.com/jp/s3/pricing/?p=ps

 

下図を確認しても分かりますが、ほとんどの企業でも「50TB」は超えることはないと思うので「実質「0.025USD/GB」で利用できます。

※仮に超えたとしても「0.024USD/GB」となり多少割安になります。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

S3 はバックアップ用ストレージに優れている

S3 の「データ転送料金表」を確認すると S3 はバックアップ用ストレージとして優れています。

基本的にバックアップデータは万が一の時のために保存するだけで、万が一がなければバックアップデータを復元することはないため「データ転送料金」としては実質0円と計算できます。

しょっちゅうバックアップデータをリストアするような環境の場合は、別のサービスを利用する方がお得かもしれません。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

Amazon S3 の利用料金の計算例

例えば、バックアップデータ100GBを7世代(一週間分)取得するとして

100GB×7=700GB

1USD=113.65円

700GB×0.025×113.65=1988.875円

1か月 1,988円

 

700GB のバックアップデータを「Amazon S3」に保存するとした場合、1か月の利用料金は約2,000円になります。

 

 

作業の概要

以下の手順で設定し動作確認をします。

  1. Amazon S3 バケットの作成
  2. S3へアクセスするための「ユーザー」と「アクセスキー(Access key ID)」と「シークレットキー(Secret access key)」を取得する
  3. Windows に AWS Cli をインストールする
  4. S3 へのアクセス確認

 

 

 

Amazon S3 バケットの作成手順

初めに Amazon S3 バケットを作成します。

 

AWS マネジメントコンソールにログインし、「サービス」-「ストレージ」-「S3」をクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

 

Amazon S3 のトップ画面に移動するので、下図のように「バケットを作成する」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

 

以下のように「バケットの作成」画面が表示されます。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

「DNS準拠のバケット名」と記載があります。

 

 

 

S3バケットの命名規則

Amazon S3 バケットの命名規則は以下のようにまとめられています。

 

バケットの制約と制限

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/BucketRestrictions.html

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

バケット名は「DNS 命名規則に沿って命名する必要があります。」とありますが、「DNS 命名規則」とはなんでしょうか。

 

 

■ DNS 命名規則とは

DNS 命名規則を簡単にまとめると以下のようになります。

 

 

 

以下のようにバケット名を入力して「次へ」ボタンをクリックします。

■①名前とリージョン【Part.1】

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

■①名前とリージョン【Part.2】

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

バージョニングとは

バージョニングを使用すると、1 つのバケットで複数バージョンのオブジェクト(ファイルなど)を維持できます。

つまりバージョニングとは、同じバケット内でファイルの複数バージョンを保持する機能です。

(Windows のシャドウコピーがイメージしやすいかもしれません)

 

バージョニングを利用すると Amazon S3 バケットに格納されたあらゆるファイルの過去のバージョンを取得したり復元できます。

そのため、誤ってユーザーがファイルを消した場合や、過去のファイルを上書きしてしまった場合でも簡単に回復することができます。

 

 

■今回の S3 使用方法

今回作成した S3 バケットは、バックアップファイルを保存する目的で、バックアップファイルは以下のように考えています。

【ファイル名の例】

つまり日付ごとのバックアップファイルで、障害がなければファイルを開くことはないため、バージョニングの機能は不要です。

 

サーバーアクセスのログ記録とは

サーバーアクセスのログには、バケットに対するリクエストの詳細が記録され、そのログ情報はセキュリティやアクセスの監査に役立ちます。

Amazon S3 バケットに対するサーバーアクセスのログ記録を有効にしても追加料金は発生しませんが、システムが配信するログファイルについては、通常のストレージ料金がかかります (ログファイルはいつでも削除できます)。

今回は利用しません。

「次へ」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

■③アクセス許可の設定画面

「パブリックアクセス許可を管理する」で、今回は「このバケットにパブリック読み取り権限を付与しない(推奨)」を選択します。

※パブリックアクセスを許可にすると世界中からアクセスが可能になるので注意です。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

以下の 2 つの S3 へのパブリックアクセスの許可を設定できます。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

設定を確認し問題がなければ「バケットを作成」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

以下のように S3 バケットが作成されました。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

S3へアクセスするための「ユーザー」「アクセスキー(Access key ID)」「シークレットキー(Secret access key)」を取得する手順

S3へアクセスするための「ユーザー」「アクセスキー(Access key ID)」「シークレットキー(Secret access key)」を取得する手順です。

 

AWS コンソール画面にログインし、下図のようにアカウントをクリックし「セキュリティ認証情報」をクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

「セキュリティ認証情報」画面に移動したら、右側ペインより「ユーザー」をクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

「ユーザーを追加」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

下図のように設定を入れます。

「アクセス権限」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

下図のように設定します。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

 

下図のように「ポリシーのフィルタ」「S3」と入力して検索すると、「AmazonS3FullAccess」が検索結果として表示されるのでクリックします。

「確認」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

設定を確認し問題がなければ「ユーザーの作成」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

以下のように「ユーザーを追加」画面が表示されるので「.csv のダウンロード」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

「credentials.csv」ファイルがダウンロードされるのでダブルクリックして開きます。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

以下のように「User name」「Access key ID」「Secret access key」が記載されていることを確認します。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

AmazonS3FullAccess の権限内容の確認

今回割り当てた「AmazonS3FullAccess」の権限はどのように規定されているのか確認します。

 

今回作成した

 

 

今回割り当てたデフォルトで存在している「AmazonS3FullAccess」は、下図のように「Resource」 "*(アスタリスク)"になっているため、すべての S3 に対して権限が割り当てられます。

そのため、特定の S3 に対してのみ権限を割り当てたい場合は、別途ポリシー(例:AmazonS3BackupFullAccess等)を作成し、Resource に特定のバケットを設定します。

 

 

 

 

S3 バケットのアクセス権の設定手順

S3 バケットのアクセス権は「アクセス権限」タブをクリックすると以下のように 3つのボタンを確認できます。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

下図のようにアカウントの「AWS 正規ユーザー ID(Cannonical User ID)」を確認できます。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

AWS 正規ユーザー ID(AWS Cannonical User ID)の確認方法

他にも AWS 正規ユーザー ID(AWS Cannonical User ID)は AWS マネジメントコンソールより確認することができます。

 

アカウントをクリックして「セキュリティ認証情報」をクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

 

下図のように「AWS アカウント ID(AWS Account ID)」「正規ユーザー ID(Cannonical User ID)」を確認することができます。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

 

アクセスコントロールリストについて

「バケット」「オブジェクト(ファイル)」へのアクセスを管理できます。

各バケットとオブジェクトには ACL がアタッチされています。

各バケットとオブジェクトに対してアクセスが許可される「アカウントもしくはグループ」「アクセスの種類」が定義されます。

 

 

バケットポリシーについて

ポリシーを JSON で定義します。

上部でユーザー「backup-s3-upload-user」にポリシー「AmazonS3FullAccess」を割り当てて「アクセスキー」「シークレットキー」を取得する手順を解説しましたが、「バケットポリシー」は設定画面に直接ポリシーを書き込むイメージです。

特定の IAMユーザー、特定の AWS アカウントを指定できます。

Condition(条件)で接続元IPアドレスを絞ったり、細かく条件を指定できます。

 

■バケットポリシーの例

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/example-bucket-policies.html

 

 

バケットポリシーの例


  "Version":"2012-10-17", 
  "Statement":[ 
    { 
      "Sid":"AddPerm", 
      "Effect":"Allow", 
      "Principal": "*", 
      "Action":["s3:GetObject"], 
      "Resource":["arn:aws:s3:::examplebucket/*"] 
    } 
  ] 
}

 

 

バケットの ARN は以下の方法で確認できます。

下図の赤い枠で囲まれた部分をクリックします。

※「backup-s3-001」のリンクをクリックするとバケットの下に移動します。

 

 

 

下図の「バケット ARN をコピーする」ボタンをクリックすると、ARN をコピーすることができます。

 

 

 

 

CORS の設定について

CORSは「Cross-Origin Resource Sharing」の略です。

特定のドメインにロードされた クライアント ウェブ アプリケーション が異なるドメイン内のリソースと通信する方法を定義します。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

Windows に AWS Cli をインストールする手順

S3 へのバックアップファイルのアップロードのため Windows に AWS Cli をインストールします。

 

以下のURLにアクセスします。

Microsoft Windows で AWS Command Line Interface をインストールする
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/awscli-install-windows.html

 

使用している Windows の「システムの種類」を確認し「64ビット」もしくは「32ビット」の MSI インストーラの URL をクリックしてダウンロードします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

「コントロールパネル」-「システム」をクリックして「64ビット」もしくは「32ビット」かを確認します。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

ダウンロードした「AWSCLI32.msi」ファイルをダブルクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

下図の画面が表示されたら「実行」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

「Next」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

「I accept the terms in the License Agreement」にチェックを入れて「Next」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

「Next」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

「Install」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

インストールが完了したら「Finish」ボタンをクリックします。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

S3 へのアクセス確認

最後に S3 へアクセスができるか確認します。

 

コマンドプロンプトを起動します。

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

 

 

以下のように「aws --version」コマンドを実行し、aws-cliのバージョンが表示されれば正常にインストールされています。

C:\>aws --version 
aws-cli/1.16.24 Python/2.7.15 Windows/7 botocore/1.12.14 
 
C:\>

 

 

以下のように「aws configure」コマンドで先ほど取得した「アクセスキー(Access Key ID)」「シークレットキー(Secret Access Key)」を設定します。

C:\>aws --version 
aws-cli/1.16.24 Python/2.7.15 Windows/7 botocore/1.12.14 
 
C:\>aws configure 
AWS Access Key ID [None]: AKXXXXXXXXXXXXXXXQ 
AWS Secret Access Key [None]: NXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXd 
Default region name [None]: ap-northeast-1
Default output format [None]: json
 
C:\> 

 

 

「aws s3 ls」コマンドを実行し以下のようにバケット一覧が表示されれば正常に設定ができています。

C:\>aws s3 ls 
C:\Program Files\Amazon\AWSCLI\.\dateutil\parser\_parser.py:1175: UnicodeWarning : Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal 
2018-09-30 20:11:25 backup-s3-001 
2018-09-30 20:13:04 test-backup-01 
 
C:\>

 

【AWS】【S3】作成手順 & アップロード手順 & アクセス権限設定手順

 

 

Amazon S3 へアクセスするためのポート

社内やデータセンターから Amazon S3 へアクセスする場合は、ファイアウォールでアウトバウンドで「TCP/443」を許可しておきます。

 

 

 

まとめ

ポリシーや権限がいろいろからんで複雑に見えますが、シンプルに以下の手順で S3 に正しくアクセス権限を設定できると思います。

  1. どこに誰からどの権限でアクセスをさせたいのか決める(設計)
  2. S3バケットを作る←ARNができる
  3. 作成したS3バケット用のポリシーを作る(AmazonS3FullAccessをコピーしてリソースや権限を変更して作る)
  4. 新規でユーザーを作成し、作成したポリシーを割り当てて、「アクセスキー」と「シークレットキー」を取得する
  5. クライアントに「AWS CLI」をインストールして「アクセスキー」と「シークレットキー」を設定する

 

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人