
コンテキスト: VPC の private_isolated サブネットに Postgres RDS を設定しようとしています。pgAdmin を使用して作業を行いたいので、要塞または VPN 接続が必要です。要塞には長時間実行される EC2 インスタンスが必要ですが、現在 EC2 はまったく実行されていません。VPN 接続を設定したいのですが、その方が適切です。ただし、AD や SAML プロバイダーはありません。AWS セッションを開始するための IAM ユーザーと SSO があります。更新: IAM を RDS レベルで使用してセッション ログインを許可できることに気付きました。https://aws.amazon.com/premiumsupport/knowledge-center/users-connect-rds-iam/つまり、少なくとも関連する問題はカバーされます。
クライアント VPN は通常、AD または SAML プロバイダーを使用してセットアップされるか、手動で作成された証明書を使用して相互認証で手動でセットアップされるようです。前者のオプションはやりすぎのようです。当社は小規模な会社であり、AD や別の SAML プロバイダーは必要ありません。一方、手動証明書は、CA をセットアップしたり、各ユーザーにクライアント証明書をアップロードさせたりするのに多くの作業が必要なため、人為的エラーが発生しやすいようです。
私はシステム管理の初心者です。 IAM SSO を使用して、1 時間の VPN アクセスを許可するシークレットを作成できない理由はありますか? 管理コンソールにログインしたり、CLI を使用したりする場合、具体的にはどのようにすればよいですか? これは SAML オプションで実行できますか? 間違った質問をしているのでしょうか?
ありがとう!
答え1
データベースをプライベートサブネットに配置する場合、接続する唯一の方法は、VPN または DirectConnect (高価)、またはデータベースにアクセスできる EC2 インスタンス (bastion) 経由です (ドキュメントを参照)。https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Scenarios.html#USER_VPC.Scenario3)。
最もコスト効率の良い方法は、EC2 インスタンスを使用することです。SSH を使用してキーを複雑にする代わりに、インスタンスで SSM エージェントを構成し、ユーザーがコンソールからアクセスできるようにすることができます。ドキュメントは次のとおりです。詳しくは、https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html をご覧ください。
答え2
これまでのところ、簡単に言えば「できない」という結論に達しました。おそらく、IAM ユーザーを使用して、VPN への接続に使用される証明書にアクセスする、bash スクリプトの回りくどい方法があるのでしょう。
代わりに、@palvarez が言及したような代替案が、同様の問題を抱えている人にとって最善の解決策となる可能性があります。