Amazon Web Services ブログ

IAM Roles Anywhere を使用して VMware Cloud on AWS のワークロードを保護する

アマゾンウェブサービス (AWS) では、AWS のセキュリティベストプラクティスに記載されているように、可能な限りアクセスキーなどの長期的な認証情報を作成する代わりに、一時的な認証情報を使用することを推奨しています。

一時的なセキュリティ証明書(短期認証情報とも呼ばれます)は、有効期限が限られており、定期的なローテーションや取り消しが不要なため、認証情報が誤って公開された場合の影響を抑えることができます。一時的なセキュリティ認証情報の有効期限が切れると、AWS はその認証情報を使用して行われた認証および認可リクエストを承認しなくなります。

VMware Cloud on AWS を使用すると、お客様はワークロードとアプリケーションをオンプレミスの vSphere 環境から Software-Defined Data Center (SDDC) に簡単に移行でき、シームレスなハイブリッドクラウド体験を実現できます。

VMware Cloud on AWS とネイティブ AWS サービスとの統合は強力な機能であり、お客様は 200 を超える AWS サービスにまたがるアプリケーションの移行とモダナイゼーションに活用できます。

本稿では、AWS Identity and Access Management (IAM) Roles Anywhere が、VMware Cloud on AWS で実行されているワークロードと AWS サービスとの統合のセキュリティをどのように強化できるかを見ていきます。

VMware Cloud on AWS で実行されているワークロードが AWS サービスにアクセスする必要がある一般的なユースケースと、認証情報の管理に IAM Roles Anywhere を使用する利点について説明します。 最後に、VMware Cloud on AWS で実行されているワークロードに IAM Roles Anywhere を設定する方法を示すシナリオ例を紹介します。

VMwareAWS スペシャライゼーションパートナーであり、エンタープライズソフトウェアのリーディングイノベーターです。 移行を簡素化するために共同設計された VMware Cloud on AWS は、コンピューティング、ネットワーク、ストレージの機能を統合し、お客様がオンプレミス環境とクラウド環境全体で VMware のツール、スキルセット、ガバナンスを活用できます。

AWS IAM Roles Anywhere の概要

AWS Identity and Access Management (IAM) Roles Anywhere は、IAM ロールを使用して AWS のサービスや、AWS 以外のアプリケーションやサービス内のリソースにアクセスできるようにする機能です。

IAM Roles Anywhere の紹介記事では、AWS のサービスにアクセスするために、サードパーティのアプリケーションやサービスごとに長期認証情報を作成および管理する必要がないことについて説明しています。代わりに、AWS 外で実行されるサーバー、コンテナ、アプリケーションなどのワークロードのために、AWS アプリケーションで使用するのと同じ IAM ポリシーIAM ロールを使用して、IAM の一時的なセキュリティ認証情報を取得できます。

一般的なユースケース

VMware Cloud on AWS の仮想マシン (VM) で AWS サービスにアクセスするための認証情報が必要な場合は、IAM Roles Anywhere を使用できます。

以下に一般的なユースケースをいくつか示します。

  • 段階的な移行の過程で、ハイブリッドワークロードが AWS サービスにアクセスする
  • VMware Cloud on AWS のワークロードから、AWS Secrets Manager に保存されているシークレットにアクセスする
  • VMware Cloud on AWS の VM のデータを Amazon Simple Storage Service (Amazon S3) にバックアップする
  • VMware Cloud on AWS の VM 上のクライアント/エージェントが、Amazon RDSAmazon DynamoDBDocumentDB などのバックエンドデータベースに安全にアクセスすること

VMware Cloud on AWS ワークロードのための IAM Roles Anywhere

