2024年11月20日水曜日

GCP のインスタンスで swap 領域を作成する方法

GCP のインスタンスで swap 領域を作成する方法

概要

メモ

環境

  • e2-micro

コマンド

sudo dd if=/dev/sda1 of=/swapfile bs=1M count=8192
sudo chmod 600 /swapfile
sudo mkswap -f /swapfile
sudo swapon /swapfile
swapon -s

fstab

  • sudo vim /etc/fstab
/swapfile1  swap   swap    defaults   0 0

最後に

昔の f1 シリーズだとスワップがないと動作しないケースがあったが最近の e2 ではスワップなしでも問題ないケースが多いです

それでもメモリ領域が足りない場合にはスワップを作成して対応してください

2024年11月19日火曜日

Sinatra 4.1.0 から permitted_hosts を有効にする必要があります

Sinatra 4.1.0 から permitted_hosts を有効にする必要があります

概要

XFH を使ったオープンリダイレクトの脆弱性を指摘され rack_protection を使ったホスト名 認証を導入したので設定が必要になります
許可されていないホストからのアクセスは Host not permitted になります

環境

  • macOS 15.1
  • Ruby 3.3.5
  • Sinatra 4.1.0

対応方法

host_authorization で permitted_hosts に許可したホスト名を指定します

すべてのホストを許可する場合は空の配列で OK です

require "sinatra/base"

class ExampleApp < Sinatra::Base
  # disable it only for development
  configure :development do
    set :host_authorization, { permitted_hosts: [] }
  end

  # but enable it for production for some domains
  configure :production do
    set :host_authorization, { permitted_hosts: [".example.com"] }
  end

  get("/") { "OK" }
end

最後に

デフォルトでは拒否状態になっているので本番にデプロイする場合は必ず設定する必要があります

参考サイト

mosquitto を docker で起動する方法

mosquitto を docker で起動する方法

概要

公式イメージを使ってブローカーを起動する方法を紹介します
認証などはない設定なので検証目的で使いましょう

環境

  • macOS 15.1
  • docker 27.3.1
  • mosquitto 2.0.20

mosquitto.conf

  • vim mosquitto.conf
listener 1883
allow_anonymous true

起動

  • docker run --rm -it -p 1883:1883 -v $(pwd)/mosquitto.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto

動作確認

sub

  • docker run --rm eclipse-mosquitto mosquitto_sub -t test/topic -p 1883 -h 192.168.1.48

pub

  • docker run --rm eclipse-mosquitto mosquitto_pub -t test/topic -p 1883 -h 192.168.1.48 -m "hoge"

ログ

1731982775: mosquitto version 2.0.20 starting
1731982775: Config loaded from /mosquitto/config/mosquitto.conf.
1731982775: Opening ipv4 listen socket on port 1883.
1731982775: Opening ipv6 listen socket on port 1883.
1731982775: mosquitto version 2.0.20 running
1731982775: New connection from 172.17.0.1:64478 on port 1883.
1731982775: New client connected from 172.17.0.1:64478 as auto-49D03FC4-BBCD-BB77-6AEE-EED2DFA56542 (p2, c1, k60).
1731982805: New connection from 172.17.0.1:55614 on port 1883.
1731982805: New client connected from 172.17.0.1:55614 as auto-D312CD16-EB8D-8E19-7129-5619E4130433 (p2, c1, k60).
1731982805: Client auto-D312CD16-EB8D-8E19-7129-5619E4130433 disconnected.

最後に

実際に使う場合には ACL などの機能を使ってトピックにアクセス制御を設定しましょう

参考サイト

2024年11月18日月曜日

trivy で TooManyRequests が出る場合はリポジトリの参照先を複数指定しよう

trivy で TooManyRequests が出る場合はリポジトリの参照先を複数指定しよう

概要

--db-repository オプションと --java-db-repository オプションを使います
環境変数でも指定可能です
今回は Gitlab CI で使う方法を紹介します

環境

  • Gitlab 17.3.3
  • trivy 0.57.0

.gitlab-ci.yml

stages:
  - test

trivy-scan:
  stage: test
  image:
    name: aquasec/trivy:latest
    entrypoint: ['']
  variables:
    TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db,aquasec/trivy-db,ghcr.io/aquasecurity/trivy-db
    TRIVY_JAVA_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-java-db,aquasec/trivy-java-db,ghcr.io/aquasecurity/trivy-java-db
  script:
    - trivy --version
    - trivy clean --all
    - trivy image --download-db-only

最後に

リポジトリ先はカンマ区切りで指定できるので自分でミラーを作成して指定しても OK です

参考サイト

2024年11月7日木曜日

Google Cloud Storage でバケット内にオブジェクトがある場合でもバケットごと削除する方法

Google Cloud Storage でバケット内にオブジェクトがある場合でもバケットごと削除する方法

概要

gsutil を使う方法を紹介します

環境

  • macOS 15.0.1
  • gsutil 5.30

コマンド

  • gsutil rm -r gs://sound-bucket-log

参考サイト

2024年11月6日水曜日

iPhoneとChromeのパスワードを同期する方法

iPhoneとChromeのパスワードを同期する方法

概要

忘れるのでメモ

環境

  • iPhone 14 (iOS 18.0.1)
  • Chrome 130.0.6723.92

方法

設定 -> 一般 -> 自動入力とパスワード -> Chrome

のトグルをオンにする

最後に

iOS のバージョンによっては操作変わるかもです

2024年11月5日火曜日

App Engine APIs are not enabled 対策

App Engine APIs are not enabled 対策

概要

対応方法を紹介します

エラー詳細

  • gcloud app logs tail -s default
2024-10-29 04:54:19 default[20241029t134559]  2024/10/29 04:54:19 internal.flushLog: Flush RPC: Call error 7: App Engine APIs are not enabled, please add app_engine_apis: true to your app.yaml to enable.

環境

  • google-cloud-sdk 491.0.0
  • golang runtime 122

app.yaml を修正

以下を追加します

app_engine_apis: true

最後に

最新のラインタイムv2を使う場合は必要です