AWS サービスアカウントのアクセスセットアップ
クラウドディスカバリー および クラウドプロビジョニングとガバナンス では、Amazon Web サービス (AWS) サービスアカウントのリソースにアクセスする必要があります。このようなアクセスを設定するためのさまざまな方法について説明します。
クラウドディスカバリー および クラウドプロビジョニングとガバナンス は、MID サーバー を通じて AWS サービスアカウントのリソースにアクセスします。初期通信を設定するために、MID サーバーから EC2 インスタンスをAmazonするための受信トラフィックを許可する必要があります。詳細については、「AWS Management Console を使用してセキュリティグループのインバウンドルールを設定」を参照してください。
AWS 認証情報のタイプ
- 永続的
- 永続的な認証情報は、ServiceNow AI Platform の 接続情報と認証情報 モジュールに追加するサービスアカウントに対する実際の AWS 認証情報です。ServiceNow AI Platformで認証情報を管理するのは時間がかかるかもしれませんが、一時的な認証情報の使用に伴う複雑な設定を避けることができます。
- 一時
一時的な認証情報は 、IAM ロールの AWS Security Token Service (AWS STS) によって生成されます。AWS アカウントの IAM ロールを構成すると、MID サーバー はこれらの一時的な認証情報を使用して AWS リソースにアクセスします。デフォルトの IAM ロール、OrganizationAccountAccessRole を使用することも、カスタム IAM ロールを作成することもできます。
大規模な AWS 組織で IAM ロールを担うほうが、すべての AWS アカウントに永続的な認証情報を大量に使用するよりも便利で、かつ優れたセキュリティを提供できます。一時的な認証情報は、サービスアカウント [cmdb_ci_cloud_service_account] テーブルに、そのサービスアカウントに対して永続的な認証情報が指定されていない場合にのみ、サービスアカウントの代わりに取得されます。
MID サーバー は、AWS Security Token Service API の AssumeRole アクションを使用して、メンバーアカウントのロールを想定します。この API に渡されるパラメーターによって、AWS リソースへのアクセス時にロールに適用される追加のセキュリティ制限が決定されます。
デフォルトで、MID サーバー はプライマリアカウントのすべてのメンバーに一時的な認証情報を付与する OrganizationAccountAccessRole を担うように構成されます。このアクションは、メンバーアカウントに永続的な認証情報が存在しない場合に自動的に実行されます。この構成では追加のセキュリティは適用されず、メンバーアカウントのリソースに対するアクセスは制限されません。
デフォルトで、ServiceNow インスタンスはメンバーアカウントの一時的な認証情報を 60 分間キャッシュします。この間隔により、ディスカバリーのたびに新しい認証情報を生成することなく、水平ディスカバリープロセスを複数回実行できます。認証情報のキャッシュを回避したり、 MID サーバーのプロパティを使用してキャッシュ期間を変更したりすることができます。
IAM ロールと権限
デフォルトの AWS OrganizationAccountAccessRole ロールによって提供されるセキュリティを強化するために、メンバーアカウントの一時的な認証情報を受け取るためにMID サーバー引き受けることができるAWSロールをカスタマイズできます。追加の権限を設定してセキュリティを強化し、クラウドリソースを検出するときにメンバーアカウントのロールを引き受ける方法をカスタマイズできます。
アクセスを許可する方法
- トラスティングアカウント
- トラスティングアカウントには、永続的な AWS 認証情報がありません。これらのアカウントの IAM ロールが他のアカウントに依存してアクセスするための信頼関係を構成します。
- トラステッドアカウント
- トラステッドアカウントは、トラスティングアカウントによってアクセスに使用されます。ServiceNow UI では、トラステッドアカウントが「アクセサーアカウント」という名称になっています。
- 単一アカウントのアクセス権の設定
-
- ServiceNow AI Platform で AWS 認証情報を構成して、IAM ロールの作成と設定の複雑さを回避します。詳細については、「永続的な AWS 認証情報を使用した AWS アカウントへのアクセス構成」を参照してください。
- ServiceNow AI PlatformにAWSサービスアカウントを作成します。詳細については、「AWSサービスアカウントの作成」を参照してください。
- AWS認証情報を使用してアクセサーアカウントを信頼するアカウントのアクセス権の構成
-
図 : 1. 任意の AWS アカウントを AWS 認証情報を備えたトラステッドアカウントに依存させる設定
- AWS認証情報なしでアクセサーアカウントを信頼するアカウントのアクセス権の設定
-
図 : 2. 任意の AWS アカウントを AWS 認証情報のないトラステッドアカウントに依存させる設定
- アクセサーから管理アカウントを介してトラストチェーンを使用して、 AWS メンバーアカウントのアクセス権を設定します。
-
図 : 3. アクセスに管理アカウントを使用するメンバーアカウントの設定
クラウドディスカバリー が使用する認証情報の決定方法
- メンバーアカウント信託管理アカウント
-
クラウドディスカバリー は次のロジックを使用して、メンバーアカウントの AWS クラウドリソースを検出するために使用する認証情報を決定します。
- 永続的な認証情報がクラウドサービスアカウント [cmdb_ci_cloud_service_account] テーブルのメンバーアカウントに対して定義されている場合、ディスカバリー はその認証情報を使用します。クラウドサービスアカウントの [cmdb_ci_cloud_service_account] テーブルには、サービスアカウントのタイプ (管理/メンバー) とその認証情報に関する情報が含まれています。
- メンバーアカウントに永続的な認証情報が定義されていない場合、ディスカバリー はメンバーアカウントに関連付けられた特別なパラメーターについてクラウドサービスアカウント AWS 組織想定ロールパラメーター [cloud_service_account_aws_org_assume_role_params] テーブルをチェックします。そのテーブルにパラメーターが存在する場合、ディスカバリー は AWS Security Token Service API AssumeRole アクションでロールとそのパラメーターを指定することによって取得された一時的な認証情報を使用します。
- [cloud_service_account_aws_org_assume_role_params] テーブルでメンバーアカウントに特別なパラメーターが関連付けられていない場合、ディスカバリー はそのテーブルで、管理アカウントに関連付けられたパラメーターをチェックします。管理アカウントのロールを定義するパラメーターが存在する場合、ディスカバリー はそのロールで提供される一時的な認証情報を使用します。
- 管理アカウントまたはメンバーアカウントのいずれかに対して [cloud_service_account_aws_org_assume_role_params] テーブルに特別なパラメーターが存在しない場合、ディスカバリー は OrganizationAccountAccessRole ロールに定義されているデフォルトを使用します。
- メンバーまたは管理アカウント Trusts アクセサーアカウント
-
- 永続的な認証情報がクラウドサービスアカウント [cmdb_ci_cloud_service_account] テーブルでメンバーまたは管理アカウントに対して定義されている場合、 ディスカバリー それらの認証情報を使用します。クラウドサービスアカウントの [cmdb_ci_cloud_service_account] テーブルには、サービスアカウントのタイプ (管理/メンバー) とその認証情報に関する情報が含まれています。
- アカウントに永続的な認証情報が定義されていない場合、 ディスカバリー はクラウドサービスアカウントの AWS クロス想定ロールパラメーター [cloud_service_account_aws_cross_assume_role_params] テーブルで、アカウントに関連付けられた特別なパラメーターをチェックします。そのテーブルにパラメーターが存在する場合、ディスカバリー は AWS Security Token Service API AssumeRole アクションでロールとそのパラメーターを指定することによって取得された一時的な認証情報を使用します。