DUICUO

SQL でクラウド API データをスムーズにクエリ - Steampipe

Steampipe: select * from cloud を使用すると、SQLを使用してクラウドサービス(AWS、Azure、GCP、GitHub、Slackなど)に瞬時にクエリを実行できます。これはデータベースを必要としないオープンソースのCLIツールです。SteampipeはAPIとサービスを高性能なリレーショナルデータベースとして公開し、SQLベースのクエリを記述して動的なデータを探索できます。Modsは、シンプルなHCLで構築されたダッシュボード、レポート、コントロールを使用することで、Steampipeの機能を拡張します。

インストール

公式ウェブサイト https://steampipe.io/downloads にアクセスし、対応するプラットフォームを選択してインストール パッケージをダウンロードできます。

Linux ユーザーの場合は、次のコマンドを使用してワンクリック インストールできます。

 sudo / bin / sh - c "$(curl -fsSL https://raw.githubusercontent.com/turbot/steampipe/main/install.sh)"

インストール後、成功したかどうかを確認します。

 ~$ 蒸気パイプ- v
Steampipe バージョン0.15.2

上記のバージョン情報が表示されればインストールは成功です。

次に、ニーズに応じて対応するプラグインをインストールします: steampipe plugin install steampipe。

Mac ユーザーの場合は、Homebrew を使用して、brew install steampipe というコマンドを 1 回のクリックで実行して steampipe をインストールできます。

使用

ここでは AWS を例にして、steampipe の使用方法を説明します。

まず、Steampee をダウンロードしてインストールし、次にプラグインをインストールします。

 Steampipe プラグインのインストールaws

Steampipe は、steampipe クエリを初めて実行するときに追加のコンポーネントをダウンロードしてインストールするため、最初の読み込みに数秒かかる場合があります。