VMware Cloud on AWS ワークロードに IAM Roles Anywhere を活用することの主な利点は次のとおりです。

  • 集中アクセス管理機能を提供する AWS IAM サービスにより、IAM ロール、ポリシー、パーミッションを活用することで VMware Cloud on AWS のワークロードから AWS サービスへのアクセスを一貫性のあるスケーラブルな方法で制御および管理できます。
  • VMware Cloud on AWS 上のワークロード内で直接使用されている IAM ユーザーのアクセスキーといった長期間有効なアクセス認証情報を配布して埋め込む必要性を最小限に抑えます。代わりに、VM/サーバーが一時的に IAM ロールを引き受けることができるため、機密性の高い資格情報の露出を最小限に抑え、全体的なセキュリティを向上させます。
  • 特定の権限を持つカスタム IAM ロールを作成して VM に割り当てることで、VM にきめ細かい権限を定義できます。このきめ細かな制御により、各 VM/サーバーに必要な権限のみが付与され、最小権限の原則に沿うことが保証されます。
  • 動的で柔軟なアクセスが可能になり、アクセス管理が簡素化されるため、VM/サーバー自体に直接変更を加えることなく、要件の変化や人員の変更に迅速に対応できます。
  • IAM Access AnalyzerAWS CloudTrail などの AWS サービスを通じてアクセスイベント、権限、変更を追跡および監視することで、監査とコンプライアンス要件に対応するデータを強化できます。

ソリューション概要

IAM Roles Anywhere を使用するには、一時的なセキュリティ証明書発行プロセスのために認証局 (CA) が発行した X.509 証明書をワークロードで使用する必要があります。公開鍵基盤 (PKI) と IAM Roles Anywhere の間の信頼を確立するためのトラストアンカーとして CA を IAM Roles Anywhere に登録します。

図 1 のアーキテクチャは、VMware Cloud on AWS の VM で実行されているアプリケーションが、プライベート CA が発行した X.509 証明書を使用して IAM Roles Anywhere に一時的な AWS 認証情報をリクエストし、認証プロセスを完了する権限を持つ IAM ロールを引き継ぐ様子を示しています。

IAM-RA-VMCA-アーキテクチャ

図 1 — アプリケーションの証明書ベースの認証

各コンポーネントがソリューションにどのように貢献しているかを調べてみましょう。

  1. VMware Cloud on AWS の VM 上で実行されているアプリケーションは、IAM Roles Anywhere に認証リクエストを行い、パブリックキー (証明書にエンコード) と対応するプライベートキーで署名された署名を送信します。 アプリケーションでは、リクエストで引き受けるロールも指定します。
  2. リクエストを受信すると、IAM Roles Anywhere は、まずパブリックキーで署名を検証し、次にその証明書がアカウントに設定されたトラストアンカーによって発行されたものであることを検証します。 詳細については、署名検証ドキュメントを参照してください。 両方の検証が成功すると、アプリケーションが認証され、IAM Roles Anywhere は AWS Security Token Service (AWS STS) を呼び出して、リクエストで指定されたロールの新しいロールセッションを作成します。
  3. アプリケーションは受け取った一時的なセキュリティ認証情報を使用して AWS サービスに接続します。

シナリオ例とウォークスルー

前提条件

IAM Roles Anywhere をセットアップする前に、以下の要件を満たす必要があります。

  • 独自の CA の証明書バンドル、または IAM Roles Anywhere と同じ AWS リージョンにあるアクティブな AWS Certificate Manager AWS プライベート CA (ACM プライベート CA) の証明書バンドル
  • VMware Cloud on AWS の仮想マシンから IAM Roles Anywhere やその他の AWS サービスへの API 呼び出しを実行するためのネットワーク接続。VMware Cloud on AWS のさまざまなネットワークアーキテクチャパターンを示す VMware Cloud on AWS リファレンスアーキテクチャを参照できます。
  • IAM ロールと IAM Roles Anywhere の管理者権限

IAM Roles Anywhere のセットアップ

VMware Cloud on AWS で実行されているワークロードから IAM Roles Anywhere を使用して AWS への認証を行うには、IAM Roles Anywhere コンソールを使用してトラストアンカーとプロファイルを作成する必要があります。 手順については、 AWS IAM Roles Anywhere のトラストアンカーとプロファイルの作成に関するドキュメントを参照してください。

VMware Cloud on AWS 上の VM での設定

まず、エンドエンティティ証明書と関連するプライベートキーが VMware Cloud on AWS の VM でローカルに利用可能であることを確認します。 ACM プライベート CA コンソールから証明書をダウンロードした場合は、openssl ユーティリティを使用して以下のコマンドを実行し、証明書ファイルを.txt から PEM 形式に変換できます。

openssl rsa -in <private_key.txt> -out <private_key.pem> -outform PEM;
openssl x509 -in <certificate.txt> -out <certificate.pem> -outform PEM;

