[AWS]「S3」ファイルサーバの構築

S3バケットをファイルサーバとして利用するように設定します。

1. ログ記録用S3バケットの作成

まず、ログを記録するためのS3バケットを作成します。
※ログを記録しない場合には、この作業は不要です。
  • AWS マネジメントコンソールにログインします。
  • サービスメニューより「s3」をクリックします。
(1) バケットの作成
  • 左側のローカルメニューの「バケット」をクリックして、「バケットを作成」ボタンをクリックします。
■一般的な設定
バケット名 (例)example-jp-storage-logs
リージョン アジアパシフィック(東京)
既存のバケットから設定をコピー (コピーしないのでそのまま)
※バケット名は任意ですので、分かりやすい名前を付けて下さい。
■オブジェクト所有者
ACL無効 (推奨)
ACL有効

■このバケットのブロックパブリックアクセス設定
パブリックアクセスをすべて ブロック
■バケットのバージョニング
無効にする
有効にする
■タグ
(任意に設定)
■デフォルトの暗号化
サーバー側の暗号化
無効にする
有効にする
■詳細設定
オブジェクトロック
無効にする
有効にする
  • 「バケットを作成」ボタンをクリックします。
(2) ライフサイクルルールの作成
ログの保存期間を設定するためにライフサイクルルールを作成します。
  • バケットの一覧から作成したバケットの名前をクリックします。
  • 「管理」タブをクリックします。
  • 「ライフサイクルルール」項目において、「ライフサイクルルールを作成する」をクリックします。
■ライフサイクルルールの設定
ライフサイクルルール名 (例)example-jp-storage-logs-life-cycle-rules
ルールスコープを選択
1 つ以上のフィルターを使用してこのルールのスコープを制限する
バケット内のすべてのオブジェクトに適用
バケット内のすべてのオブジェクトに適用
このルールがバケット内のすべてのオブジェクトに適用されることを了承します。
■ライフサイクルルールのアクション
オブジェクトの最新バージョンをストレージクラス間で移動
オブジェクトの非現行バージョンをストレージクラス間で移動
オブジェクトの現行バージョンを有効期限切れにする
オブジェクトの非現行バージョンを完全に削除
有効期限切れのオブジェクト削除マーカーまたは不完全なマルチパートアップロードを削除
※バージョニングが無効の場合には、削除になります。
■オブジェクトの現行バージョンの有効期限が切れる
オブジェクト作成後の日数 30
  • 「ルールの作成」ボタンをクリックします。

2. ファイルサーバ用S3バケットの作成

ファイルサーバとして使用するためのS3バケットを作成します。
(1) バケットの作成
  • 左側のローカルメニューの「バケット」をクリックして、「バケットを作成」ボタンをクリックします。
■一般的な設定
バケット名 (例)example-jp-storage
リージョン アジアパシフィック(東京)ap-northeast-1
既存のバケットから設定をコピー (コピーしないのでそのまま)
※バケット名は任意ですので、分かりやすい名前を付けて下さい。
■オブジェクト所有者
ACL無効 (推奨)
ACL有効
オブジェクト所有者
希望するバケット所有者
オブジェクトライター
■このバケットのブロックパブリックアクセス設定
パブリックアクセスをすべて ブロック
■バケットのバージョニング
無効にする
有効にする
■タグ
(任意に設定)
■デフォルトの暗号化
サーバー側の暗号化
無効にする
有効にする
暗号化キータイプ
Amazon S3 マネージドキー (SSE-S3)
AWS Key Management Service キー (SSE-KMS)
■詳細設定
オブジェクトロック
無効にする
有効にする
  • 「バケットを作成」ボタンをクリックします。
(2) サーバーアクセスのログ記録
サーバアクセスのログを記録します。
  • バケット一覧より作成したバケット名をクリックします。
  • 「プロパティ」タブを選択します。
  • 「サーバーアクセスのログ記録」の項目の「編集」ボタンをクリックします。
■サーバーアクセスのログ記録
無効にする
有効にする
1.で作成したアクセスログ記録用バケットを指定します。
「(prefix)」はログの先頭に付ける文字列です。
ターゲットバケット s3://(バケット名)/(prefix)
【例】
ターゲットバケット s3://example-jp-storage-logs/access-logs/
※prefixの名称の後に「/」を付加すると、prefix名のディレクトリを作成して記録します。
  • 「変更の保存」ボタンをクリックします。
