SFTP サーバーのインストール
Sandbox インスタンスを使用するには、SFTP サーバーが必要です。 SFTP サーバーは、z/OS® イメージ・ボリュームを Sandbox インスタンス用のストレージに転送するために使用されます。
- SFTP サーバーは Linux® サーバーまたは OpenShift® にインストールできます。 サンドボックスで提供または管理される SFTP サーバーはありませんが、Docker Hub に SSH/SFTP のイメージがあります。
転送速度を上げるには、高速ローカル・ストレージを使用するクラスター内にサーバーをセットアップします。ただし、これは必須ではありません。
- Sandbox には、SFTP サーバーに対する読み取り権限を持つユーザー資格情報が必要です。 SSH 証明書は現在サポートされていません。
Red Hat Linux サーバーへの SSH サーバーまたは SFTP サーバーのインストール
- 次のコマンドを実行して、SSH がインストールされているかどうか確認します。
rpm -qa|grep ssh - SSH がインストールされていない場合は、次のコマンドを実行します。
yum install openssh-server - ポート 22 を開きます。
iptables -I INPUT -p tcp --dport 22 -j ACCEPT - ディレクトリーを作成し、権限を変更します。
mkdir -p /data/sftp chmod 701 /data - SFTP 用にグループを追加し、ユーザーを追加します。 そして、新規パスワードを指定します。
groupadd sftpusers useradd -g sftpusers -d /upload -s /sbin/nologin sftpuser passwd sftpuser - ファイル転送のためのディレクトリーを作成します。 そして、必要な変更を加えます。
mkdir -p /data/sftpuser/upload chown -R root:sftpusers /data/sftpuser chown -R sftpuser:sftpusers /data/sftpuser/upload - /etc/ssh/sshd_config に、以下の行を追加します。Match Group sftpuser
ForceCommand internal-sftp - SFTP サービスを再開します。
service sshd restart
OpenShift への SSH サーバーまたは SFTP サーバーのインストール
特権を持つ SFTP サーバーとコンテナーのセキュリティーについては、異なるガイドラインに従う可能性があるため、ご使用のビジネス・プロセスに関するガイドラインと以下の手順を組み合わせて使用できます。
SFTP サーバーをクラスター内にデプロイするには、組織で承認されている SFTP コンテナー・イメージを使用するのが最も簡単な方法です。 また、SFTP サーバーを始動するためのカスタム・コンテナーを作成することもできます。 以下の例は、機能する SFTP コンテナーを作成するために使用できる Docker ファイルを示しています。
FROM registry.access.redhat.com/ubi8/ubi:latest
ARG home=/home/sshuser
RUN yum -y update && \
yum -y install openssh-server \
openssh-clients && \
/usr/bin/ssh-keygen -A && \
groupadd sshgroup && \
useradd -ms /bin/bash -g sshgroup sshuser && \
echo 'sshuser:PASSWORD' | chpasswd && \
mkdir $home/.ssh && \
touch $home/.ssh/authorized_keys && \
chown sshuser:sshgroup $home/.ssh/authorized_keys && \
chmod 600 $home/.ssh/authorized_keys
EXPOSE 22
CMD /usr/sbin/sshd && sleep infinity
この例の場合、PASSWORD はインストール時に、指定されたパスワードに置き換えられます。 また、アクセスのセキュリティーを向上させるには、sshd 構成を変更する必要があります。 例えば、ログイン・セッションを阻止するように構成を変更することで、SFTP サーバーとしてのアクセスのみを許可することができます。
sshd の要件のため、コンテナーは特権アクセスを使用して開始する必要があります。これは組織にとって、セキュリティー上の特定の問題となる場合があります。 したがって、組織のすべてのガイドラインに従うとともに、該当する場合はベスト・プラクティスにも従ってください。
apiVersion: apps/v1
kind: Deployment
metadata:
name: <instance name>
namespace: <namespace>
spec:
selector:
matchLabels:
app: <instance name>
template:
metadata:
labels:
app: <instance name>
spec:
containers:
- name: <instance name>
image: <image>
ports:
- containerPort: 22
securityContext:
privileged: true
allowPrivilegeEscalation: true
volumeMounts:
- name: <volume name>
mountPath: /data-stor
volumes:
- name: <volume name>
persistentVolumeClaim:
claimName: <PVC name>この YAML ファイルを使用するには、必要に応じて値を変更する必要があります。 また、値を変更する前に、必要な z/OS ボリュームを保持するために必要なスペースがある PVC および PV を手動で作成する必要があります。 ご使用の環境に依存している自分のユーザー ID と他のユーザー ID にアクセスできるようにするには、ストレージに対するアクセス権を変更しなければならない場合もあります。