IAM Roles Anywhere は、現在の AWS SDK がサポートしているプロセス認証情報機能と併用できる認証情報ヘルパーツールが用意されています。これにより、アプリケーションの署名プロセスが簡単になります。 認証情報ヘルパーツールの入手方法については、IAM Roles Anywhere のドキュメントを参照してください。

機能をテストするには、VMware Cloud on AWS の VM で認証情報ヘルパーツール (aws_signing_helper) を手動で実行します。次のコマンドを使用します。

./aws_signing_helper credential-process \
--certificate /path/to/certificate \
--private-key /path/to/private-key \
--trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID \
--profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID \
--role-arn arn:aws:iam::account:role/role-name-with-path

IAM Roles Anywhere からセッション認証情報が正常に受信されるはずです。セットアップが機能することを確認したら、~/.aws/config ファイルを更新または作成し、署名ヘルパーを credential_process として追加することができます。これにより、VMware Cloud on AWS の VM に無人アクセスが可能になります。

AWS コマンドラインインターフェイス (CLI) 設定ファイルの詳細については、設定ファイルと認証情報ファイルの設定を参照してください。

[user@server .aws]# cat config
[default]
output = json
region = us-east-1
credential_process = ./aws_signing_helper credential-process —certificate /path/to/certificate.pem —private-key /path/to/private_key.pem —trust-anchor-arn arn:aws:rolesanywhere:<region>:<account_id>:trust-anchor/<id> —profile-arn arn:aws:rolesanywhere:<region>:<account_id>:profile/<id> —role-arn arn:aws:iam::<account_id>:role/<role_name>

設定が期待どおりに機能することを確認するには、aws sts get-caller-identity CLI コマンドを実行し、引き受けたロールが IAM Roles Anywhere で設定したものであることを確認します。 また、ロールセッション名には、認証に使用された証明書のシリアル番号が含まれていることも確認してください。

AWS IAM Roles Anywhere のモニタリング

AWS には、IAM Roles Anywhere を監視したり、問題が発生した場合に報告したり、イベントに対して自動的にアクションを実行したりできるさまざまな監視ツールが用意されています。 詳細については、IAM Roles Anywhere のモニタリングを参照してください。

コストに関する考慮事項

IAM Roles Anywhere は、サポートされているリージョンで追加料金なしで利用できます。IAM Roles Anywhere との信頼を確立するために ACM プライベート CA を使用した場合は、ACM プライベート CA の標準料金が適用されます。

その他の考慮事項

IAM Roles Anywhere のトラストアンカーを無効にして、VMware Cloud on AWS の仮想マシンへの新しいセッションの発行を直ちに停止することも、特定の時点より前に発行されたロールの認証情報に対するすべての権限を直ちに取り消すこともできます。

証明書の取り消しは、インポートされた証明書失効リスト (CRL) を使用することでサポートされます。 CA から生成された CRL をアップロードすると、認証に使用された証明書の失効ステータスがチェックされます。 IAM Roles Anywhere は CRL 配布ポイント (CDP) またはオンライン証明書ステータスプロトコル (OCSP) エンドポイントへのコールバックをサポートしていません。

もう 1 つのポイントは、プライベートキーが適切なファイルシステム権限で VM に安全に保存されていることを確認することです。

クリーンアップ

リソースをクリーンアップするには以下のステップを実行してください。

  • 前のステップで作成したトラストアンカープロファイルを削除します。
  • 前のステップで作成した IAM Roles Anywhere サービスプリンシパルを信頼する IAM ロールを削除します。
  • VMware Cloud on AWS の VM 上の ~/.aws/config ファイルを更新し、前のステップの一部として設定した credential_process としての署名ヘルパーを削除します。
  • 仮想マシンのローカルに保存されているエンドエンティティ証明書と関連する秘密鍵を削除します。
  • 前提条件の一部として作成された場合、プライベート CA を削除します。

まとめ

本稿では、IAM Roles Anywhere サービスによって、長期認証情報を配布および埋め込む必要がなくなることで、VMware Cloud on AWS で実行されているワークロードが AWS API と安全にやり取りできるようにする方法について説明しました。

また、VMware Cloud on AWS で実行されているワークロードに IAM Roles Anywhere を使用する一般的なユースケースと、VMware Cloud on AWS の仮想マシンでの関連するセットアッププロセスについても説明しました。

翻訳は Partner SA 豊田が担当しました。原文はこちらです。