翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
MemoryDB インスタンスは、Amazon EC2 インスタンスを介してアクセスするように設計されています。
同じ Amazon VPC 内の Amazon EC2 インスタンスから MemoryDB ノードにアクセスできます。または、VPC ピアリングを使用して、異なる Amazon VPC 内の Amazon EC2 から MemoryDB ノードにアクセスできます。
すべてのクラスターに対するアクセスを許可する
同じ Amazon VPC で実行されている Amazon EC2 インスタンスからのみ MemoryDB クラスターに接続できます。この場合、クラスターに対するネットワーク進入を許可する必要があります。
Amazon VPC セキュリティグループからクラスターへのネットワーク進入を許可するには
AWS Management Console にサインインし、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[ネットワークとセキュリティ] の下にある [セキュリティグループ] を選択します。
-
セキュリティグループのリストから、Amazon VPC のセキュリティグループを選択します。MemoryDB 用のセキュリティグループを作成した場合を除き、このセキュリティグループは、デフォルトという名前になります。
-
Inbound タブを選択し、次の操作を行います。
-
Edit (編集) を選択します。
-
ルールの追加 を選択します。
-
Type 列で Custom TCP rule を選択します。
-
Port range ボックスに、クラスターノードのポート番号を入力します。この番号は、クラスターの起動時に指定した番号と同じ番号である必要があります。Valkey と Redis OSS の両方のデフォルトポートは
6379
です。 -
[ソース] ボックスで [任意の場所] を選択します。ポート範囲が 0.0.0.0/0 になるため、Amazon VPC 内で起動したすべての Amazon EC2 インスタンスを MemoryDB ノードに接続できます。
重要
MemoryDBクラスターを0.0.0.0/0にオープンしても、クラスターはパブリックIPアドレスを持たないためインターネットに公開されず、VPC外からアクセスすることはできません。ただし、お客様のアカウントの他の Amazon EC2 インスタンスにデフォルトのセキュリティグループが適用され、そのインスタンスにパブリック IP アドレスが付与される場合があります。それがデフォルトポートで何かを実行している場合、そのサービスが意図せず公開されることがあります。そのため、MemoryDB専用にVPCセキュリティグループを作成することをお勧めします。詳細については、「 カスタムセキュリティグループ」を参照してください。
-
Save (保存) を選択します。
-
Amazon VPCにAmazon EC2インスタンスを起動すると、そのインスタンスはMemoryDBクラスターに接続できるようになります。
外部からのMemoryDBリソースへのアクセス AWS
MemoryDBは、VPC内部で使用するために設計されたサービスです。インターネットトラフィックの遅延やセキュリティ上の懸念により、外部アクセスは推奨されません。ただし、テストや開発目的でMemoryDBへの外部アクセスが必要な場合は、VPNを介してアクセスすることができます。
AWS クライアントVPNを使用することで、MemoryDBノードへの外部アクセスを許可することができます:
承認されたユーザーまたは認証キーへのアクセスの制限
VPN クライアントと AWS VPN エンドポイント間のトラフィックの暗号化
特定のサブネットまたはノードへのアクセスの制限
ユーザーまたは認証キーからのアクセスの容易な取り消し
接続の監査
次に、以下の方法について手順を示します。
認証局の作成
認証局 (CA) は、さまざまな手法やツールを使用して作成できます。ここでは、OpenVPN
初期証明書を作成するには、ターミナルを開き、次の操作を行います。
git clone
https://github.com/OpenVPN/easy-rsacd easy-rsa
./easyrsa3/easyrsa init-pki
./easyrsa3/easyrsa build-ca nopass
./easyrsa3/easyrsa build-server-full server nopass
./easyrsa3/easyrsa build-client-full client1.domain.tld nopass
証明書を含む pki サブディレクトリが easy-rsa の下に作成されます。
サーバー証明書を AWS Certificate Manager (ACM) に送信します。
ACM コンソールで、Certificate Manager を選択します。
証明書のインポート を選択します。
easy-rsa/pki/issued/server.crt
ファイルにあるパブリックキー証明書を 証明書本文 フィールドに入力します。easy-rsa/pki/private/server.key
にあるプライベートキーを 証明書のプライベートキー フィールドに貼り付けます。BEGIN AND END PRIVATE KEY
間にあるすべての行 (BEGIN
行とEND
行を含む) を選択してください。easy-rsa/pki/ca.crt
ファイルにある CA パブリックキーを 証明書チェーン フィールドに貼り付けます。レビューとインポート を選択します。
インポート を選択します。
AWS CLI を使用してサーバーの証明書を ACM に送信するには、次のコマンドを実行します:
aws acm import-certificate --certificate fileb://easy-rsa/pki/issued/server.crt --private-key file://easy-rsa/pki/private/server.key --certificate-chain file://easy-rsa/pki/ca.crt --region
region
後で使用するために証明書 ARN を書き留めます。
AWS クライアント VPN コンポーネントの設定
AWS コンソールを使用する
AWS コンソールで、サービス、VPC の順に選択します。
仮想プライベートネットワーク で、クライアント VPN エンドポイント を選択し、次の操作を行います。
AWS クライアント VPN コンポーネントの設定
クライアント VPN エンドポイントの作成 を選択します。
以下のオプションを指定します。
クライアント IPv4 CIDR: /22 以上の範囲のネットマスクを持つプライベートネットワークを使用します。選択したサブネットが VPC ネットワークのアドレスと競合していないことを確認します。例: 10.0.0.0/22。
サーバー証明書 ARN で、以前にインポートした証明書の ARN を選択します。
相互認証の使用 を選択します。
-
クライアント証明書 ARN で、以前にインポートした証明書の ARN を選択します。
-
クライアント VPN エンドポイントの作成 を選択します。
AWS CLI の使用
次のコマンドを実行します。
aws ec2 create-client-vpn-endpoint --client-cidr-block "10.0.0.0/22" --server-certificate-arn arn:aws:acm:us-east-1:012345678912:certificate/0123abcd-ab12-01a0-123a-123456abcdef --authentication-options Type=certificate-authentication,,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:us-east-1:012345678912:certificate/123abcd-ab12-01a0-123a-123456abcdef} --connection-log-options Enabled=false
出力例:
"ClientVpnEndpointId": "cvpn-endpoint-0123456789abcdefg",
"Status": {
"Code": "pending-associate"
},
"DnsName": "cvpn-endpoint-0123456789abcdefg.prod.clientvpn.us-east-1.amazonaws.com"
}
ターゲットネットワークと VPN エンドポイントの関連付け
新しい VPN エンドポイントを選択し、関連付け タブを選択します。
関連付け を選択し、以下のオプションを指定します。
[VPC]: メモリ DB クラスターの VPC を選択します。
MemoryDB クラスターのネットワークの 1 つを選択します。不確かな場合は、MemoryDB ダッシュボードの [サブネットグループ] でネットワークを確認します。
関連付け を選択します。必要に応じて、残りのネットワークについても同じ手順を繰り返します。
AWS CLI の使用
次のコマンドを実行します。
aws ec2 associate-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --subnet-id subnet-0123456789abdcdef
出力例:
"Status": {
"Code": "associating"
},
"AssociationId": "cvpn-assoc-0123456789abdcdef"
}
VPN セキュリティグループの確認
VPN エンドポイントは、VPC のデフォルトのセキュリティグループを自動的に採用します。インバウンドルールとアウトバウンドルールを確認し、セキュリティグループがサービスポート(デフォルトではRedisの6379)でVPNネットワーク(VPNエンドポイント設定で定義)からMemoryDBネットワークへのトラフィックを許可しているかどうかを確認します。
VPN エンドポイントに割り当てられたセキュリティグループを変更する必要がある場合は、次の手順を実行します。
現在のセキュリティグループを選択します。
セキュリティグループの適用 を選択します。
新しいセキュリティグループを選択します。
AWS CLI の使用
次のコマンドを実行します。
aws ec2 apply-security-groups-to-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefga --vpc-id vpc-0123456789abdcdef --security-group-ids sg-0123456789abdcdef
出力例:
"SecurityGroupIds": [
"sg-0123456789abdcdef"
]
}
注記
MemoryDBセキュリティグループは、VPNクライアントからのトラフィックも許可する必要がある。クライアントのアドレスは、VPC ネットワークに従って VPN エンドポイントアドレスでマスクされます。したがって、MemoryDBセキュリティグループの受信ルールを作成する際は、VPCネットワーク(VPNクライアントのネットワークではない)を考慮してください。
宛先ネットワークへの VPN アクセスの許可
[認証] タブで、[受信の承認]を選択し、以下を指定します。
アクセスを許可する宛先ネットワーク: 0.0.0.0/0を使用してあらゆるネットワーク(インターネットを含む)へのアクセスを許可するか、MemoryDBのネットワーク/ホストを制限する。
アクセスを付与する対象 で、すべてのユーザーにアクセスを許可する を選択します。
[認可ルールの追加] を選択します。
AWS CLI の使用
次のコマンドを実行します。
aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --target-network-cidr 0.0.0.0/0 --authorize-all-groups
出力例:
{
"Status": {
"Code": "authorizing"
}
}
VPN クライアントからインターネットへのアクセスの許可
VPN 経由でインターネットをブラウズする必要がある場合は、追加のルートを作成する必要があります。ルートテーブル タブを選択し、ルートの作成 を選択します。
ルート送信先: 0.0.0.0/0
ターゲット VPC サブネット ID: インターネットにアクセスできる、関連付けられたサブネットの 1 つを選択します。
ルートの作成 を選択します。
AWS CLI の使用
次のコマンドを実行します。
aws ec2 create-client-vpn-route --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --destination-cidr-block 0.0.0.0/0 --target-vpc-subnet-id subnet-0123456789abdcdef
出力例:
{
"Status": {
"Code": "creating"
}
}
VPN クライアントの設定
AWS クライアント VPN ダッシュボードで、最近作成した VPN エンドポイントを選択し、クライアント設定のダウンロード を選択します。設定ファイル、easy-rsa/pki/issued/client1.domain.tld.crt
ファイル、および easy-rsa/pki/private/client1.domain.tld.key
ファイルをコピーします。設定ファイルを編集し、以下のパラメータを変更または追加します。
cert:
client1.domain.tld.crt
ファイルを指すパラメータ cert を使用して新しい行を追加します。ファイルへの完全なパスを使用します。例:cert /home/user/.cert/client1.domain.tld.crt
cert: key:
client1.domain.tld.key
ファイルを指すパラメータ key を使用して新しい行を追加します。ファイルへの完全なパスを使用します。例:key /home/user/.cert/client1.domain.tld.key
コマンド sudo openvpn --config downloaded-client-config.ovpn
を使用して VPN 接続を確立します。
アクセスの取り消し
特定のクライアントキーからのアクセスを無効にする必要がある場合は、CA でキーを取り消します。次に、取り消しリストを AWS クライアント VPN に送信します。
easy-rsa でキーを取り消す方法は次のとおりです。
cd easy-rsa
./easyrsa3/easyrsa revoke client1.domain.tld
続行するには、「yes」と入力します。中止するには、その他を入力します。
Continue with revocation: `yes` ... * `./easyrsa3/easyrsa gen-crl
更新された CRL が作成されます。CRL ファイル:
/home/user/easy-rsa/pki/crl.pem
AWS クライアント VPN への取り消しリストのインポート:
AWS Management Console で、サービス、VPC の順に選択します。
クライアント VPN エンドポイント を選択します。
クライアント VPN エンドポイントを選択し、アクション、クライアント証明書 CRL のインポート の順に選択します。
crl.pem
ファイルの内容を貼り付けます。
AWS CLI の使用
次のコマンドを実行します。
aws ec2 import-client-vpn-client-certificate-revocation-list --certificate-revocation-list file://./easy-rsa/pki/crl.pem --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg
出力例:
Example output:
{
"Return": true
}