Lucidscaleを使ってAWSからクラウドインフラデータをインポートし、Lucidscale 文書でダイアグラムを生成します。
Lucidscale は、クラウド アクセルによるアドオン購入として、 Lucid Suiteエンタープライズ アカウントで利用できます。 クラウド アクセルの詳細については、クラウド アクセルの概要に関する記事を参照してください。
サポートされているAWSリージョン、リソース、ライン
Lucidscaleで利用可能なAWSのサポート地域、リソース、線の包括的なリストについては、「 サポートされたAWS地域、リソース、線 」記事をご参照ください。
AWSインフラストラクチャをインポートする
次の 4 つの方法のいずれかを使用して、AWS クラウド インフラストラクチャ データをインポートできます。
-
信頼できるアクセス: 適切なポリシーを持つクロスアカウント IAM ロールを提供します。このロールは、次の権限スコープで設定できます。
- アカウントレベルのアクセスを介してインポートし、個別のアカウントをインポートします
組織レベルのアクセスを介してインポートし、1 つの組織単位または組織全体からすべての AWS アカウントをインポートします。
- アカウントレベルのアクセスを介してインポートし、個別のアカウントをインポートします
- シングルユース認証: 適切なポリシーが添付された IAM ユーザーの認証情報を入力します
- ファイルのアップロード: 設定されたAWS CLIプロファイルでLucidが提供するPythonスクリプトを実行し、データをJSONファイルとしてローカルに収集し、生成されたファイルを提供します。
各方法の詳細と、どの方法が自分のユースケースに最適かを判断するには、次の表を参照してください。
| インポートの方法 | 説明 | スコープ |
リソースサポートの種類* |
データ更新** |
| 信頼できるアクセス:組織レベル | 安全で長期的な再利用のために、組織レベルのクロスアカウント IAM ロールを Lucid に登録します。 | 単一の認証情報を登録することで、AWS 組織または組織単位内のすべてのアカウントのインポートを一元管理します。 |
(1)と(2)
|
自動と手動 |
| 信頼されたアクセス:アカウントレベル | 安全で長期的な再利用のために、アカウント レベルのクロス アカウント IAM ロールを Lucid に登録します。 | 個々の AWS アカウントごとに認証情報を登録します。 | (1)と(2) | 自動と手動 |
| 使い捨ての許可 | IAM ユーザーキーまたは認証情報ファイルを Lucid にアップロードします。 | 個々の AWS アカウントへの 1 回限りのアクセス。 |
(1)と(2) |
手動 アクセスキーの認証情報を再度入力してデータを更新します。 |
| ファイルアップロード | 設定された AWS CLI プロファイルで Lucid が提供する Python スクリプトを実行し、生成された JSON ファイルを Lucid にアップロードします。 | JSON ファイルごとに最大 50 アカウント。 | (1)のみ |
手動 新しく生成された JSON ファイルをアップロードしてデータを更新します。 |
*リソースタイプ1は、サポートリソースセクションに一覧されているすべてのマッピングされたリソースです。リソースタイプ2はクラウドインベントリで、手動で文書に配置できる、マッピングされていない多様なリソースです。
**データハブを通じて、ユーザーが毎日、週次、月次、毎年の定期スケジュールで自動データソースの更新が可能です。手動の更新もデータハブをワンクリックで行えます。
信頼できるアクセス インポートを使用すると、Lucid はこれらの資格情報を保存するため、情報を再入力せずにデータを更新したり、新しいインポートを開始したりできます。 このストレージ機能により、Lucid は自動データ更新を実行できます。認証情報は、AWS Data Hub の認証情報タブから削除できます。Lucid は、IAM ユーザー認証情報を将来の再利用のために保存せず、1 回限りの認証を手動更新のみに制限します。
非常に大規模な環境を扱う場合は、インポートするデータ量を減らすか、LucidがAWSに行うAPI呼び出しの数を減らしましょう。Lucid サポートはユーザーあたり最大50の同時アカウントインポートに対応します。 各インポートが終わったら、新しいインポートをスタートできます。
注意: AWS GovCloud のインポートは、Lucid GovSuite クライアントのみで許可されます。Lucid Commercial Environment は、クロスアカウントロールを介して AWS GovCloud にアクセスできません。
信頼アクセス(クロスアカウントロール)
Trusted AccessはクロスアカウントのIAMロールを使用し、クラウドアクセルはアカウントメタデータのインポートやデータソースの作成に対して読み取り専用アクセスを想定できます。 信頼アクセススコープは2種類あります:
このガイドは両方のメソッドについて詳細で実行可能なステップを提供し、複数のコード実装としてのインフラストラクチャー(Terraform、CloudFormation自動化、手動IAM作成)を含みます。
信頼できるアクセス:組織レベル
AWS 組織全体のインフラストラクチャのインポートを一元管理するには、次の手順に従います。
まず、以下の前提条件を確認してください:
- 選ばれたバスティオンアカウントは、ルシッドで別のインポート用のバスティオンとしてすでに登録されていなければなりません。
- 組織レベルの登録を開始するためにLucidデータハブにアクセスできるユーザー。
その後、Lucidデータハブに移動し、IAMリソース作成方法を選択します。
- Lucid ホームページを開いてください。
- 左のナビゲーション下部から 「データハブ 」をクリックしてください。
- AWS データのインポートを選択します。
- 信頼できるアクセスを選択してください。
- 認証範囲内で、AWS組織に接続を選択します。
- 権限を自動的に設定するためのオプションを選択します。
- CloudFormationのテンプレートを使いましょう。
- Terraformモジュールを使用してください。
注: Lucid GovSuite環境をご利用の場合は、リソース作成に方法2(Terraform)を使用してください。CloudFormationメソッドは現在、AWSの商用環境でのみ利用可能です。詳細については、下記のFAQセクションをご覧ください。
方法1:CloudFormationを使ったAWS組織権限の自動化設定
Lucidの統合 CloudFormation テンプレートを使って、AWS組織全体で必要なすべてのIAMロールと権限を自動的に単一のデプロイで設定できます。
注: AWSのベストプラクティスに従い、管理アカウントではなく、委任管理者アカウントを踏み台アカウントとして使用することをお勧めします。管理アカウントは、管理アカウント権限が明確に必要なタスク専用に予約すべきです。
要件
- デプロイメントアカウント:このテンプレートは、組織レベルの権限を持つアカウントから展開し、(1) CloudFormation StackSetsの作成・管理、(2) リソースベースの委任ポリシーを作成・管理する必要があります。通常、これは組織管理アカウントかCloudFormation StackSetsの委任管理者アカウントのいずれかです。
-
バスティオンアカウント(推奨) :管理者権限を持たないメンバーアカウントをバスティオンアカウントとして使用してください。このアカウントは、組織全体のインポートを調整します。
- 踏み台アカウント(代替手段) :管理アカウントを踏み台として使用することもできますが、これはAWSのベストプラクティスに反するため、組織のポリシーで義務付けられている場合にのみ使用してください。このオプションを選ぶと、CloudFormationのテンプレートが管理アカウント内で直接バスティオンロール作成を処理します。
- アカウントの適格性:バスティオンアカウントは、過去にLucidでバスティオンアカウントとして使用されたことがないものでなければなりません。
パラメータ
- BastionAccountId: これは、サードパーティの信頼できるアクセスを管理するために使用する 12 桁の AWS アカウント ID です。Lucid は、この「要塞アカウント」でアカウント間の役割を担い、インポートを調整します。
- BastionRootOrOrganizationalUnitId: これは、選択した BastionAccountId を含む組織単位 (OU) (例: ou-xxxxxxxxx) またはルート (例: r-xxxx) の ID です。
-
MembersRootOrOrganizationalUnitId: このパラメータは、Lucid がリソースデータをインポートできる AWS 組織内のアカウントの範囲を制御します。
- 組織内のすべてのアカウントからのインポートを許可するには、組織ルートの ID (例: r-xxxx) を使用します。
- 特定の組織単位 (OU) 内にネストされたアカウントのインポートのみを許可する場合は、その特定の OU の ID (例: ou-xxxxxxxxx) を使用します。
指示
CloudFormation を使用して権限を自動的に設定するには、次の手順に従います。
- AWSより:
- BastionアカウントIDを特定してください(委任管理者の方法を使う場合は)。
- 上記にリストされているパラメータに対応する組織単位またはルートIDを特定してください。
- Lucidで「 Launch CloudFormation」 テンプレートをクリックして、AWSコンソールでテンプレートを開きます。
- テンプレートがあらかじめインストールされたCloudFormationのスタック作成ページに移動します。
- UseManagementAccountAsBastion を「false」(推奨)または「true」に設定してください。
- 委任管理者(UseManagementAccountAsBastion = "false")を使用する場合、以下を提供します:
- BastionAccountId: 選択したバスティオンアカウントのID。
- BastionRootOrOrganizationalUnitId: バスティオンアカウントを含むOUまたはルート。
- 委任管理者(UseManagementAccountAsBastion = "false")を使用する場合、以下を提供します:
- インポート範囲を制御するには、「MembersRootOrOrganizationalUnitId」を設定します。
- 組織にリソースポリシーがない場合は、「CreateOrgResourcePolicy」を「true」(デフォルト)に設定してください。
- 管理アカウントを踏み台として使用する場合は、この値を「false」に設定できます。
- 組織に既存のリソースポリシーがある場合は、スタックのデプロイ時にエラーが発生しないように、この値を「false」に設定してください。代わりに、既存の組織リソースポリシーの「Statement」配列に、以下の「Statement」オブジェクトを手動で追加してください(これは既存のポリシーに追加されるものであり、置き換えるものではありません)。指定された箇所には、必ずご自身の実際の要塞アカウントIDを入力してください。
ヤージュ
「シド」:「声明」
「効果」:「許可」
「プリンシパル」: {
"AWS": [
"arn:aws:iam::<YOUR_BASTION_ACCOUNT_ID>:root"
]
} 、
"アクション": [
「組織:アカウント一覧」
「組織:親アカウント一覧」
「組織:ListChildren」
「組織:ListParents」
「組織:ListRoots」
「組織:ポリシーの説明」
「組織:組織単位の説明」
「組織:組織の説明」
「組織:アカウントの説明」
「組織:親の組織単位のリスト」
],
"リソース": "*"
}
- 必要に応じて、BastionRoleNameとMemberRoleNameをカスタマイズしてください。
-
「スタックの作成」をクリックし、デプロイが完了するまでお待ちください。
- テンプレートは自動的に以下を行います:
- 選択したバスティオンアカウントでバスティオンロールを作成します。
- StackSetsをデプロイして、対象アカウント全体にメンバーロールを作成します。
- 組織リソースポリシーを委任管理権限(デミッション管理者を使用している場合)を設定してください。
- 組織に今後追加されるアカウントに対して、自動展開を有効にします。
- テンプレートは自動的に以下を行います:
- バスティオンアカウントのAWS IAMコンソールで、「ロール」に移動します。
- バスティオンロールを探します(デフォルト名:`lucid-import-bastion-role`、またはカスタム名)。
- ロールのARNをコピーします。
- Lucid データハブタブに戻り、「クロスアカウントロールを Lucid に追加する」セクションまで下にスクロールします。
- 「バスティオンロールARN」フィールドに、バスティオンロールARNを貼り付けてください。
- カスタムのMemberRoleNameを使用した場合は、「メンバーアカウントの役割名」フィールドをそれに合わせて更新してください。
- 必要に応じて、この接続を識別するために認証情報の表示名を更新してください。
- 「次へ」をクリックして、クロスアカウントロールを Lucid に登録します。
- ロールを選択し、 「次へ」をクリックします。
- アカウントのインポートと文書作成の手順を進めてください。
注: この CloudFormation テンプレートはサービス管理権限を持つスタックセットを使用するよう設定されています。 現在、セルフマネージド権限を持つスタックセットを用いたCloudFormationの設定はサポートしていません。
方法2:Terraformを使用してAWS Organizationの権限設定を自動化する
部分加群
-
組織-読み取り-委任サブモジュール: 管理者権限を委任したbastionアカウントを設定し、AWS組織の構造をスキャンします。(その後、ルシッドはこのバスティオンのアカウントでインポートを行う役割を担います。)
- これは管理アカウントか、組織に委任されたポリシー管理が割り当てられたメンバーアカウントに展開する必要があります。
- すでにリソースベースの委任ポリシーが存在する場合、その展開は失敗します。このサブモジュールを追加する代わりに、Lucidが提供するJSONポリシーの権限を既存のリソースベースポリシーに手動で追加してください。
- すでにリソースベースの委任ポリシーが存在する場合、その展開は失敗します。このサブモジュールを追加する代わりに、モジュール main.tf ファイルの権限を既存の リソースベースポリシーに 手動で追加してください。
-
バスティオンロールサブモジュール: ルシッドが引き継ぐバスティオンアカウント内の主要なIAMロールを作成します。
- Lucid アカウントの AWS インポート設定ページからコピーした一意の「外部 ID」値を使用して、external_id パラメータを設定します。
-
import-roleサブモジュール:リソースデータを読み取るためにメンバーアカウントに展開するIAMロールを作成します。
- モジュールはメンバーアカウント内に役割を作成し、その役割はバスティオンアカウントが引き継げますが、モジュールはそのプロセスをメンバーアカウントに自動化することはできません。このモジュールは、データをインポートしたいすべてのメンバーアカウントに展開する必要があります。将来的に新しいアカウントを追加したい場合も含めて。組織の標準的な慣行に従い、このモジュールのコードを新たに追加されたアカウントに適用してください。
指示
まず、Lucid の Terraform モジュールを追加するアカウントに対して Terraform が設定されていることを確認します。
詳細:手順については、Terraform のドキュメントにある「Get Start - AWS」ガイドを参照してください。 提供されたリンクをクリックすると Lucid ヘルプ センター外に移動するため、コンテンツの正確性は保証されません。
次に、次の手順に従って、Lucid の Terraform モジュールを構成してデプロイします。
- Terraformレジストリの「ビュー 」をクリックして権限を設定するためにLucidのTerraformモジュールにアクセスするか、 このリンクから 直接モジュールにアクセスでき ます。
- モジュール レジストリ ページで、サブモジュールをクリックします。main.tf のドロップダウンから、必要な 3 つのサブモジュール (org-read-delegation、bastion-role、import-role) をそれぞれ構成します。
- 各サブモジュールの Readme ページの「使用方法」の指示に従って、モジュールを Terraform 構成コードに追加します。
- Terraform コードをデプロイし、Lucid のモジュールから含まれるリソースが作成されるのを待ちます。
- 要塞アカウントの AWS IAM コンソールから、作成された lucid-import-bastion-role (またはそのカスタム名) の ARN をコピーします。または、Terraform 構成からこの ARN を出力します。
最後に、新しいIAMロールをLucidに追加してください。
-
Lucid データハブタブに戻り、「クロスアカウントロールを Lucid に追加する」セクションまで下にスクロールします。
- 「Bastion ロール ARN」フィールドに、Bastion アカウント ロール ARN を入力します。
- 最初の CloudFormation テンプレート/Terraformモジュールの設定時にカスタムMemberRoleNameを使っていた場合は、「Member account role name」フィールドをその数値に更新してください。
- (オプション) インポートを調整するために使用される要塞ロールを表すように、「資格情報の表示名」の事前入力された値を更新します。この表示名は Lucid のデータ ハブで使用されるため、将来の使用や管理のために資格情報を識別できます。
- 「 次」 をクリックしてLucidのクロスアカウントロールを登録してください。
- ロールを選択し、 「次へ」をクリックします。
- アカウントのインポートと文書作成の手順を進めてください。
信頼されたアクセス:アカウントレベル
個人アカウントのAWSインフラをクロスアカウントIAMロールでインポートするには、以下の手順をフォローしてください。
ステップ1:新しいクロスアカウントを作成する
選択したアカウントの新しいクロスアカウントIAMロール(インポート認証情報)を登録するには、以下からスタートしてください:
- Lucid ホームページに移動します。
- ページ左側のナビゲーションメニュー下部から 「データハブ 」をクリックしてください。
- AWS データのインポートを選択します。
- 「信頼できるアクセス」を選択します。
- 認証範囲内で 「個人AWSアカウントに接続する」を選択してください。
- 新しい資格を登録する際に希望する方法を選びましょう(例:AWS IAMの役割)
- Terraformモジュールを使用する
- CloudFormationテンプレートを使用する
- 手動で作成
ここでは、新しいクロスアカウントロール認証情報を作成する方法を選びます:Terraformモジュールで自動的に作成( Terraformを選択し)、CloudFormationスタックで自動的に作成( CloudFormationを選択し)、またはIAMロールとポリシーを手動で作成(手動 作成を選択してください)。選択した方法のステップ1を完了し、その後ステップ2を完了してクロスアカウントロールをLucidに追加してください。
方法1:Terraformを使った自動個人AWSアカウントロール作成
まず、Terraform環境がAWSアカウント内で十分な権限を持つAWS認証情報で設定されているか確認してください。Lucidのインポートロールを展開する予定のアカウントで、IAMロールを作成・管理できます。詳細はTerraformの 「スタート - AWS 」ドキュメントを参照してください。
次に、Lucidの設定プロセスのステップ1を進めて、LucidのTerraformモジュールの設定と展開を行います。
- Lucid内でアカウントレベルインポート用のTerraformオプションを選択した後、 Terraform Registryのビュー をクリックしてAWS権限を設定するモジュールにアクセスするか、 こちらの Terriform Registry内の インポートロール モジュールに直接アクセスできます。
-
import-roleモジュールのReadmeページで、「Usage」の「Non-Org レベル Imports」セクションを見つけてフォローし、モジュールをTerraformの設定コードに追加してください
- この部分加群はexternal_id値を必要とします。LucidのStep 1セットアップで提供された外部IDの横にある 「コピー 」をクリックして、この外部IDの値を取得できます。
- Terraform コードをデプロイし、Lucid のモジュールから含まれるリソースが作成されるのを待ちます。
- ロールを展開したAWSアカウントのAWS IAMコンソールにアクセスし、 lucid-import-account-role (またはカスタム role_name)を見つけて、SummaryページからそのARNをコピーしてください。あるいは、Terraformの設定からこのARNを出力する方法もあります。
方法2: CloudFormation を活用して自動個人AWSアカウントロール作成を行う
CloudFormationで自動的に新しい役割を作成するには、以下の手順をフォローしてください:
- インポートしたいアカウントでAWSコンソールにログインしてください
- Lucidで 「CloudFormationを起動 」をクリックして新しいブラウザタブを開きます。後で戻れるように、Lucidブラウザのタブを開いたままにしておきましょう。
- AWSコンソールで 「スタック作成」をクリックします。
- スタックが作成されたら、AWSコンソール内のリソースタブに移動し、「LucidscaleImportRole」(またはカスタムの CrossAccountRole名)を選択します。ARNの役割をコピーしてください。
- データハブでクロスアカウントロールを登録する手順に飛ばしてください。
方法3:AWS IAMコンソールを使った個人のAWSアカウントロール作成の手動
AWS IAM Consoleで手動で新しい役割を作成するには、以下のステップをフォローしてください:
- 「ステップ1:スタート creating a role」で「 Create role」を選択してください。
- AWS アカウントに移動します。 Lucidブラウザのタブを開いたままにして、後で戻ることができるようにします。
- Lucidscale アカウントに関連付けられた一意の外部 ID が自動生成されます。 これは、AWSのセキュリティ推奨事項に沿ったものです。
- ReadOnlyAccessポリシーを追加:
- AWSでは「 次へ 」をクリックして許可ステップに移動します。
- 「権限を追加」ページで、 ReadOnlyAccess ポリシーを検索して選択してください。この設定はLucidではデフォルトで有効で、作成したLucidscale 文書にすべてのリソースが正しく表示されるために必要です。
- カスタム権限の追加:
- Lucidのタブに戻って「3.「custom permissions」を選び、JSON テキストファイルをコピーするには 「権限をコピー 」をクリックしてください。
- 新しいタブやウィンドウを開き、AWS IAMコンソールにアクセスし、左側のナビゲーションペインに行き「 ポリシー」を選択してください。
- ポリシーページから「 ポリシー作成」をクリックします。
- 「ポリシーを作成」ページで、JSON タブに切り替え、コピーしたファイルをAWSコンソールのJSON タブに貼り付けます。
- 「 次へ: タグ」をクリックします。
- 必要に応じてポリシーにタグを追加し、[ 次へ: 確認] をクリックします。
- ポリシーに名前と説明を付けます。
- [ ポリシーの作成] をクリックします。
- 役割にカスタムポリシーを付与する:
- 新しいクロスアカウントロールを作成していた前の [AWS] タブで、[更新] ボタンをクリックし、作成したポリシーの名前を検索します。
- 保険契約を選択し、 次へをクリックしてください。
- 役割に名前と説明を与えましょう。もしよければ、役割にタグを追加してもいいですよ。
- 「役割作成」をクリックします。
ステップ2:Lucidにクロスアカウントロールを追加
選択した方法(Terraform、CloudFormation、または手動作成)でRole ARNを取得したら、LucidのAWSインポート設定に戻り、ステップ2を完了します。
- コピーしたRole ARNをLucidのAWSインポートセットアップの「Role ARN」フィールドに貼り付けます。
- 必要に応じて、「認証情報表示名」のプリポピュレーション値を更新してください。この表示名は「Data Hub > AWS > Credentials」セクションで使用され、将来の使用や管理のために認証情報を特定できるようになり、選択したAWSアカウントのインポート調整に使われるクロスアカウントの役割を表します。
- 次 へをクリックして Lucidでクロスアカウントロールを登録し、認証情報ロールを選択してフォローし、再度 「次へ 」をクリックしてください。
- データインポートと文書作成のためにAWSアカウントを選択してください。
ファイルアップロード
AWSインフラストラクチャをJSONファイルのアップロードでインポートするには、以下のステップをフォローしてください:
- Lucid ホームページから、左側のナビゲーションメニューの 「Data hub 」をクリックしてください。
- 右上から 「AWSデータのインポート 」を選択してください。
- ファイルアップロードを選択します。
- Lucidのデータハブタブから、Lucidが提供するプロファイル権限をダウンロードまたはコピーしてください。
- これらの権限を含む名前付きプロファイルでAWS CLIを設定しましょう。
- Lucidのデータハブタブで、Pythonスクリプトをダウンロードまたはコピーしてください。
- AWS CLIでPythonスクリプトを実行してください。aws.jsonファイルが生成されます。
- Lucidデータハブタブで「 ファイル選択 」を選択し、aws.jsonファイルをアップロードします。
- 一度にインポートできるアカウントは最大50件です。アップロードしたファイルに50件を超えるアカウントがある場合は、ファイルを複数の JSON ファイルに分割してインポートしてください。
- [次へ] をクリックします。
- インポートしたいアカウントごとに別名を用意してください。
- 「 AWSアカウントをインポート」を選択します。
AWSファイルアップロードスクリプトの説明
Lucidが提供するインポートスクリプト、 awscliscript.py、CLI内で名前付きプロファイルの設定が必要です。名前付きプロファイルとは、AWS CLIコマンドに適用できる設定と認証情報の集合体です。AWSプロファイルの作成に関する詳細な手順については、 AWS CLI内の設定および認証ファイル設定に関するAWSのドキュメントを参照してください。
AWS Configureを実行すると、入力された認証情報がデフォルトというプロファイルに保存されます。複数のアカウントがある場合は、それぞれに名前付きプロフィールを作成することをお勧めします。例えば、preprodとproductionの2つのアカウントがあり、それぞれの認証情報を別々のプロファイルとして保存している場合、 awsのec2 describe-instances--profile preprodでpreproductionでec2インスタンスを簡単に記述できます。その後、本番環境でインスタンスを記述するために、profileの引数を aws ec2 describe-instances -- profile prodに変更できます。
要件
- Python:バージョン3.0〜3.9。インストール時に「Add Python to パス」を選択していることを確認してください。
- AWS CLI:インストール済みで設定済み。
- 「ボトコア」:バージョン1.27.77。pip3 install botocore==1.27.77を使ってインストールします。
パラメータ
- -p, --プロファイル[必須]
- 使用するAWSプロファイルの名前を指定します。このオプションは複数のプロファイルからインポートするために繰り返し行うことができます。
- -r, --領域 [必須]
- リソースをインポートする1つ以上のAWSリージョンを指定します。このオプションは前の--プロファイルオプションに対応しなければなりません。
- -c、--カウント
- リソースの数を含むJSONファイルを出力します。このフラグを使用すると、生成されたJSONファイルはLucidscaleインポートには適していません。
- -a、--匿名
- 出力データをすべての文字列をハッシュ化して匿名化します。
- -o, --出力
- 生成される出力JSONのファイル名を指定します。
例
Python3 awscliscript.py --profile preprod --regions us-east-1 us-west-1
上記のコマンドはスクリプトを実行し、us-east-1およびus-west-1領域に存在するプレプロッドプロファイル内のリソースデータを生成します。
注: Lucidscale - AWSはbotocoreバージョン1.27.77を基に開発されました。ただし、すでに別のバージョンをインストールしていればインポートは正常に動作するはずです。もし対応しなければ、Pythonの仮想環境でスクリプトを実行することを検討してみてください。これにより、異なるプロジェクトごとに別々のパッケージインストールを管理できます。スクリプトを実行した後、仮想環境を削除できます。Python仮想環境の作成手順は、この Python ユーザーガイドでご覧いただけます。
データハブを使用して AWS インフラストラクチャのデータと認証情報を管理する
アカウントをインポートして文書を作成する
AWSアカウントをインポートしてLucid 文書を作成するには、以下の手順をフォローしてください:
- データ ハブにインポートするアカウントを選択します。
- [次へ] をクリックします。
- このセクションの最後に記載されている「クロスアカウントロールを使ったアカウント設定」の指示を使い、インポートしたい地域を指定できます。
- 「AWS アカウントのインポート」をクリックします。
インポートが完了した後に AWS アカウントを視覚化するには:
- データハブに戻る。
- 「 新しい文書を作成」を選択します。
- インポートしたアカウントを選択し、 「アカウントの選択」をクリックします。
- 詳細を確認し、不要なリソースを除外するためのフィルターを追加してください。
- 「 AWS 文書を作成」を選択します。
Lucidscale 文書はあなたのLucidアカウントのバックグラウンドで生成されます。 作成が完了したら、ページ右下に表示されるステータスモーダルで通知いたします。
新しい文書を作成する直後に表示されるステータスモーダルから文書を開くことができます。 文書(および以前に作成した文書)も、作成後はLucid ホームページの「文書」セクションに保存・アクセスされます。
インポートしたアカウントにアクセスする
AWSアカウントをインポートすると、 Data Hubの「AWS: Imported Accounts」セクションで指定したアカウント名でデータソースとして表示されます。このセクションからは+新しいアカウントをクリックして、新しいアカウントをデータハブにインポートすることもできます。
このセクションに記載されているアカウントは、新しいLucidscale 文書を作成するために使用できるデータソースです。データソース(「アカウント」)は、Lucidscale 文書作成に使用されるAWSアカウントのメタデータを含みます。「最終更新」フィールドは、接続されたAWSアカウントの更新を考慮してデータソースが最後に更新された時期を示しています。
同じAWSアカウントを複数インポートすることは可能です。各インポートは、そのアカウントの以前にインポートされたバージョンと共に存在する独立したデータソースを作成します。同じアカウントを再インポートする前に既存のデータソースを削除する必要はなく、両者はData Hubに共存し、独立して文書を作成できます。
各アカウントのクラウドインベントリは、リストからアカウントを選択すると右側に表示されます。このインベントリは、 文書を作成する前にインポートされた各資源の全カウントを確認できます。また、Data Hubから「 Download CSV」をクリックして、リソースリストをまとめたCSVをダウンロードし、直接カウントすることもできます。
インベントリには、クロスアカウントロールに添付された権限ポリシーによってアクセスできるすべてのリソースがリストされます。 CloudFormation スタック テンプレートで「新しいロールを自動的に作成する」ことを選択した場合、AWS のReadOnlyAccess ポリシーによってアクセス可能なアカウント内のすべてのリソースがインベントリに表示されます。 カスタム ポリシーを使用して手動でロールを作成すると、添付されたアクセス許可ポリシーで指定されたリソース タイプのみがインベントリに表示されます。
アカウントに表示される 3 点メニュー をクリックすると 、6つの 選択肢が表示されます: 新しい文書作成、AWSからのアカウント更新、更新のスケジュール、編集リソース、アカウントの名前変更、 アカウント削除 。
Create New 文書は、アカウントに関連付けられたAWSインフラを新しい文書のワークスペース内のダイアグラムとしてレンダリングするスタートをします。文書はLucid ホームページのバックグラウンドで生成され、ページ右下に表示されるステータスモーダルを通じて表示され次第通知いたします。
AWSからアカウントを更新 し、スケジュール更新 をすることで、データハブにインポートしたAWSアカウントデータを手動または自動的に更新し、接続されたAWSアカウントの変更を反映できます。更新後にアカウントから新たに作成された文書は、接続されたAWSアカウントの変更を反映します。
詳しくはこちら: インポートされたクラウドデータソースは自動的にスケジュール更新が有効になっています。データハブからいつでも調整できます。AWSからのアカウント更新についての詳細は、「Lucidscaleでの更新および同期データ」記事をご覧ください。
編集リソース は、各データセットに含まれるリソースを編集できます。 このオプションを選択して、既存のデータセットからリソースを追加または削除できるモダルを開いてください。選択が終わったら、「 アカウントを保存して更新」をクリックします。これにより、データセットの更新や参照する文書が最新の情報に更新されます。
[アカウント名の変更 ] では、選択したデータセットの名前を変更できます。
アカウントを削除すると 、インポートしたアカウントがLucid Data Hubから削除され、そのアカウントから作成された文書はAWSからデータを更新する機能を失います。アカウントを削除しても再インポートは必須ではなく、 +新設アカウントからいつでも同じアカウントの新規インポートを開始できます。
注: 上記のオプションは、アカウントで使用したインポート方法によって異なります。 更新 オプションは、AWS クロスアカウントロールのインポートでのみ使用できます。IAM および CLI インポートでは、このオプションはサポートされていません。
保存された資格情報の共有と削除
「Data Hub > AWS」の「保存された認証情報 」セクションには、AWS アカウントをデータハブにインポートするために使用できるクロスアカウントロールがリストされています。このセクションで、[ + 新しいクロスアカウントロール] をクリックして 、AWS アカウントのインポートに使用できる新しい認証情報のセットを追加します。
作成したクロスアカウントロールを他のユーザーと共有することもできます。アカウントにレンダリングされた3つのドットのメニューをクリックすると、 資格情報の共有 と 資格情報の削除の2つの潜在的なオプションが表示されます。
共有 credential は、メールアドレスを指定することで、Lucidアカウント内の他のユーザーとクロスアカウントロールを共有できるモーダルを開きます。認証情報へのアクセスを許可すると、関連するAWSアカウントをData Hubにインポート し、Lucidscale文書を作成できます。認証情報が他のユーザーと共有された後、 同じモーダルでそのユーザーのメールアドレスの横にある X ボタンをクリックすることで、そのユーザーへのアクセスを取り消すことができます。
認証情報を削除すると、データハブからクロスアカウントロールが削除されます。認証情報を削除した後、その認証情報で以前にインポートされたすべてのアカウントと、それらのアカウントから作成された文書はAWSからデータを更新できなくなります。
詳しくはこちら:所有しているデータハブでのみ認証情報を共有できます。適切なアクセス権を持つ者のみがアカウントのインポートや文書作成が可能です。詳細については、Lucidscaleにおける認証情報管理、使用、セキュリティに関する記事をご覧ください。
セキュリティに関する情報
クロスアカウントロール
クロスアカウントロールは、アカウントへの第三者アクセスを許可するための AWS からの推奨方法です。 この方法により、Lucidscale は認証情報を安全に保存できるため、ダイアグラムを簡単に更新できます。 詳細については、次のリソースを参照してください。
強制外部 ID
AWS が提供するセキュリティのベストプラクティスに従って、Lucid は外部 ID が Lucid のデータベース内で一意であることを強制します。 したがって、Lucid はユーザーに一意の外部 ID を提供し、ユーザーが独自の外部 ID を入力することを禁止します。
IAM ユーザーのセキュアで制限されたアクセス
作成する IAM ユーザーに対して、制限付きの「説明」レベルのアクセス許可をリクエストします。 これらのアクセス許可で作成された IAM ユーザーは、AWS インフラストラクチャの設定を変更したり、データベースのデータを読み取ったりすることはできません。 IAM ユーザーは、AWS インフラストラクチャの構造メタデータを読み取るためにのみ使用されます。
代替手段としての CLI スクリプト
AWSインフラスキャン中の操作をレビュー・管理したい場合は、IAMユーザーを作成する代わりに、提供されているPythonスクリプトをダウンロードして使用できます。 この場合、IAMの認証情報はLucidscaleに渡されることはなく、環境で動作するコードとメタデータの両方を確認してからメタデータをアップロードできます。インポートされたJSONはLucid Data Hubでアクセス可能で、Lucidscale 文書の作成に利用できます。
文書の安全な保管(文書)
Lucidscaleは、AWSでインポートされたメタデータと生成された文書を、業界標準の機密データ保護で保存しています。インポートされたAWSデータはLucidscale文書の一部として埋め込まれているため、Lucidの標準的な共有権限を使ってデータへのアクセスを制御できます。文書の保護方法についての詳細は、当社のコンテンツセキュリティページをご参照いただくか、営業チームまでお問い合わせください。
アクセスキーを保管しない
Lucidscale は、AWS インフラストラクチャの初期スキャンの実行後に AWS IAM 認証情報を保存することはありません。 お客様の資格情報は、標準の暗号化方法を使用してサーバーに転送されます。 クライアントは、AES-256 までの暗号化プロトコルをネゴシエートできます。 お客様の環境への「説明とリスト」アクセスのみを提供するクロスアカウントロールを保存できます。
よくある質問 (FAQ)
Lucidscale はどのようにして AWS 環境にアクセスするのですか? Lucidscale にはどのレベルのアクセス権がありますか?
Lucidscale と AWS が推奨する方法は、クロスアカウントロールを使用することです。お客様の環境への「説明と一覧表示」アクセスを提供するポリシーを提供して、リソースのインベントリを取得できます。 Lucidに保存されている認証情報には、Lucid アカウントからのみアクセスできます。このインポート方法では、1回の操作でアカウントのデータを更新できます。私たちが提供するアクセス許可ポリシーを使用すると、クロスアカウントロールが AWS にリクエストするためにアクセスできるデータを正確に決定できます。
IAM ユーザーメソッドを使用する場合、認証情報はまったく保存されず、一度使用されて破棄されます。 通常、ユーザーはこのインポート方法をAWSの一時的な認証情報と一緒に使用しますが、この方法では追加のデータ更新はできません。
JSONファイルを生成するコマンドラインインターフェイス(CLI)を介して実行できるPythonスクリプトを使用するメソッドもあります。 JSON ファイルを生成した後、ユーザーはコンテンツを確認し、必要に応じてインポート前にデータを削除できます。 ユーザーはこの JSON ファイルを Lucidscale にアップロードでき、認証情報を Lucidscale に入力することはできません。
Lucidscale Commercial と Lucidscale for Gov は、クロスアカウントロールでインポートする場合、どのように相互作用しますか?
製品の機能はそれぞれ同じですが、AWS ではこれら 2 つの環境に対して異なる方法でセキュリティを設定します。 AWS IAM ロールとリソースベースのポリシーは、1 つのパーティション内のアカウント間でのみアクセスを委任します。 Lucid GovSuite は別の AWS パーティションにあるため、GovCloud 以外の AWS アカウントからクロスアカウントロールを介して AWS データをインポートすることはできません。 推奨されるインポート方法であるクロスアカウントロールでは、同じタイプのアカウントへのアクセスのみが許可されるため、Lucid 商用環境の場合はクロスアカウントロールを介して商用 AWS クラウドアカウントにアクセスしてインポートでき、Lucid GovSuite 環境を使用している場合はクロスアカウントロールを介して AWS GovCloud アカウントにアクセスしてインポートできます。
商用 AWS アカウントを Lucidscale for Gov にインポートする機能は、IAM ユーザーまたは CLI スクリプトから作成された JSON を使用してサポートされています。
Lucidscale はどのような API にアクセスできますか?
主に説明とリストAPIエンドポイントを使用します。
インポートするメタデータ ([データ] パネルに表示されるフィールドと値) を選択できますか? そうでない場合、どのメタデータがインポートされますか?
いいえ、現在、インポートするメタデータを選択することはできません。ただし、将来的にはそれを行うための機能を作成しようとしています。記述 API 呼び出しからのすべてのメタデータがインポートされます。
この記事へのフィードバックをお寄せください
この記事に関するフィードバックはありますか?体験の内容についてこちらから教えてください。