1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OCIのEmail Deliveryへのメール配信依頼をクラウド内部ネットワークに限定してみた

Posted at

OCI(Oracle Cloud Infrastructure)のEmail Delivery Serviceはメール配信サービスであり、メールを受信することはありません。
ただ、メール配信依頼はSMTPプロトコルで受け取ることができるため、この受け取り窓口がパブリック・ネットワーク(以下「インターネット」)に開いていることを制限できないかという相談を受けました。
仕組み的には、ネットワーク・ソースを利用すればできそうだったので、試してみた内容を記載します。

1.検証環境

Email Delivery Serviceの構築は、OCIチュートリアルにしたがって構築しています。
image.png
OCI上にメール配信依頼を行うComputeを2種類立てました。

1つはPublic Subnetに配置し、メール配信依頼はインターネットを経由します。
Public Subnetのルート表は以下のとおり、Internet Gatewayを向いています。
image.png
もう1つはPrivate Subnetに配置し、メール配信依頼はクラウド内部ネットワークを利用します。
Private Subnetのルート表は以下のとおり、Service Gatewayを向いています。
image.png
この状態(ネットワーク限定なし)で、OCIチュートリアルにしたがって、メール配信依頼を出すと、Public SubnetおよびPrivate Subnetに配置したどちらのComputeからもメールを配信することができます。

Public Subnetに配置したComputeからのメール配信

[opc@developer ~]$ echo "Test Mail from public network" | mailx -s "Public NW" xxxxxxxx@yyyyyy.com

Private Subnetに配置したComputeからのメール配信

[opc@developer-private ~]$ echo "Test Mail from private network" | mailx -s "Private NW" xxxxxxxx@yyyyyy.com

2.メール配信依頼をクラウド内部ネットワークに限定

ネットワーク・ソースを利用して、Email Delivery Serviceへのメール配信依頼をVCN(のPrivate IP)からの依頼に限定します。

2-1.ネットワーク・ソースの作成

左上三本線メニューより、「アイデンティティとセキュリティ」を選択し、「ネットワーク。ソース」を選びます。
image.png

[ネットワーク・ソースの作成]ボタンを押し、以下の設定を行います。

名前:任意(今回は「Email_delivery_limitation」とします)
説明:任意
ネットワーク:仮想クラウド・ネットワーク
VCNの選択:メール配信依頼を許可するVCN
image.png

2-2.ポリシーの設定

SMTP資格証明を取得したユーザーの所属するグループに対して、上記のネットワーク・ソースからのリクエストのみを受け付けるように、ポリシー構文に以下の条件句を設定します。
where request.networkSource.name='Email_delivery_limitation'

今回の場合は、ユーザーの所属するグループ(email_sender)に対して、「use email-family」権限を条件付きで付与します。
allow group email_sender to use email-family in tenancy where request.networkSource.name='Email_delivery_limitation'
※スコープ「in tenancy」は必要に応じて「in compartment コンパートメント名」などに変更してください)

2-3.Public Subnetに配置したComputeからのメール配信

前回と同じmailxコマンドを投げると、以下のとおりエラーが返ります。

[opc@developer ~]$ echo "Test Mail from public network" | mailx -s "Public NW" xxxxxxxx@yyyyyy.com
[opc@developer ~]$ smtp-server: 535 Authorization failed: Envelope From address <xxxxxxxx@yyyyyy.com> not authorized
"/home/opc/dead.letter" 11/342
. . . message not sent.

当然ながら、メールは届きません。

2-4.Private Subnetに配置したComputeからのメール配信

同様にmailxコマンドを投げます。

[opc@developer-private ~]$ echo "Test Mail from private network" | mailx -s "Private NW" xxxxxxxx@yyyyyy.com

こちらはエラーもなく、正常にメールが届きました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?