セキュリティ設定と IAM ロール - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

セキュリティ設定と IAM ロール

eb migrate コマンドは、IAM ロール、インスタンスプロファイル、およびサービスロールを通じて AWS セキュリティ設定を管理します。これらのコンポーネントを理解することで、移行中の適切なアクセスコントロールとセキュリティコンプライアンスを確保できます。

インスタンスプロファイルの設定

インスタンスプロファイルは、Elastic Beanstalk が環境内の EC2 インスタンスにアタッチする IAM ロールのコンテナとして機能します。を実行するときにeb migrate、カスタムインスタンスプロファイルを指定できます。

PS C:\migrations_workspace> eb migrate --instance-profile "CustomInstanceProfile"

インスタンスプロファイルを指定しない場合、 は、次のアクセス許可を持つデフォルトプロファイルeb migrateを作成します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::elasticbeanstalk-*", "arn:aws:s3:::elasticbeanstalk-*/*" ] } ] }

サービスロールの管理

サービスロールにより、Elastic Beanstalk はユーザーに代わって AWS リソースを管理できます。次のコマンドを使用して、移行中にカスタムサービスロールを指定します。

PS C:\migrations_workspace> eb migrate --service-role "CustomServiceRole"

指定しない場合、Elastic Beanstalk がロールを引き受けることを許可する信頼ポリシーaws-elasticbeanstalk-service-roleを使用して、 という名前のデフォルトのサービスロールeb migrateを作成します。このサービスロールは、Elastic Beanstalk が環境の状態をモニタリングし、マネージドプラットフォームの更新を実行するために不可欠です。サービスロールには、次の 2 つの管理ポリシーが必要です。

  • AWSElasticBeanstalkEnhancedHealth - Elastic Beanstalk が拡張ヘルスレポートシステムを使用してインスタンスと環境のヘルスをモニタリングできるようにします

  • AWSElasticBeanstalkManagedUpdates - 新しいプラットフォームバージョンが利用可能になったときに環境リソースを更新するなど、Elastic Beanstalk がマネージドプラットフォームの更新を実行できるようにします。

これらのポリシーでは、サービスロールには以下のアクセス許可があります。

  • Auto Scaling グループの作成と管理

  • Application Load Balancer の作成と管理

  • Amazon CloudWatch にログをアップロードする

  • EC2 インスタンスを管理する

サービスロールの詳細については、Elastic Beanstalk デベロッパーガイドElastic Beanstalk サービスロールの「」を参照してください。

セキュリティグループの構成

eb migrate コマンドは、IIS サイトバインディングに基づいてセキュリティグループを自動的に設定します。たとえば、ソース環境にポート 80、443、8081 を使用するサイトがある場合、次の設定結果になります。

<site name="Default Web Site"> <bindings> <binding protocol="http" bindingInformation="*:80:" /> <binding protocol="https" bindingInformation="*:443:" /> </bindings> </site> <site name="InternalAPI"> <bindings> <binding protocol="http" bindingInformation="*:8081:" /> </bindings> </site>

移行プロセスは、次のアクションを完了します。

  • インターネットからのポート 80 および 443 でのインバウンドトラフィックを許可するロードバランサーセキュリティグループを作成します (0.0.0.0/0)

  • ロードバランサーからのトラフィックを許可する EC2 セキュリティグループを作成します。

  • --copy-firewall-config が指定されている場合、追加のポート (8081 など) を設定します

デフォルトでは、Application Load Balancer はインターネットからのパブリックアクセスで設定されます。特定の IP 範囲へのアクセスの制限やプライベートロードバランサーの使用など、この動作をカスタマイズする必要がある場合は、 --vpc-configパラメータを使用してデフォルトの VPC とセキュリティグループの設定を上書きできます。

PS C:\migrations_workspace> eb migrate --vpc-config vpc-config.json

たとえば、次のvpc-config.json設定では、プライベートサブネットにプライベートロードバランサーを作成します。

{ "id": "vpc-12345678", "publicip": "false", "elbscheme": "internal", "ec2subnets": ["subnet-private1", "subnet-private2"], "elbsubnets": ["subnet-private1", "subnet-private2"] }

VPC 設定オプションの詳細については、「」を参照してくださいVPC の構成

SSL 証明書の統合

HTTPS バインディングを使用してサイトを移行する場合は、 AWS Certificate Manager (ACM) を介して SSL 証明書を統合します。

PS C:\migrations_workspace> eb migrate --ssl-certificates "arn:aws:acm:region:account:certificate/certificate-id"

この設定は、次のアクションを完了します。

  • 証明書を Application Load Balancer に関連付ける

  • ロードバランサーで HTTPS 終了を維持します

  • ロードバランサーと EC2 インスタンス間の内部 HTTP 通信を保持します

Windows 認証

Windows 認証を使用するアプリケーションの場合、 はアプリケーションの認証設定をweb.config次のようにeb migrate保持します。

<configuration> <system.webServer> <security> <authentication> <windowsAuthentication enabled="true"> <providers> <add value="Negotiate" /> <add value="NTLM" /> </providers> </windowsAuthentication> </authentication> </security> </system.webServer> </configuration>
重要

eb migrate コマンドは、ソース環境からターゲット Elastic Beanstalk インスタンスにユーザープロファイルまたはアカウントをコピーしません。ソースサーバーで作成したカスタムユーザーアカウントまたはグループは、移行後にターゲット環境で再作成する必要があります。

などの組み込み Windows アカウントIUSR、 などのグループIIS_IUSRS、および他のすべての組み込みアカウントとグループは、ターゲット Windows Server インスタンスにデフォルトで含まれます。組み込み IIS アカウントとグループの詳細については、Microsoft ドキュメントの「IIS の組み込みユーザーアカウントとグループアカウントの理解」を参照してください。

アプリケーションがカスタム Windows ユーザーアカウントまたは Active Directory 統合に依存している場合は、移行の完了後にこれらの側面を個別に設定する必要があります。

ベストプラクティスとトラブルシューティング

ロールの管理

Elastic Beanstalk AWS 環境のロールを管理するときは、IAM ベストプラクティスを実装します。

ロールの作成と管理
モニタリングと監査

ロールの使用状況をモニタリング AWS CloudTrail するには、 を有効にします。

  • AWS CloudTrail ユーザーガイドに従う

  • リアルタイムモニタリング用に CloudWatch Logs 統合を設定する

  • 不正な API コールのアラートを設定する

定期的なレビュープロセス

四半期ごとのレビューサイクルを確立して、次のタスクを実行します。

  • IAM Access Analyzer を使用して未使用のアクセス許可を監査する

  • 古いアクセス許可を削除する

  • 最小特権の原則に基づいてロールを更新する

証明書管理

Elastic Beanstalk 環境で SSL/TLS 証明書に以下のプラクティスを実装します。

証明書のライフサイクル
セキュリティ標準

セキュリティグループの管理

セキュリティグループのベストプラクティスを実装します。

ルール管理
定期的な監査

以下のタスクを実行するための月次レビューを確立します。

  • 未使用のルールを特定して削除する

  • 送信元/送信先の要件を検証する

  • 重複するルールを確認する

ログ記録とモニタリング

効果的なセキュリティモニタリングを行うには、次のログを設定します。

EC2 インスタンスの Windows イベントログ
# Review Security event log PS C:\migrations_workspace> Get-EventLog -LogName Security -Newest 50 # Check Application event log PS C:\migrations_workspace> Get-EventLog -LogName Application -Source "IIS*"
CloudWatch Logs の統合

Windows イベントログを CloudWatch にストリーミングしてモニタリングとアラートを一元化するように CloudWatch Logs エージェントを設定します。

永続的な問題については、これらのログを収集し、以下の情報 AWS サポート について にお問い合わせください。

  • 環境 ID

  • デプロイ ID (該当する場合)

  • 関連するエラーメッセージ

  • セキュリティ変更のタイムライン