ガイド

Amazon S3のファイルマネージャー: Nubboに接続する

Amazon S3バケットをNubboに接続する方法。必要なIAMキー、ウィザードの各手順、CORSルール、うまくいかないときの対処法を説明します。

NubboはIAMアクセスキーを使ってAmazon S3に接続します。数分でバケットがファイルエクスプローラーに表示され、何も公開せずに直接アップロード、共有リンク、ギャラリーを使えるようになります。このガイドでは、自動接続と1つのバケットに限定したキーでの接続という2つの方法について、Nubboのウィザードを順を追って説明します。

できること

  • バケットをドライブのように閲覧: フォルダ、表示切り替え、検索、ゴミ箱、ラベル、お気に入り。
  • ブラウザとAmazon S3の間でファイルを直接アップロード、ダウンロード。ファイルがNubboのサーバーを経由することはありません。
  • パスワード、有効期限、ダウンロード回数制限付きでファイルやフォルダを共有し、バケットにファイルを受け取り、ギャラリーを作成。
  • キーはAES-256-GCMで暗号化して保存され、いつでもバケットの接続を解除できます。

始める前に

Amazon S3のアカウントとNubboのアカウントが必要です。接続する各バケットがプランの上限にカウントされます: 無料プランは2つ、Personalは5つまでで、Proは無制限です。一部のAWSリージョン(ミラノ、チューリッヒ、ケープタウンなど)はデフォルトで無効になっており、使う前にアカウントで有効にする必要があります。そのいずれかにバケットを作成する場合は、先に有効にしてください。Block Public Accessをオフにする必要はありません。Nubboはバケットを非公開のまま使います。

接続方法を選ぶ

Nubboのウィザードには2つの方法があります。どちらも最後は同じで、バケットが接続され、ブラウザからアップロードできる状態になります。

自動限定キーで接続
キーアカウント全体にアクセス1つのバケットに限定
バケットNubboが既存のバケットを使うか新規作成する先にご自身で作成する
CORSNubboがルールを追加するご自身でルールを追加する
選ぶべき場合いちばん早い方法アカウント全体へのアクセスを許可したくない場合

自動接続

ステップ1: Amazon S3でキーを作成する

  1. AWSコンソールにサインインして IAM を開きます。アカウントのルートユーザーではなく、必ずIAMユーザーを使ってください。
  2. ユーザー に移動して ユーザーを作成 を押します。nubbo などの名前を付けて 次へ を押します。
  3. アクセス許可を設定 で ポリシーを直接アタッチ を選び、AmazonS3FullAccess を検索してチェックを入れ、ユーザーを作成します。
  4. ユーザーを開いて セキュリティ認証情報 タブに移動し、アクセスキー で アクセスキーを作成 を押します。
  5. ユースケースとしてAWSの外部で実行するアプリケーション(表示されない場合は その他)を選び、次へ と アクセスキーを作成 を押します。
  6. .csv ファイルをダウンロード を押します。AWSでシークレットアクセスキーを確認できるのはこのときだけです。

ステップ2: Nubboでバケットを接続する

  1. Nubboで バケット を開き、バケットを接続 を押します。Amazon S3 を選んで 続行 を押します。

    Amazon S3を選択したNubboウィザードのプロバイダーのステップ Amazon S3を選択したNubboウィザードのプロバイダーのステップ
  2. 自動 を選んで 続行 を押します。

    自動と限定キーで接続の選択肢がある接続方法のステップ 自動と限定キーで接続の選択肢がある接続方法のステップ
  3. キー のステップで ファイルをアップロード を押してダウンロードしたCSVを選ぶか、その内容をテキストボックスに貼り付けます。Nubboがアクセスキーとシークレットを読み取るので、手で写す必要はありません。リージョン がバケットのリージョンと同じか確認し、キーを確認 を押します。Nubboはキーが有効で、アカウント全体にアクセスできることを確認します。

    クイックガイドとキーの入力欄があるAmazon S3のキーのステップ クイックガイドとキーの入力欄があるAmazon S3のキーのステップ
  4. バケットを1つ選んで このバケットを使用 を押すか、新規作成 を選んで名前を入力し(求められた場合はリージョンも選び)、作成して準備 を押します。Nubboはアプリからのアップロードとダウンロードだけを許可するCORSルールをバケットに追加し、既存のルールはそのまま残します。

    バケットの一覧と新規作成の選択肢があるバケットのステップ バケットの一覧と新規作成の選択肢があるバケットのステップ
  5. 3つのチェックを確認し、必要なら Nubboでの名前 を変更して 完了 を押します。バケットが バケット ページに表示され、エクスプローラーで開けるようになります。

    接続、バケット、CORSのチェックが表示された完了のステップ 接続、バケット、CORSのチェックが表示された完了のステップ

お使いのキーでNubboがCORSルールを追加できない場合、ウィザードは CORS のステップに進みます。その場合は CORSルールの追加 の手順に従ってください。

限定キーでの接続