※ログ記録の有効化してから実際にログが記録されるまでに、数時間かかります。

(3) IP制限
特定のIPアドレスからしかアクセスを許可しない場合に設定します。
  • バケット一覧から該当のバケット名をクリックします。
  • 「アクセス許可」タブをクリックします。
  • 「バケットポリシー」の「編集」をクリックします。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::(バケット名)",
                "arn:aws:s3:::(バケット名)/*"
            ],
            "Condition": {
                bool"NotIpAddress": {
                    "aws:SourceIp": [
                        "***.***.***.***/32",
                        "***.***.***.***/32"
                    ]
                },
                "Bool": {
                    "aws:ViaAWSService": "false"
                },
                "StringNotEquals": {
                    "aws:sourceVpc": [
                        "(VPC ID)",
                        "(VPC ID)"
                    ]
                }
            }
        }
    ]
}
 
「(バケット名)」に実際のバケット名を記入します。
「***.***.***.***」にアクセスを許可するIPアドレスを記入します。
「(VPC ID)」に許可するVPCのIDを記入します。

※「Bool:"aws:ViaAWSService": "false"」は、他のAWSのサービスからのアクセスはDENYの対象外という意味なので、必ず指定しておきます。
  • 「変更の保存」ボタンをクリックします。

3. ユーザーの作成

(1) ユーザーグループの作成
ファイルサーバとして利用するバケットにアクセスできるグループを作成します。
  • サービスメニューより「IAM」(Identity and Access Management)を実行し、ダッシュボードを表示します。
  • 「アクセス管理」から「User groups」をクリックします。
  • 「グループを作成」ボタンをクリックします。
ユーザーグループ名 (任意のグループ名)
【例】
ユーザーグループ名 S3AccessFileServerGroup
  • アクセス許可ポリシーを何も選択せずに、「グループを作成」ボタンをクリックします。
  • ユーザーグループのリストに作成されたグループが表示されます。
  • 「許可」タブをクリックします。
  • 右側の「アクセス許可を追加」リストから「インラインポリシーを作成」を選択します。
  • 「JSON」タブをクリックして、以下のコードを貼り付けます。
※「(バケット名1)」、「(バケット名2)」にアクセスするバケット名を記入します。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetBucketLocation",
                "s3:GetObjectVersion",
                "s3:ListBucketVersions",
                "s3:GetObjectACL",
                "s3:PutObjectACL"
            ],
            "Resource": [
                "arn:aws:s3:::(バケット名1)",
                "arn:aws:s3:::(バケット名1)/*",
                "arn:aws:s3:::(バケット名2)",
                "arn:aws:s3:::(バケット名2)/*"
            ]
        }
    ]
}
 
※各Actionの説明は、「Amazon S3 のアクション、リソース、条件キー」の「Amazon S3 で定義されるアクション」を参照して下さい。

  • 「ポリシーの確認」をクリックします。
名前 (任意のポリシー名)
【例】
名前 S3AccessFileServerPolicy
  • 「ポリシーの作成」をクリックします。

(2) ユーザーの作成
  • 左側のローカルメニューから「ユーザー」を実行します。
  • 「ユーザーを追加」ボタンをクリックします。
■ユーザーを追加
ユーザー詳細の設定
  • 任意のユーザー名を入力します。
ユーザー名 (例)example-jp-user01
AWS アクセスの種類を選択
アクセスキー・プログラムによるアクセス
パスワード・AWSマネジメントコンソールへのアクセス
  • 「次のステップ:アクセス権限」ボタンをクリックします。
■アクセス許可の設定
アクセス許可の設定 ユーザをグループに追加
ユーザーをグループに追加
  • (1)で作成したユーザグループにチェックを付けます。
(例)S3AccessFileServerGroup
  • 「つぎのステップ:タグ」ボタンをクリックします。
■タグの追加 (オプション)
  • 必要に応じてタグを登録します。
  • 「次のステップ:確認」ボタンをクリックします。
■確認
  • 「ユーザーの作成」ボタンをクリックします。
■成功
  • この画面に表示されている「アクセスキーID」、「シークレットアクセスキー」をコピーするか、「.csvのダウンロード」ボタンをクリックして、アカウント情報をダウンロードします。
※この画面を閉じると「アクセスキーID」、「シークレットアクセスキー」は再表示できなくなるので注意して下さい。
  • 「閉じる」ボタンをクリックして、画面を閉じます。


最終更新:2022年06月14日 06:56