Steampipe は多くのプラグインをサポートしており、公式 Web サイト (https://hub.steampipe.io/plugins) で確認できます。

プラグインがインストールされると、Steampipe は認証情報ファイルや環境変数からのデフォルトの AWS 認証情報を使用するため、これらも設定されていることを確認する必要があります。

AWS認証情報ファイルから「profile」パラメータを使用して名前付きプロファイルを指定できます。各プロファイルをリンクする場合、名前付きプロファイルを使用するのがおそらく最も一般的な設定です。

AWS 認証情報ファイル

 [ プロフィール_y ]
aws_access_key_id = AKIA4YFAKEKEYXTDS252
aws_secret_access_key = SH42YMW5p3EThisIsNotRealzTiEUwXN8BOIOF5J8m
地域= 米国- 西部- 2
[ プロフィール_z ]
aws_access_key_id = AKIA4YFAKEKEYJ7HS98F
aws_secret_access_key = Apf938vDKd8ThisIsNotRealzTiEUwXj9nKLWP9mg4

aws.spc

 接続"aws_account_y" {
プラグイン= "aws"
プロファイル= "profile_y"
リージョン= [ "us-east-1" , "us-west-2" ]
}
接続"aws_account_z" {
プラグイン= "aws"
プロファイル= "profile_z"
地域= [ "ap-southeast-1" , "ap-southeast-2" ]
}

`aws ec2 describe-vpcs` を実行できる場合は、使用する準備が整っています。

Steampipe は、クエリシェルを離れることなくテーブルやデータを探索できるコマンドを提供しています。`steampipe query` を実行すると、対話型クエリセッションが開きます。

 $ steampipe クエリ
Steampipe v0.5.0 ようこそ
詳細について、「. help」 と入力してください
>

次に、`.tables` コマンドを実行すると、利用可能なテーブルが一覧表示されます。

 > .tables
==> AWS
+----------------------------------------+-------------------------------------------+
| | 説明|
+----------------------------------------+-------------------------------------------+
| aws_accessanalyzer_analyzer | AWS アクセスアナライザー|
| aws_account | AWS アカウント|
| aws_acm_certificate | AWS ACM 証明書|
| aws_api_gateway_api_key | AWS API Gateway API キー|
...
+----------------------------------------+-------------------------------------------+

通常、AWS プラグインには利用可能なテーブルが多数あります。例えば、`aws_iam_role` テーブルは `.inspect` コマンドを実行することで表示できます。

 > . aws_iam_role を検査する
+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
| | タイプ| 説明|
+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
| account_id | text | リソース配置れているAWS アカウントID |
| 別名| jsonb | リソースのグローバル一意識別子文字列( とも呼ばれます) 配列|
| arn | テキスト| ロール指定するAmazon リソース( ARN ) |
| assume_role_policy | jsonb | エンティティロール引き受ける権限付与するポリシー |
| assume_role_policy_std | jsonb | 検索を容易にするために、 ロール引き継ぎポリシー正規形式格納ます|
| attached_policy_arns | jsonb | ロールアタッチされている管理ポリシーリスト |
| create_date | タイムゾーンなしのタイムスタンプ| ロール作成日時 |
| 説明| テキスト| ロールについてユーザー提供説明 |
| inline_policies | jsonb | ロールインラインポリシーとして埋め込まいるポリシードキュメントリスト
...
+---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------------------------------+

aws_iam_role テーブルで使用できる列がわかったので、簡単なクエリを実行してロールを一覧表示できます。

 aws_iam_role から名前を選択

もう少し複雑なシナリオを見て、境界ポリシーを適用していないロールを見つけてみましょう。

 選択
名前
から
aws_iam_role
どこ
permissions_boundary_arnnull です

他のデータベースと同様に、テーブルを結合することもできます。例えば、AWS管理ポリシーがアタッチされているすべてのロールを検索できます。

 選択
r . 名前
policy_arn
p is_aws_managed
から
aws_iam_roler として
jsonb_array_elements_text ( attached_policy_arns ) をpolicy_arn として
aws_iam_policyp として
どこ
p.arn = ポリシー_arn
およびp . is_aws_managed ;
 +-------------------------------------------------------+------------------------------------------------------------------------------------+----------------+
| 名前| policy_arn | is_aws_managed |
+-------------------------------------------------------+------------------------------------------------------------------------------------+----------------+
| aws - elasticbeanstalk - ec2 - ロール| arn : aws : iam :: aws : ポリシー/ AWSElasticBeanstalkWorkerTier | true |
| aws - elasticbeanstalk - ec2 - ロール| arn : aws : iam :: aws : ポリシー/ AWSElasticBeanstalkMulticontainerDocker | true |
| admin | arn : aws : iam :: aws : ポリシー/ ReadOnlyAccess | true |
| AWSServiceRoleForSSO | arn : aws : iam :: aws : ポリシー/ aws - サービス- ロール/ AWSSSOServiceRolePolicy | true |
| AWSServiceRoleForAccessAnalyzer | arn : aws : iam :: aws : ポリシー/ aws - サービス- ロール/ AccessAnalyzerServiceRolePolicy | true |
| aws - elasticbeanstalk - サービス- ロール| arn : aws : iam :: aws : ポリシー/ サービス- ロール/ AWSElasticBeanstalkEnhancedHealth | true |
| AWSServiceRoleForElasticLoadBalancing | arn : aws : iam :: aws : ポリシー/ aws - サービス- ロール/ AWSElasticLoadBalancingServiceRolePolicy | true |
| aws - elasticbeanstalk - サービス- ロール| arn : aws : iam :: aws : ポリシー/ サービス- ロール/ AWSElasticBeanstalkService | true |
| AWSServiceRoleForOrganizations | arn : aws : iam :: aws : ポリシー/ aws - サービス- ロール/ AWSOrganizationsServiceTrustPolicy | true |
+-------------------------------------------------------+------------------------------------------------------------------------------------+----------------+

Steampipeプラグインは設定を簡単に照会する方法を提供し、Steampipeモードではダッシュボード、レポート、コントロールを作成して共有できます。Steampipeダッシュボードでは、Steampipeデータを視覚化できます。

AWS Insightsのmodをダウンロードしてダッシュボードを表示できます。まずはリポジトリをクローンします。

 git クローンhttps://github.com/turbot/steampipe-mod-aws-insights.git

次に、そのディレクトリに切り替えて、steampipe ダッシュボードを実行します。

 cd steampipe - mod - aws - インサイト
蒸気管ダッシュボード

これによりダッシュボードが起動します。

Steampipe はブラウザで http://localhost:9194/ を開きます。ホームページには利用可能なダッシュボードが一覧表示され、タイトルまたはタグで検索できます。レポートを表示するには、タイトルをクリックします。例えば、「AWS CloudTrail Trail Dashboard」をクリックすると表示されます。

ページ上部の検索バーを使って別のダッシュボードに移動するか、左上隅のSteampipeロゴをクリックしてホームページに戻ることができます。終了したら、ターミナルコンソールに戻り、Ctrl+C を押して終了してください。

Git リポジトリ: https://github.com/turbot/steampipe。