ステップ1: Amazon S3でバケットとキーを準備する

  1. コンソール上部のバーでリージョンを選び、S3 を開いて 汎用バケット で バケットを作成 を押します。名前(3〜63文字の小文字、数字、ドット、ハイフン)を付け、Block Public Accessをオンにしたまま作成します。
  2. IAM で権限のないユーザーを作成します(ユーザー、ユーザーを作成)。
  3. ユーザーを開き、アクセス許可 タブ、アクセス許可を追加、インラインポリシーを作成 の順に進みます。JSON エディターに切り替え、次のポリシーを貼り付けて YOUR-BUCKET をバケット名に置き換え、名前を付けて保存します。
  4. 自動接続と同じように セキュリティ認証情報、アクセスキーを作成 でキーを作成し、CSVをダウンロードします。
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
      "Resource": "arn:aws:s3:::YOUR-BUCKET"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:AbortMultipartUpload",
        "s3:ListMultipartUploadParts"
      ],
      "Resource": "arn:aws:s3:::YOUR-BUCKET/*"
    }
  ]
}

ステップ2: Nubboでバケットを接続する

  1. バケット ページで バケットを接続 を押し、Amazon S3 を選んでから 限定キーで接続 を選びます。
  2. キーのCSVをアップロードするか内容を貼り付け、バケットのリージョンを選びます。キーを確認 を押します。
  3. バケット名を正確に入力し、アクセスを確認 を押します。
  4. ウィザードが CORS のステップに進み、追加すべきルールが表示されます。

CORSルールの追加

CORSルールにより、https://nubbo.app のブラウザからバケットのファイルをアップロード、ダウンロードできるようになります。ウィザードの CORS のステップに表示されるルールと同じものです。

  1. S3コンソールでバケットを開き、アクセス許可 タブに移動します。
  2. CORS (クロスオリジンリソース共有) までスクロールし、編集 を押します。
  3. ルールを貼り付けて 変更を保存 を押します。
[
  {
    "AllowedHeaders": ["*"],
    "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
    "AllowedOrigins": ["https://nubbo.app"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3600
  }
]
バケットに追加するルールが表示されたCORSのステップ バケットに追加するルールが表示されたCORSのステップ

保存したらNubboに戻り、追加したので確認 を押します。プロバイダーによっては反映まで1分ほどかかります。お使いのキーにCORSを変更する権限があれば、自動で設定を試す で自動的に設定できます。

うまくいかないとき

Nubboのメッセージ対処法
「認証情報が無効です。アクセスキーとシークレットアクセスキーを確認してください。」両方のキーを、先頭と末尾に空白が入らないようにもう一度コピーしてください。
「このキーは1つのバケットに限定されているようです。限定キーの手順で続行するか、フルアクセスのキーを作成してください。」限定キーで続行を押すか、アカウント全体にアクセスできるキーを作成して別のキーを試すを押してください。
「バケットが見つかりません。名前とリージョンを確認してください。」バケット名が正確か、選んだリージョンがバケットのリージョンと同じか確認してください。
「このキーにはバケットを作成する権限がありません。」フルアクセスのキーを使うか、管理画面でバケットを作成して管理画面で作成しましたを押してください。
「この名前はこのプロバイダーですでに使用されています。別の名前をお試しください。」バケット名はプロバイダー全体で一意です。別の名前を選んでください。
「このキーには設定する権限がありません。」上記の説明に沿って、CORSルールを手動で追加してください。
「まだ動作していません。ルールを見直して再度確認してください。プロバイダーによっては反映まで1分ほどかかります。」オリジンが末尾のスラッシュなしで正確に https://nubbo.app になっているか確認し、1分待ってから再度確認してください。
「このバケットはすでに使用されています。」そのバケットは、ご自身または別のアカウントですでにNubboに接続されています。
「バケットは別のリージョンにあります。設定されているリージョンを確認してください。」キーのステップで、バケットがあるリージョンを選んでください。
「このファイルにキーが見つかりませんでした。手動で貼り付けてください。」キーを作成したときにダウンロードしたCSVをアップロードするか、その内容をそのまま貼り付けてください。

料金

Amazon S3では、ストレージ、リクエスト、データ転送(送信)に料金がかかります。例を交えた説明は Amazon S3の料金 をご覧ください。

よくある質問

Nubboを使うためにS3バケットを公開する必要はありますか?

いいえ。Nubboはバケットを非公開のまま使い、Block Public Accessはオンのままで構いません。アップロードとダウンロードには有効期限付きの署名付きURLを使います。

AWSのキーにはどんな権限が必要ですか?

自動接続ではAmazonS3FullAccessポリシーが必要です。限定キーの場合は、バケットへのアクセスだけを許可するインラインポリシーで十分です: オブジェクトの一覧表示、読み取り、書き込み、削除です。

AWSのルートユーザーのキーを使えますか?

おすすめできませんし、AWSも推奨していません。Nubbo専用のIAMユーザーを作成してください。そうすれば、ほかに影響を与えずにそのキーだけを無効にできます。

NubboにAWSキーの入力欄がないのはなぜですか?

AWSはキーをCSVで提供するからです。Nubboはそれを直接読み取ります。アップロードするか内容を貼り付けるだけで、シークレットを手で写す必要はありません。

複数のS3バケットを接続できますか?

はい。各バケットがプランの上限にカウントされます: 無料プランは2つ、Personalは5つまでで、Proは無制限です。異なるAWSアカウントのバケットも接続できます。

出典

料金と制限は以下の公式ページに基づいています。プロバイダーは変更することがあるため、契約前にご確認ください。