システム設定
システム設定では、通知メールを送るメールサーバーと、グローバルな HashiCorp Vault を設定します。設定のレコードはデプロイ全体でちょうど 1 つで、初回起動時にメール配信が無効の状態で投入されます。入れたばかりの環境では、運用者が有効にするまで通知はアプリ内だけに留まります。
管理サイドバーの System Settings を開きます。テナントと同じく、このセクションは Super Admin 専用です。設定がテナント単位ではなくプラットフォーム全体のものなので、テナント管理者向けの例外はありません。ほかのロールからは読み取りも拒否されます。
設定項目
| 項目 | 用途 |
|---|---|
| Application Base URL | 通知メールのリンク先。たとえば https://a2flow.example.com。空ならリンクなしで送られます。 |
| Send notifications by email | 全体のスイッチ。無効の間、通知はアプリ内だけに留まり、何も送られません。 |
| SMTP Host / SMTP Port | メッセージを渡すリレー。 |
| Security | STARTTLS(既定)、SSL/TLS(暗黙の TLS)、None のいずれか。 |
| SMTP Username / SMTP Password | SMTP AUTH の資格情報。認証の要らないリレーではユーザー名を空にします。 |
| From Address / From Name | 送信者のアドレスと、その横に表示される任意の表示名。 |
ホストや送信者アドレスがないまま配信を有効にすることはできません。あとで黙って失敗する状態でフォームを保存することはできない、ということです。
ここにある項目はすべて環境変数からも設定できます。メールの設定を手作業の手順ではなくデプロイ設定として持てる、ということです(通知メール)。これらの変数は毎回の起動で再適用されるので、そちらで設定した値はここで入力した内容を上書きします。
パスワードは書き込み専用です。シークレットやユーザーのパスワードと同じ扱いで、表示されることはありません。保存済みのパスワードがある場合、この項目は空欄に「Saved」のプレースホルダーが出る形になり、空のまま保存すると、消えるのではなく保存済みの値が保たれます。
グローバル Vault
グローバル Vault は、自分専用の Vault を持たないテナントすべてが Vault 型シークレットを読む HashiCorp Vault(KV v2 のみ)です。テナントの admin は Tenant Settings でテナント専用の Vault に接続でき、その場合は常にそちらが優先されます。
| 項目 | 用途 |
|---|---|
| Global Vault Address | Vault のアドレス。http:// か https:// で始めます。テナント専用の Vault と違い、プライベートネットワーク上にあってもかまいません。空にして保存すると、グローバル Vault の接続を外します。 |
ここで設定するのはアドレスだけです。全テナント共用の資格情報はありません。各テナントはテナントごとの資格情報でログインし、その資格情報は Super Admin がテナントのページで登録します(グローバル Vault の資格情報を参照)。資格情報のないテナントは、グローバル Vault をまったく読めません。
テナント間の分離は Vault 自身が行います。シークレットは、そのシークレットが指定した Vault Mount と Vault Path から読まれ、その読み取りを許すかどうかはテナントの資格情報に付いたポリシーが決めます。テナントごとに、そのテナントのデータだけを対象にしたポリシーの資格情報を発行してください。たとえばテナントごとに AppRole を作り、acme テナントには次のようなポリシーを付けます。
path "secret/data/tenants/acme/*" {
capabilities = ["read"]
}
設定を確認する
Send test email は、保存済みの設定を使ってテストメールを送ります。設定の誤りが、次にワークフローが通知を出すときではなく、その場で分かります。
- 先に設定を保存します。テストが使うのは画面の内容ではなく保存済みの内容です。
- Send test email を押します。
- 自分の受信箱を確認します。宛先はサインインしている Super Admin 自身のアドレスに固定されていて、ほかへは向けられません。
リレーが失敗した場合はページ上にエラーが出ます。原因はサーバー側のログに記録されます。