見出し画像

【AWS】各リソースの情報をCLIで取得するバッチ


■背景

社内業務の一環で、AWSにある資産をすべてExcelに起こし管理するという方針になった。マネジメントコンソール画面上にある文字列をコピー&ペーストするのは労力的に負荷が高く、また、都度Excelに反映する業務が今後発生するので、効率化したいと思いバッチ化してみた。

■前提

  • 環境:Windows

  • バッチファイル名:xxx.bat

■バッチの基本構文

Windowsバッチ

  • chcp:文字コードの設定(65001=UTF-8)

  • >:ファイル出力(上書き)

  • >>:ファイル出力(追記)

  • ^:コマンド改行(複数行に渡りコマンドを書きたいときに使用)

  • call:コマンドや関数を実行する

AWSコマンド

  • output:出力形式
    (選択可能オプション=text, json, yaml, table, yaml-stream)

■ソース

VPC

chcp 65001
echo VPC ID	状態	IPv4	CIDR	DHCPオプションセット > describe.log
set cmdVpc=aws ec2 describe-vpcs^
 --query "Vpcs[].{VPCID:VpcId,Joutai:State,CIDR:CidrBlock,DhcpOption:DhcpOptionsId}"^
 --profile <PROFILE>^
 --output text
call %cmdVpc% >> describe.log

ラムダ

aws lambda get-policy --region <your-region> --function-name <your-function>
 
aws lambda list-function --profile <your-profile> --query "Functions[].{FunctionName:FunctionName, Runtime:Runtime, Timeout:Timeout, MemorySize:MemorySize}"



■一括取得

試しにバッチ化してみたものです。
保証はしていないので、もし以下を真似て作るときは事前に動作確認をしてください。

AWS_GetAllResourcesConfig_Parent.ini

[conf]
role=your-config-role
region=eu-central-1
; 米国東部 (バージニア北部)
; us-east-1
; 米国東部 (オハイオ)
; us-east-2
; 米国西部 (北カリフォルニア)
; us-west-1
; 米国西部 (オレゴン)
; us-west-2
; アジアパシフィック (ムンバイ)
; ap-south-1
; アジアパシフィック (大阪)
; ap-northeast-3
; アジアパシフィック (ソウル)
; ap-northeast-2
; アジアパシフィック (シンガポール)
; ap-southeast-1
; アジアパシフィック (シドニー)
; ap-southeast-2
; アジアパシフィック (東京)
; ap-northeast-1
; カナダ (中部)
; ca-central-1
; 欧州 (フランクフルト)
; eu-central-1
; 欧州 (アイルランド)
; eu-west-1
; 欧州 (ロンドン)
; eu-west-2
; 欧州 (パリ)
; eu-west-3
; 欧州 (ストックホルム)
; eu-north-1
; 南米 (サンパウロ)
; sa-east-1

「your-config-role」には、~\.aws\configのロール名を設定する。

AWS_GetAllResourcesConfig_Parent.bat

@echo off
chcp 65001

setlocal enabledelayedexpansion
REM ====================================================================
REM INIファイルからキー取得バッチ
REM ※注意事項:①バッチファイルと同じディレクトリにINIファイルがあること
REM             ②INIファイル名はバッチファイルと同じであること
REM ====================================================================
 
REM ------------------------------------------------
REM INIファイル名を取得
REM ------------------------------------------------
REM INIファイル名のセット
Set INIFILE=%~dp0%~n0.ini
 
REM ------------------------------------------------
REM サブルーチン:GET-INIの呼び出し
REM ------------------------------------------------
call :GET_INI "conf" "region" confRegion %INIFILE%
call :GET_INI "conf" "role"   confRole   %INIFILE%
 
echo %confRegion%
echo %confRole%

if not exist %confRegion% (
  mkdir %confRegion%
)

call AWS_GetAllResourcesConfig_Child.bat %confRegion% %confRole%

REM ------------------------------------------------
REM 終了
REM ------------------------------------------------
pause
exit
 
:GET_INI
REM ====================================================================
REM INIファイルから項目を読み取り返す
REM     %1:   セクション名
REM     %2:   キー名
REM     %3    取得変数名
REM     %4:   INIファイル名
REM 
REM   ※キーを取得できない場合は、取得変数に「ERR」を返す
REM 
REM ====================================================================
 
REM ------------------------------------------------
REM ファイルを1行ずつ読み出して、検索
REM ------------------------------------------------
 
set TempStr=
set SN=
for /f "usebackq eol=; delims== tokens=1,2" %%a in (%4) do (
   set V=%%a&set P=!V:~0,1!!V:~-1,1!&set S=!V:~1,-1!
   if "!P!"=="[]" set SN=!S!
   if "!SN!"=="%~1" if "!V!"=="%~2" (
      set TempStr=%%b
      goto GET_INI_EXIT
   )
)
REM ------------------------------------------------
REM 項目が見つからない場合は、「ERR」を変数へ入力
REM ------------------------------------------------
set TempStr=ERR
 
:GET_INI_EXIT
REM ------------------------------------------------
REM 取得変数名に入力
REM ------------------------------------------------
 
set %3=%TempStr%
 
:EOF

AWS_GetAllResourcesConfig_Child.bat

@echo off
chcp 65001
set region=%1
set profilerole=%2
rem set outputfile=configdata.log
rem echo 【詳細設定情報】 > configdata.log

rem AWS::EC2::CustomerGateway
set query=aws ec2 describe-internet-gateways --profile %profilerole% --output text --region %region% --query "InternetGateways[].{InternetGatewayId: InternetGatewayId}"
call :runBatchGetResource AWS::EC2::CustomerGateway
rem AWS::EC2::Host
set query=aws ec2 describe-hosts --profile %profilerole% --output text --region %region% --query "Hosts[].{Hosts:Hosts}"
call :runBatchGetResource AWS::EC2::Host
rem AWS::EC2::Instance
set query=aws ec2 describe-instances --profile %profilerole% --output text --region %region% --query "Reservations[].Instances[].{InstanceId: InstanceId}"
call :runBatchGetResource AWS::EC2::Instance
rem AWS::EC2::InternetGateway
set query=aws ec2 describe-internet-gateways --profile %profilerole% --output text --region %region% --query "InternetGateways[].{InternetGatewayId: InternetGatewayId}"
call :runBatchGetResource AWS::EC2::InternetGateway
rem AWS::EC2::NetworkAcl
set query=aws ec2 describe-network-acls --profile %profilerole% --output text --region %region% --query "NetworkAcls[].Associations[].{NetworkAclId: NetworkAclId}"
call :runBatchGetResource AWS::EC2::NetworkAcl
rem AWS::EC2::NetworkInterface
set query=aws ec2 describe-network-interfaces --profile %profilerole% --output text --region %region% --query "NetworkInterfaces[].{NetworkInterfaceId:NetworkInterfaceId}"
call :runBatchGetResource AWS::EC2::NetworkInterface
rem AWS::EC2::RouteTable
set query=aws ec2 describe-route-tables --profile %profilerole% --output text --region %region% --query "RouteTables[].{RouteTableId:RouteTableId}"
call :runBatchGetResource AWS::EC2::RouteTable
rem AWS::EC2::SecurityGroup
set query=aws ec2 describe-security-groups --profile %profilerole% --output text --region %region% --query "SecurityGroups[].IpPermissions[].UserIdGroupPairs[].{GroupId:GroupId}"
call :runBatchGetResource AWS::EC2::SecurityGroup
rem AWS::EC2::Subnet
set query=aws ec2 describe-subnets --profile %profilerole% --output text --region %region% --query "Subnets[].{SubnetId: SubnetId}"
call :runBatchGetResource AWS::EC2::Subnet
rem AWS::CloudTrail::Trail
set query=aws cloudtrail describe-trails --profile %profilerole% --output text --region %region% --query "trailList[].{TrailARN:TrailARN}"
call :runBatchGetResource AWS::EC2::Volume
rem AWS::EC2::Volume
set query=aws ec2 describe-volumes --profile %profilerole% --output text --region %region% --query "Volumes[].{VolumeId:VolumeId}"
call :runBatchGetResource AWS::EC2::Volume
rem AWS::EC2::VPC
set query=aws ec2 describe-vpcs --profile %profilerole% --output text --region %region% --query "Vpcs[].{VpcId:VpcId}"
call :runBatchGetResource AWS::EC2::VPC
rem AWS::EC2::VPNConnection
set query=aws ec2 describe-vpn-connections --profile %profilerole% --output text --region %region% --query "VpnConnections[].{VpnConnections:VpnConnections}"
call :runBatchGetResource AWS::EC2::VPNConnection
rem AWS::EC2::VPNGateway
set query=aws ec2 describe-vpn-gateways --profile %profilerole% --output text --region %region% --query "VpnGateways[].{VpnGateways:VpnGateways}"
call :runBatchGetResource AWS::EC2::VPNGateway
rem AWS::EC2::NatGateway
set query=aws ec2 describe-nat-gateways --profile %profilerole% --output text --region %region% --query "NatGateways[].{NatGatewayId:NatGatewayId}"
call :runBatchGetResource AWS::EC2::NatGateway
rem AWS::EC2::EgressOnlyInternetGateway
set query=aws ec2 describe-egress-only-internet-gateways --profile %profilerole% --output text --region %region% --query "EgressOnlyInternetGateways[].{EgressOnlyInternetGateways:EgressOnlyInternetGateways}"
call :runBatchGetResource AWS::EC2::EgressOnlyInternetGateway
rem AWS::EC2::VPCEndpoint
set query=aws ec2 describe-vpc-endpoints --profile %profilerole% --output text --region %region% --query "VpcEndpoints[].{VpcEndpointId:VpcEndpointId}"
call :runBatchGetResource AWS::EC2::VPCEndpoint
rem AWS::EC2::VPCEndpointService
set query=aws ec2 describe-vpc-endpoint-services --profile %profilerole% --output text --region %region% --query "ServiceDetails[].{ServiceId:ServiceId}"
call :runBatchGetResource AWS::EC2::VPCEndpointService
rem AWS::EC2::FlowLog
set query=aws ec2 describe-flow-logs --profile %profilerole% --output text --region %region% --query "FlowLogs[].{FlowLogId:FlowLogId}"
call :runBatchGetResource AWS::EC2::FlowLog
rem AWS::EC2::VPCPeeringConnection
set query=aws ec2 describe-vpc-peering-connections --profile %profilerole% --output text --region %region% --query "VpcPeeringConnections[].{VpcPeeringConnectionId:VpcPeeringConnectionId}"
call :runBatchGetResource AWS::EC2::VPCPeeringConnection
rem AWS::EC2::RegisteredHAInstance				Describeコマンドなし
rem AWS::EC2::EIP								Describeコマンドなし
rem AWS::Elasticsearch::Domain					Describeコマンドなし
rem AWS::IAM::Group								Describeコマンドなし
rem AWS::IAM::Policy							Describeコマンドなし
rem AWS::IAM::Role								Describeコマンドなし
rem AWS::IAM::User								Describeコマンドなし
rem AWS::ElasticLoadBalancingV2::LoadBalancer	Describeコマンドなし
rem AWS::ACM::Certificate						Describeコマンドなし
rem AWS::RDS::DBInstance						Describeコマンドなし
rem AWS::RDS::DBSubnetGroup						Describeコマンドなし
rem AWS::RDS::DBSecurityGroup					Describeコマンドなし
rem AWS::RDS::DBSnapshot						Describeコマンドなし
rem AWS::RDS::DBCluster							Describeコマンドなし
rem AWS::RDS::DBClusterSnapshot					Describeコマンドなし
rem AWS::RDS::EventSubscription					Describeコマンドなし
rem AWS::S3::Bucket								Describeコマンドなし
rem AWS::S3::AccountPublicAccessBlock			Describeコマンドなし
rem AWS::Redshift::Cluster
set query=aws redshift describe-clusters --profile %profilerole% --output text --region %region% --query "Clusters[].{Clusters:Clusters}"
call :runBatchGetResource AWS::Redshift::Cluster
rem AWS::Redshift::ClusterSnapshot
set query=aws redshift describe-cluster-snapshots --profile %profilerole% --output text --region %region% --query "Snapshots[].{Snapshots:Snapshots}"
call :runBatchGetResource AWS::Redshift::ClusterSnapshot
rem AWS::Redshift::ClusterParameterGroup
set query=aws redshift describe-cluster-parameter-groups --profile %profilerole% --output text --region %region% --query "ParameterGroups[].{ParameterGroups:ParameterGroups}"
call :runBatchGetResource AWS::Redshift::ClusterParameterGroup
rem AWS::Redshift::ClusterSecurityGroup			VPC-by-Defaultを指定する必要あり
rem set query=aws redshift describe-cluster-security-groups --profile %profilerole% --output text --region %region%
rem call :runBatchGetResource AWS::Redshift::ClusterSecurityGroup
rem AWS::Redshift::ClusterSubnetGroup
set query=aws redshift describe-cluster-subnet-groups --profile %profilerole% --output text --region %region% --query "ClusterSubnetGroups[].{ClusterSubnetGroups:ClusterSubnetGroups}"
call :runBatchGetResource AWS::Redshift::ClusterSubnetGroup
rem AWS::Redshift::EventSubscription
set query=aws redshift describe-event-subscriptions --profile %profilerole% --output text --region %region% --query "EventSubscriptionsList[].{EventSubscriptionsList:EventSubscriptionsList}"
call :runBatchGetResource AWS::Redshift::EventSubscription
rem AWS::SSM::ManagedInstanceInventory			Describeコマンドなし
rem AWS::CloudWatch::Alarm
set query=aws cloudwatch describe-alarms --profile %profilerole% --output text --region %region% --query "MetricAlarms[].{AlarmArn:AlarmArn}"
call :runBatchGetResource AWS::CloudWatch::Alarm
rem AWS::CloudFormation::Stack
set query=aws cloudformation describe-stacks --profile %profilerole% --output text --region %region% --query "Stacks[].{StackId:StackId}"
call :runBatchGetResource AWS::CloudFormation::Stack
rem AWS::ElasticLoadBalancing::LoadBalancer		Describeコマンドなし
rem AWS::AutoScaling::AutoScalingGroup
set query=aws autoscaling describe-auto-scaling-groups --profile %profilerole% --output text --region %region% --query "AutoScalingGroups[].{AutoScalingGroupARN:AutoScalingGroupARN}"
call :runBatchGetResource AWS::AutoScaling::AutoScalingGroup
rem AWS::AutoScaling::LaunchConfiguration
set query=aws autoscaling describe-launch-configurations --profile %profilerole% --output text --region %region% --query "LaunchConfigurations[].{LaunchConfigurationARN:LaunchConfigurationARN}"
call :runBatchGetResource AWS::AutoScaling::LaunchConfiguration
rem AWS::AutoScaling::ScalingPolicy				Describeコマンドなし
rem AWS::AutoScaling::ScheduledAction
set query=aws autoscaling describe-scheduled-actions --profile %profilerole% --output text --region %region% --query "ScheduledUpdateGroupActions[].{ScheduledUpdateGroupActions:ScheduledUpdateGroupActions}"
call :runBatchGetResource AWS::AutoScaling::ScheduledAction
rem AWS::DynamoDB::Table						テーブル名を指定する必要あり
rem AWS::CodeBuild::Project						Describeコマンドなし
rem AWS::WAF::RateBasedRule						Describeコマンドなし
rem AWS::WAF::Rule								Describeコマンドなし
rem AWS::WAF::RuleGroup							Describeコマンドなし
rem AWS::WAF::WebACL							Describeコマンドなし
rem AWS::WAFRegional::RateBasedRule				Describeコマンドなし
rem AWS::WAFRegional::Rule						Describeコマンドなし
rem AWS::WAFRegional::RuleGroup					Describeコマンドなし
rem AWS::WAFRegional::WebACL					Describeコマンドなし
rem AWS::CloudFront::Distribution				Describeコマンドなし
rem AWS::CloudFront::StreamingDistribution		Describeコマンドなし
rem AWS::Lambda::Function						Describeコマンドなし
rem AWS::NetworkFirewall::Firewall				ファイアウォール名を指定する必要あり
rem AWS::NetworkFirewall::FirewallPolicy 		FirewallPolicyArnを指定する必要あり
rem AWS::NetworkFirewall::RuleGroup				Describeコマンドなし
rem AWS::ElasticBeanstalk::Application
set query=aws elasticbeanstalk describe-applications --profile %profilerole% --output text --region %region% --query "Applications[].{Applications:Applications}"
call :runBatchGetResource AWS::ElasticBeanstalk::Application
rem AWS::ElasticBeanstalk::ApplicationVersion
set query=aws elasticbeanstalk describe-application-versions --profile %profilerole% --output text --region %region% --query "ApplicationVersions[].{ApplicationVersions:ApplicationVersions}"
call :runBatchGetResource AWS::ElasticBeanstalk::ApplicationVersion
rem AWS::ElasticBeanstalk::Environment
set query=aws elasticbeanstalk describe-environments --profile %profilerole% --output text --region %region% --query "Environments[].{Environments:Environments}"
call :runBatchGetResource AWS::ElasticBeanstalk::Environment
rem AWS::WAFv2::WebACL							Describeコマンドなし
rem AWS::WAFv2::RuleGroup						Describeコマンドなし
rem AWS::WAFv2::IPSet							Describeコマンドなし
rem AWS::WAFv2::RegexPatternSet					Describeコマンドなし
rem AWS::WAFv2::ManagedRuleSet					Describeコマンドなし
rem AWS::XRay::EncryptionConfig					Describeコマンドなし
rem AWS::SSM::AssociationCompliance				Describeコマンドなし
rem AWS::SSM::PatchCompliance					Describeコマンドなし
rem AWS::Shield::Protection						provide名を指定する必要あり
rem AWS::ShieldRegional::Protection				Describeコマンドなし
rem AWS::Config::ConformancePackCompliance		Describeコマンドなし
rem AWS::Config::ResourceCompliance				Describeコマンドなし
rem AWS::ApiGateway::Stage						Describeコマンドなし
rem AWS::ApiGateway::RestApi					Describeコマンドなし
rem AWS::ApiGatewayV2::Stage					Describeコマンドなし
rem AWS::ApiGatewayV2::Api						Describeコマンドなし
rem AWS::CodePipeline::Pipeline					Describeコマンドなし
rem AWS::ServiceCatalog::CloudFormationProvisionedProduct	Describeコマンドなし
rem AWS::ServiceCatalog::CloudFormationProduct	Describeコマンドなし
rem AWS::ServiceCatalog::Portfolio				idを指定する必要あり
rem AWS::SQS::Queue								Describeコマンドなし
rem AWS::KMS::Key								key-idを指定する必要あり
rem AWS::QLDB::Ledger							Nameを指定する必要あり
rem AWS::SecretsManager::Secret					secret-idを指定する必要あり
rem AWS::SNS::Topic								Describeコマンドなし
rem AWS::SSM::FileData							secret-idを指定する必要あり
rem AWS::Backup::BackupPlan						Describeコマンドなし
rem AWS::Backup::BackupSelection				Describeコマンドなし
rem AWS::Backup::BackupVault					backup-vault-nameを指定する必要あり
rem AWS::Backup::RecoveryPoint					backup-vault-name/recovery-point-arnを指定する必要あり
rem AWS::ECR::Repository						Describeコマンドなし
rem AWS::ECS::Cluster							Describeコマンドなし
rem AWS::ECS::Service							Describeコマンドなし
rem AWS::ECS::TaskDefinition					Describeコマンドなし
rem AWS::EFS::AccessPoint
set query=aws efs describe-access-points --profile %profilerole% --output text --region %region% --query "AccessPoints[].{AccessPoints:AccessPoints}"
call :runBatchGetResource AWS::EFS::AccessPoint
rem AWS::EFS::FileSystem
set query=aws efs describe-file-systems --profile %profilerole% --output text --region %region% --query "FileSystems[].{FileSystemId:FileSystemId}"
call :runBatchGetResource AWS::EFS::FileSystem
rem AWS::EKS::Cluster							nameを指定する必要あり
rem AWS::OpenSearch::Domain						domain-nameを指定する必要あり
rem AWS::EC2::TransitGateway
set query=aws ec2 describe-transit-gateways --profile %profilerole% --output text --region %region% --query "TransitGateways[].{TransitGateways:TransitGateways}"
call :runBatchGetResource AWS::EC2::TransitGateway
rem AWS::Kinesis::Stream						stream-arnを指定する必要あり
rem AWS::Kinesis::StreamConsumer				stream-arnを指定する必要あり
rem AWS::CodeDeploy::Application				Describeコマンドなし
rem AWS::CodeDeploy::DeploymentConfig			Describeコマンドなし
rem AWS::CodeDeploy::DeploymentGroup			Describeコマンドなし
rem AWS::EC2::LaunchTemplate
set query=aws ec2 describe-launch-templates --profile %profilerole% --query "LaunchTemplates[].{LaunchTemplateId:LaunchTemplateId}" --output text --region %region% 
call :runBatchGetResource AWS::EC2::LaunchTemplate
rem AWS::ECR::PublicRepository					Describeコマンドなし
rem AWS::GuardDuty::Detector					Describeコマンドなし
rem AWS::EMR::SecurityConfiguration				Nameを指定する必要あり
rem AWS::SageMaker::CodeRepository				Describeコマンドなし
rem AWS::Route53Resolver::ResolverEndpoint		Describeコマンドなし
rem AWS::Route53Resolver::ResolverRule			Describeコマンドなし
rem AWS::Route53Resolver::ResolverRuleAssociation	Describeコマンドなし
rem AWS::DMS::ReplicationSubnetGroup
set query=aws dms describe-replication-subnet-groups --profile %profilerole% --output text --region %region% --query "ReplicationSubnetGroups[].{ReplicationSubnetGroups:ReplicationSubnetGroups}"
call :runBatchGetResource AWS::DMS::ReplicationSubnetGroup
rem AWS::DMS::EventSubscription
set query=aws dms describe-event-subscriptions --profile %profilerole% --output text --region %region% --query "EventSubscriptionsList[].{EventSubscriptionsList:EventSubscriptionsList}"
call :runBatchGetResource AWS::DMS::EventSubscription
rem AWS::MSK::Cluster							Describeコマンドなし
rem AWS::StepFunctions::Activity				activity-arnを指定する必要あり
rem AWS::WorkSpaces::Workspace
set query=aws workspaces describe-workspaces --profile %profilerole% --output text --region %region% --query "Workspaces[].{Workspaces:Workspaces}"
call :runBatchGetResource AWS::WorkSpaces::Workspace
rem AWS::WorkSpaces::ConnectionAlias
set query=aws workspaces describe-connection-aliases --profile %profilerole% --output text --region %region% --query "ConnectionAliases[].{ConnectionAliases:ConnectionAliases}"
call :runBatchGetResource AWS::WorkSpaces::ConnectionAlias
rem AWS::SageMaker::Model						Describeコマンドなし
rem AWS::ElasticLoadBalancingV2::Listener		Describeコマンドなし
rem AWS::StepFunctions::StateMachine			state-machine-arnを指定する必要あり
rem AWS::Batch::JobQueue
set query=aws batch describe-job-queues --profile %profilerole% --output text --region %region% --query "jobQueues[].{jobQueueArn:jobQueueArn}"
call :runBatchGetResource AWS::Batch::JobQueue
rem AWS::Batch::ComputeEnvironment
set query=aws batch describe-compute-environments --profile %profilerole% --output text --region %region% --query "computeEnvironments[].{computeEnvironmentArn:computeEnvironmentArn}"
call :runBatchGetResource AWS::Batch::ComputeEnvironment
rem AWS::AccessAnalyzer::Analyzer				Describeコマンドなし
rem AWS::Athena::WorkGroup						Describeコマンドなし
rem AWS::Athena::DataCatalog					Describeコマンドなし
rem AWS::Detective::Graph						Describeコマンドなし
rem AWS::GlobalAccelerator::Accelerator			accelerator-arnを指定する必要あり
rem AWS::GlobalAccelerator::EndpointGroup		endpoint-group-arnを指定する必要あり
rem AWS::GlobalAccelerator::Listener			listener-arnを指定する必要あり
rem AWS::EC2::TransitGatewayAttachment
set query=aws ec2 describe-transit-gateway-attachments --profile %profilerole% --output text --region %region% --query "TransitGatewayAttachments[].{TransitGatewayAttachments:TransitGatewayAttachments}"
call :runBatchGetResource AWS::EC2::TransitGatewayAttachment
rem AWS::EC2::TransitGatewayRouteTable
set query=aws ec2 describe-transit-gateway-route-tables --profile %profilerole% --output text --region %region% --query "TransitGatewayRouteTables[].{TransitGatewayRouteTables:TransitGatewayRouteTables}"
call :runBatchGetResource AWS::EC2::TransitGatewayRouteTable
rem AWS::DMS::Certificate
set query=aws dms describe-certificates --profile %profilerole% --output text --region %region% --query "Certificates[].{Certificates:Certificates}"
call :runBatchGetResource AWS::DMS::Certificate
rem AWS::AppConfig::Application					Describeコマンドなし
rem AWS::AppSync::GraphQLApi					Describeコマンドなし
rem AWS::DataSync::LocationSMB					location-arnを指定する必要あり
rem AWS::DataSync::LocationFSxLustre			location-arnを指定する必要あり
rem AWS::DataSync::LocationS3					location-arnを指定する必要あり
rem AWS::DataSync::LocationEFS					location-arnを指定する必要あり
rem AWS::DataSync::Task							task-arnを指定する必要あり
rem AWS::DataSync::LocationNFS					location-arnを指定する必要あり
rem AWS::EC2::NetworkInsightsAccessScopeAnalysis
set query=aws ec2 describe-network-insights-access-scope-analyses --profile %profilerole% --output text --region %region% --query "NetworkInsightsAccessScopeAnalyses[].{id:id}"
call :runBatchGetResource AWS::EC2::NetworkInsightsAccessScopeAnalysis
rem AWS::EKS::FargateProfile					--cluster-name, --fargate-profile-nameを指定する必要あり
rem AWS::Glue::Job								Describeコマンドなし
rem AWS::GuardDuty::ThreatIntelSet				Describeコマンドなし
rem AWS::GuardDuty::IPSet						Describeコマンドなし
rem AWS::SageMaker::Workteam					Describeコマンドなし
rem AWS::SageMaker::NotebookInstanceLifecycleConfig	Describeコマンドなし
rem AWS::ServiceDiscovery::Service				Describeコマンドなし
rem AWS::ServiceDiscovery::PublicDnsNamespace	Describeコマンドなし
rem AWS::SES::ContactList						Describeコマンドなし
rem AWS::SES::ConfigurationSet				 	--configuration-set-nameを指定する必要あり
rem AWS::Route53::HostedZone					Describeコマンドなし
rem AWS::IoTEvents::Input						--input-nameを指定する必要あり
rem AWS::IoTEvents::DetectorModel				--detector-model-nameを指定する必要あり
rem AWS::IoTEvents::AlarmModel					--alarm-model-nameを指定する必要あり
rem AWS::ServiceDiscovery::HttpNamespace		Describeコマンドなし
rem AWS::Events::EventBus
set query=aws events describe-event-bus --profile %profilerole% --output text --region %region% --query "{Arn:Arn}"
call :runBatchGetResource AWS::Events::EventBus
rem AWS::ImageBuilder::ContainerRecipe			Describeコマンドなし
rem AWS::ImageBuilder::DistributionConfiguration	Describeコマンドなし
rem AWS::ImageBuilder::InfrastructureConfiguration	Describeコマンドなし
rem AWS::DataSync::LocationObjectStorage		--location-arnを指定する必要あり
rem AWS::DataSync::LocationHDFS					--location-arnを指定する必要あり
rem AWS::Glue::Classifier						Describeコマンドなし
rem AWS::Route53RecoveryReadiness::Cell			Describeコマンドなし
rem AWS::Route53RecoveryReadiness::ReadinessCheck	Describeコマンドなし
rem AWS::ECR::RegistryPolicy					Describeコマンドなし
rem AWS::Backup::ReportPlan						--report-plan-nameを指定する必要あり
rem AWS::Lightsail::Certificate					Describeコマンドなし
rem AWS::RUM::AppMonitor						Describeコマンドなし
rem AWS::Events::Endpoint						--nameを指定する必要あり
rem AWS::SES::ReceiptRuleSet					--rule-set-nameを指定する必要あり
rem AWS::Events::Archive						--archive-nameを指定する必要あり
rem AWS::Events::ApiDestination					--nameを指定する必要あり
rem AWS::Lightsail::Disk						Describeコマンドなし
rem AWS::FIS::ExperimentTemplate				Describeコマンドなし
rem AWS::DataSync::LocationFSxWindows			--location-arnを指定する必要あり
rem AWS::SES::ReceiptFilter						Describeコマンドなし
rem AWS::GuardDuty::Filter						Describeコマンドなし
rem AWS::SES::Template							Describeコマンドなし
rem AWS::AmazonMQ::Broker						Describeコマンドなし
rem AWS::AppConfig::Environment					Describeコマンドなし
rem AWS::AppConfig::ConfigurationProfile		Describeコマンドなし
rem AWS::Cloud9::EnvironmentEC2					Describeコマンドなし
rem AWS::EventSchemas::Registry					Describeコマンドなし
rem AWS::EventSchemas::RegistryPolicy			Describeコマンドなし
rem AWS::EventSchemas::Discoverer				Describeコマンドなし
rem AWS::FraudDetector::Label					Describeコマンドなし
rem AWS::FraudDetector::EntityType				Describeコマンドなし
rem AWS::FraudDetector::Variable				Describeコマンドなし
rem AWS::FraudDetector::Outcome					Describeコマンドなし
rem AWS::IoT::Authorizer						--authorizer-nameを指定する必要あり
rem AWS::IoT::SecurityProfile					--security-profile-nameを指定する必要あり
rem AWS::IoT::RoleAlias							--role-aliasを指定する必要あり
rem AWS::IoT::Dimension							--nameを指定する必要あり
rem AWS::IoTAnalytics::Datastore				--datastore-nameを指定する必要あり
rem AWS::Lightsail::Bucket						Describeコマンドなし
rem AWS::Lightsail::StaticIp					Describeコマンドなし
rem AWS::MediaPackage::PackagingGroup			Describeコマンドなし
rem AWS::Route53RecoveryReadiness::RecoveryGroup	Describeコマンドなし
rem AWS::ResilienceHub::ResiliencyPolicy		--policy-arnを指定する必要あり
rem AWS::Transfer::Workflow						--workflow-idを指定する必要あり
rem AWS::EKS::IdentityProviderConfig			--cluster-name, --identity-provider-configを指定する必要あり
rem AWS::EKS::Addon								--cluster-name, --addon-nameを指定する必要あり
rem AWS::Glue::MLTransform						Describeコマンドなし
rem AWS::IoT::Policy							Describeコマンドなし
rem AWS::IoT::MitigationAction					--action-nameを指定する必要あり
rem AWS::IoTTwinMaker::Workspace				Describeコマンドなし
rem AWS::IoTTwinMaker::Entity					Describeコマンドなし
rem AWS::IoTAnalytics::Dataset					--dataset-nameを指定する必要あり
rem AWS::IoTAnalytics::Pipeline					--pipeline-nameを指定する必要あり
rem AWS::IoTAnalytics::Channel					--channel-nameを指定する必要あり
rem AWS::IoTSiteWise::Dashboard					--dashboard-idを指定する必要あり
rem AWS::IoTSiteWise::Project					--project-idを指定する必要あり
rem AWS::IoTSiteWise::Portal					--portal-idを指定する必要あり
rem AWS::IoTSiteWise::AssetModel				--asset-model-idを指定する必要あり
rem AWS::IVS::Channel							Describeコマンドなし
rem AWS::IVS::RecordingConfiguration			Describeコマンドなし
rem AWS::IVS::PlaybackKeyPair					Describeコマンドなし
rem AWS::KinesisAnalyticsV2::Application		--application-name
rem AWS::RDS::GlobalCluster						Describeコマンドなし
rem AWS::S3::MultiRegionAccessPoint				Describeコマンドなし
rem AWS::DeviceFarm::TestGridProject			Describeコマンドなし
rem AWS::Budgets::BudgetsAction					--account-id, --budget-name, --action-idを指定する必要あり
rem AWS::Lex::Bot								Describeコマンドなし
rem AWS::CodeGuruReviewer::RepositoryAssociation	--association-arnを指定する必要あり
rem AWS::IoT::CustomMetric						--metric-nameを指定する必要あり
rem AWS::Route53Resolver::FirewallDomainList	Describeコマンドなし
rem AWS::RoboMaker::RobotApplicationVersion		Describeコマンドなし
rem AWS::EC2::TrafficMirrorSession
set query=aws ec2 describe-traffic-mirror-sessions --profile %profilerole% --output text --region %region% --query "TrafficMirrorSessions[].{id:id}"
call :runBatchGetResource AWS::EC2::TrafficMirrorSession
rem AWS::IoTSiteWise::Gateway					--gateway-idを指定する必要あり
rem AWS::Lex::BotAlias							Describeコマンドなし
rem AWS::LookoutMetrics::Alert					--alert-arnを指定する必要あり
rem AWS::IoT::AccountAuditConfiguration
set query=aws iot describe-account-audit-configuration --profile %profilerole% --output text --region %region% --query "auditCheckConfigurations[].{auditCheckConfigurations:auditCheckConfigurations}"
call :runBatchGetResource AWS::IoT::AccountAuditConfiguration
rem AWS::EC2::TrafficMirrorTarget
set query=aws ec2 describe-traffic-mirror-targets --profile %profilerole% --output text --region %region% --query "TrafficMirrorTargets[].{id:id}"
call :runBatchGetResource AWS::EC2::TrafficMirrorTarget
rem AWS::S3::StorageLens						Describeコマンド
rem AWS::IoT::ScheduledAudit					--scheduled-audit-nameを指定する必要あり
rem AWS::Events::Connection						--nameを指定する必要あり
rem AWS::EventSchemas::Schema					Describeコマンドなし
rem AWS::MediaPackage::PackagingConfiguration	Describeコマンドなし
rem AWS::KinesisVideo::SignalingChannel			Channel ARNを指定する必要あり
rem AWS::AppStream::DirectoryConfig
set query=aws appstream describe-directory-configs --profile %profilerole% --output text --region %region% --query "DirectoryConfigs[].{DirectoryConfigs:DirectoryConfigs}"
call :runBatchGetResource AWS::AppStream::DirectoryConfig
rem AWS::LookoutVision::Project					--project-nameを指定する必要あり
rem AWS::Route53RecoveryControl::Cluster		--cluster-arnを指定する必要あり
rem AWS::Route53RecoveryControl::SafetyRule		--safety-rule-arnを指定する必要あり
rem AWS::Route53RecoveryControl::ControlPanel	--control-panel-arnを指定する必要あり
rem AWS::Route53RecoveryControl::RoutingControl	--routing-control-arnを指定する必要あり
rem AWS::Route53RecoveryReadiness::ResourceSet	Describeコマンドなし
rem AWS::RoboMaker::SimulationApplication		--applicationを指定する必要あり
rem AWS::RoboMaker::RobotApplication			--applicationを指定する必要あり
rem AWS::HealthLake::FHIRDatastore				--datastore-idを指定する必要あり
rem AWS::Pinpoint::Segment						Describeコマンドなし
rem AWS::Pinpoint::ApplicationSettings			Describeコマンドなし
rem AWS::Events::Rule							--nameを指定する必要あり
rem AWS::EC2::DHCPOptions
set query=aws ec2 describe-dhcp-options --profile %profilerole% --output text --region %region% --query "DhcpOptions[].{DhcpOptionsId:DhcpOptionsId}"
call :runBatchGetResource AWS::EC2::DHCPOptions
rem AWS::EC2::NetworkInsightsPath
set query=aws ec2 describe-network-insights-paths --profile %profilerole% --output text --region %region% --query "NetworkInsightsPaths[].{NetworkInsightsPathId:NetworkInsightsPathId}"
call :runBatchGetResource AWS::EC2::NetworkInsightsPath
rem AWS::EC2::TrafficMirrorFilter
set query=aws ec2 describe-traffic-mirror-filters --profile %profilerole% --output text --region %region% --query "TrafficMirrorFilters[].{TrafficMirrorFilters:TrafficMirrorFilters}"
call :runBatchGetResource AWS::EC2::TrafficMirrorFilter
rem AWS::EC2::IPAM
set query=aws ec2 describe-ipams --profile %profilerole% --output text --region %region% --query "Ipams[].{Ipams:Ipams}"
call :runBatchGetResource AWS::EC2::IPAM
rem AWS::IoTTwinMaker::Scene					Describeコマンドなし
rem AWS::NetworkManager::TransitGatewayRegistration	Describeコマンドなし
rem AWS::CustomerProfiles::Domain				Describeコマンドなし
rem AWS::AutoScaling::WarmPool					--auto-scaling-group-nameを指定する必要あり
rem AWS::Connect::PhoneNumber					--phone-number-idを指定する必要あり
rem AWS::AppConfig::DeploymentStrategy			Describeコマンドなし
rem AWS::AppFlow::Flow							--flow-nameを指定する必要あり
rem AWS::AuditManager::Assessment				Describeコマンドなし
rem AWS::CloudWatch::MetricStream				Describeコマンドなし
rem AWS::DeviceFarm::InstanceProfile			Describeコマンドなし
rem AWS::DeviceFarm::Project					Describeコマンドなし
rem AWS::EC2::EC2Fleet							Describeコマンドなし
rem AWS::EC2::SubnetRouteTableAssociation		Describeコマンドなし
rem AWS::ECR::PullThroughCacheRule				Describeコマンドなし
rem AWS::GroundStation::Config					Describeコマンドなし
rem AWS::ImageBuilder::ImagePipeline			Describeコマンドなし
rem AWS::IoT::FleetMetric						--metric-nameを指定する必要あり
rem AWS::IoTWireless::ServiceProfile			Describeコマンドなし
rem AWS::NetworkManager::Device					Describeコマンドなし
rem AWS::NetworkManager::GlobalNetwork			Describeコマンドなし
rem AWS::NetworkManager::Link					Describeコマンドなし
rem AWS::NetworkManager::Site					Describeコマンドなし
rem AWS::Panorama::Package						--package-idを指定する必要あり
rem AWS::Pinpoint::App							Describeコマンドなし
rem AWS::Redshift::ScheduledAction
set query=aws redshift describe-scheduled-actions --profile %profilerole% --output text --region %region% --query "ScheduledActions[].{ScheduledActionsId:ScheduledActionsId}"
call :runBatchGetResource AWS::Redshift::ScheduledAction
rem AWS::Route53Resolver::FirewallRuleGroupAssociation	Describeコマンドなし
rem AWS::SageMaker::AppImageConfig				Describeコマンドなし
rem AWS::SageMaker::Image						Describeコマンドなし
rem AWS::ECS::TaskSet							--cluster, --serviceを指定する必要あり
rem AWS::Cassandra::Keyspace					Describeコマンドなし
rem AWS::Signer::SigningProfile					Describeコマンドなし
rem AWS::Amplify::App							Describeコマンドなし
rem AWS::AppMesh::VirtualNode					--mesh-name, --virtual-node-nameを指定する必要あり
rem AWS::AppMesh::VirtualService				--mesh-name, --virtual-service-name
rem AWS::AppRunner::VpcConnector				--vpc-connector-arn
rem AWS::AppStream::Application
set query=aws appstream describe-applications --profile %profilerole% --output text --region %region% --query "Applications[].{Applications:Applications}"
call :runBatchGetResource AWS::AppStream::Application
rem AWS::CodeArtifact::Repository				--domain, --repository
rem AWS::EC2::PrefixList
set query=aws ec2 describe-prefix-lists --profile %profilerole% --output text --region %region% --query "PrefixLists[].{PrefixListId:PrefixListId}"
call :runBatchGetResource AWS::EC2::PrefixList
rem AWS::EC2::SpotFleet							Describeコマンドなし
rem AWS::Evidently::Project						Describeコマンドなし
rem AWS::Forecast::Dataset						--dataset-arnを指定する必要あり
rem AWS::IAM::SAMLProvider						Describeコマンドなし
rem AWS::IAM::ServerCertificate					Describeコマンドなし
rem AWS::Pinpoint::Campaign						Describeコマンドなし
rem AWS::Pinpoint::InAppTemplate				Describeコマンドなし
rem AWS::SageMaker::Domain						Describeコマンドなし
rem AWS::Transfer::Agreement					--agreement-id, --server-idを指定する必要あり
rem AWS::Transfer::Connector					--connector-idを指定する必要あり
rem AWS::KinesisFirehose::DeliveryStream		Describeコマンドなし
rem AWS::Amplify::Branch						Describeコマンドなし
rem AWS::AppIntegrations::EventIntegration		Describeコマンドなし
rem AWS::AppMesh::Route							--mesh-name, --route-name, --virtual-router-nameを指定する必要あり
rem AWS::Athena::PreparedStatement				Describeコマンドなし
rem AWS::EC2::IPAMScope
rem AWS::Evidently::Launch						Describeコマンドなし
rem AWS::EC2::IPAMScope
set query=aws ec2 describe-ipam-scopes --profile %profilerole% --output text --region %region% --query "IpamScopes[].{IpamScopes:IpamScopes}"
call :runBatchGetResource AWS::EC2::IPAMScope
rem AWS::GreengrassV2::ComponentVersion			Describeコマンドなし
rem AWS::GroundStation::MissionProfile			Describeコマンドなし
rem AWS::MediaConnect::FlowEntitlement			Describeコマンドなし
rem AWS::MediaConnect::FlowVpcInterface			Describeコマンドなし
rem AWS::MediaTailor::PlaybackConfiguration		Describeコマンドなし
rem AWS::MSK::Configuration						Describeコマンドなし
rem AWS::Personalize::Dataset					--dataset-arnを指定する必要あり
rem AWS::Personalize::Schema					--schema-arnを指定する必要あり
rem AWS::Personalize::Solution					--solution-arnを指定する必要あり
rem AWS::Pinpoint::EmailTemplate				Describeコマンドなし
rem AWS::Pinpoint::EventStream					Describeコマンドなし
rem AWS::ResilienceHub::App						--app-arnを指定する必要あり
rem AWS::ACMPCA::CertificateAuthority			--certificate-authority-arn
rem AWS::AppConfig::HostedConfigurationVersion	Describeコマンドなし
rem AWS::AppMesh::VirtualGateway				--mesh-name, --virtual-gateway-name
rem AWS::AppMesh::VirtualRouter					--mesh-name, --virtual-router-name
rem AWS::AppRunner::Service						--service-arn
rem AWS::CustomerProfiles::ObjectType			Describeコマンドなし
rem AWS::DMS::Endpoint
set query=aws dms describe-endpoints --profile %profilerole% --output text --region %region% --query "Endpoints[].{EndpointsId:EndpointsId}"
call :runBatchGetResource AWS::DMS::Endpoint
rem AWS::EC2::CapacityReservation
set query=aws ec2 describe-capacity-reservations --profile %profilerole% --output text --region %region% --query "CapacityReservations[].{CapacityReservations:CapacityReservations}"
call :runBatchGetResource AWS::EC2::CapacityReservation
rem AWS::EC2::ClientVpnEndpoint
set query=aws ec2 describe-client-vpn-endpoints --profile %profilerole% --output text --region %region% --query "ClientVpnEndpoints[].{ClientVpnEndpoints:ClientVpnEndpoints}"
call :runBatchGetResource AWS::EC2::ClientVpnEndpoint
rem AWS::Kendra::Index							--idを指定する必要あり
rem AWS::KinesisVideo::Stream					StreamARNを指定する必要あり
rem AWS::Logs::Destination
set query=aws logs describe-destinations --profile %profilerole% --output text --region %region% --query "destinations[].{destinations:destinations}"
call :runBatchGetResource AWS::Logs::Destination
rem AWS::Pinpoint::EmailChannel					Describeコマンドなし
rem AWS::S3::AccessPoint						Describeコマンドなし
rem AWS::NetworkManager::CustomerGatewayAssociation	Describeコマンドなし
rem AWS::NetworkManager::LinkAssociation		Describeコマンドなし
rem AWS::IoTWireless::MulticastGroup			Describeコマンドなし
rem AWS::Personalize::DatasetGroup				--dataset-group-arnを指定する必要あり
rem AWS::IoTTwinMaker::ComponentType			Describeコマンドなし
rem AWS::CodeBuild::ReportGroup					Describeコマンドなし
rem AWS::SageMaker::FeatureGroup				Describeコマンドなし
rem AWS::MSK::BatchScramSecret					Describeコマンドなし
rem AWS::AppStream::Stack
set query=aws appstream describe-stacks --profile %profilerole% --output text --region %region% --query "Stacks[].{Stacks:Stacks}"
call :runBatchGetResource AWS::AppStream::Stack
rem AWS::IoT::JobTemplate						--job-template-idを指定する必要あり
rem AWS::IoTWireless::FuotaTask					Describeコマンドなし
rem AWS::IoT::ProvisioningTemplate				--template-nameを指定する必要あり
rem AWS::InspectorV2::Filter					Describeコマンドなし
rem AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation	Describeコマンドなし
rem AWS::ServiceDiscovery::Instance				Describeコマンドなし
rem AWS::Transfer::Certificate					--certificate-idを指定する必要あり
rem AWS::MediaConnect::FlowSource				Describeコマンドなし
rem AWS::APS::RuleGroupsNamespace				Describeコマンドなし
rem AWS::CodeGuruProfiler::ProfilingGroup		--profiling-group-name
rem AWS::Route53Resolver::ResolverQueryLoggingConfig	Describeコマンドなし
rem AWS::Batch::SchedulingPolicy				arnsを指定する必要あり
rem AWS::ACMPCA::CertificateAuthorityActivation	Describeコマンドなし
rem AWS::AppMesh::GatewayRoute					--gateway-route-name, --mesh-name, --virtual-gateway-nameを指定する必要あり
rem AWS::AppMesh::Mesh							--mesh-nameを指定する必要あり
rem AWS::Connect::Instance						--instance-idを指定する必要あり
rem AWS::Connect::QuickConnect					--instance-id, --quick-connect-idを指定する必要あり
rem AWS::EC2::CarrierGateway
set query=aws ec2 describe-carrier-gateways --profile %profilerole% --output text --region %region% --query "CarrierGateways[].{CarrierGateways:CarrierGateways}"
call :runBatchGetResource AWS::EC2::CarrierGateway
rem AWS::EC2::IPAMPool
set query=aws ec2 describe-ipam-pools --profile %profilerole% --output text --region %region% --query "IpamPools[].{IpamPools:IpamPools}"
call :runBatchGetResource AWS::EC2::IPAMPool
rem AWS::EC2::TransitGatewayConnect
set query=aws ec2 describe-transit-gateway-connects --profile %profilerole% --output text --region %region% --query "TransitGatewayConnects[].{TransitGatewayConnects:TransitGatewayConnects}"
call :runBatchGetResource AWS::EC2::TransitGatewayConnect
rem AWS::EC2::TransitGatewayMulticastDomain
set query=aws ec2 describe-transit-gateway-multicast-domains --profile %profilerole% --output text --region %region% --query "TransitGatewayMulticastDomains[].{TransitGatewayMulticastDomains:TransitGatewayMulticastDomains}"
call :runBatchGetResource AWS::EC2::TransitGatewayMulticastDomain
rem AWS::ECS::CapacityProvider
set query=aws ecs describe-capacity-providers --profile %profilerole% --output text --region %region% --query "capacityProviders[].{capacityProviderArn:capacityProviderArn}"
call :runBatchGetResource AWS::ECS::CapacityProvider
rem AWS::IAM::InstanceProfile					Describeコマンドなし
rem AWS::IoT::CACertificate				 		--certificate-idを指定する必要あり
rem AWS::IoTTwinMaker::SyncJob					Describeコマンドなし
rem AWS::KafkaConnect::Connector				--connector-arnを指定する必要あり
rem AWS::Lambda::CodeSigningConfig				Describeコマンドなし
rem AWS::NetworkManager::ConnectPeer			Describeコマンドなし
rem AWS::ResourceExplorer2::Index				Describeコマンドなし
rem AWS::AppStream::Fleet
set query=aws appstream describe-fleets --profile %profilerole% --output text --region %region% --query "Fleets[].{id:id}"
call :runBatchGetResource AWS::AppStream::Fleet
rem AWS::Cognito::UserPool						Describeコマンドなし
rem AWS::Cognito::UserPoolClient				Describeコマンドなし
rem AWS::Cognito::UserPoolGroup					Describeコマンドなし
rem AWS::EC2::NetworkInsightsAccessScope
set query=aws ec2 describe-network-insights-access-scopes --profile %profilerole% --output text --region %region% --query "NetworkInsightsAccessScopes[].{NetworkInsightsAccessScopeId:NetworkInsightsAccessScopeId}"
call :runBatchGetResource AWS::EC2::NetworkInsightsAccessScope
rem AWS::EC2::NetworkInsightsAnalysis
set query=aws ec2 describe-network-insights-analyses --profile %profilerole% --output text --region %region% --query "NetworkInsightsAnalyses[].{NetworkInsightsAnalyses:NetworkInsightsAnalyses}"
call :runBatchGetResource AWS::EC2::NetworkInsightsAnalysis
rem AWS::Grafana::Workspace						--workspace-idを指定する必要あり
rem AWS::GroundStation::DataflowEndpointGroup	Describeコマンドなし
rem AWS::ImageBuilder::ImageRecipe				Describeコマンドなし
rem AWS::KMS::Alias								Describeコマンドなし
rem AWS::M2::Environment						Describeコマンドなし
rem AWS::QuickSight::DataSource					--aws-account-id, --data-source-idを指定する必要あり
rem AWS::QuickSight::Template					--aws-account-id, --template-idを指定する必要あり
rem AWS::QuickSight::Theme						--aws-account-id, --theme-idを指定する必要あり
rem AWS::RDS::OptionGroup						Describeコマンドなし
rem AWS::Redshift::EndpointAccess
set query=aws redshift describe-endpoint-access --profile %profilerole% --output text --region %region% --query "EndpointAccessList[].{EndpointAccessList:EndpointAccessList}"
call :runBatchGetResource AWS::Redshift::EndpointAccess
rem AWS::Route53Resolver::FirewallRuleGroup		Describeコマンドなし
rem AWS::SSM::Document							Describeコマンドなし

pause
exit

rem ----------------------
rem echo VPC ID	状態	IPv4 CIDR	DHCP オプションセット	メインルートテーブル	メインネットワーク ACL	テナンシー	デフォルト VPC	所有者 ID > aaa.c
set cmdVpc=aws ec2 describe-vpcs^
 --profile p-sandbox^
 --output json
rem  --query "Vpcs[].{A1VpcId:VpcId,A2State:State,A3CidrBlock:CidrBlock,A4DhcpOptionsId:DhcpOptionsId}"^
set cmdVpc=aws configservice list-discovered-resources --resource-type {}
set cmdVpc=aws configservice list-discovered-resources --resource-type AWS::EC2::EIP --region %region%

call %cmdVpc% > aaa.c
pause
exit
rem ----------------------

:runBatchGetResource
set rsctyp=%1
set outputfile2=%region%\%rsctyp:::=_%.log

echo ---------- %1 ---------- > %outputfile2%
echo ※[詳細情報]がない場合は、取得結果が空を意味しています。>> %outputfile2%
echo %1

setlocal enabledelayedexpansion
for /f "usebackq delims=" %%A in (`%query%`) do (
 rem echo aws configservice batch-get-resource-config --profile %profilerole% --resource-keys "[{""resourceType"":""%1"",""resourceId"":""%%A""}]"
  echo  ├ %%A
  echo;>> %outputfile2%
  echo;>> %outputfile2%
  echo ================================================================================ >> %outputfile2%
 rem  echo ■[%1] %%A >> %outputfile2%
  set cnfQuery=aws configservice batch-get-resource-config --profile %profilerole% --resource-keys "[{""resourceType"":""%1"",""resourceId"":""%%A""}]"
  echo ■コマンド>> %outputfile2%
  echo !cnfQuery! >> %outputfile2%
  echo ■詳細情報>> %outputfile2%
  set cnfQuery=!cnfQuery! --query "baseConfigurationItems[].{configuration:configuration}" --output text --region %region%
  call !cnfQuery! | jq-windows-amd64.exe >> %outputfile2%
)
endlocal
exit /b 0

動作

このような形で、設定情報を取りに行きます。

動作結果

ディレクトリに以下のように作られます。

us-east-2
us-east-1
ap-southeast-2
ap-southeast-1
ap-south-1
ap-northeast-3
ap-northeast-2
eu-central-1
eu-west-1
eu-north-1
sa-east-1
eu-west-2
eu-west-3
ca-central-1
us-west-2
us-west-1
 ├AWS_AutoScaling_ScheduledAction.log
 ├AWS_Batch_ComputeEnvironment.log
 ├AWS_Batch_JobQueue.log
 ├AWS_CloudFormation_Stack.log
 ├AWS_CloudWatch_Alarm.log
 ├AWS_DMS_Certificate.log
 ├AWS_DMS_Endpoint.log
 ├AWS_DMS_EventSubscription.log
 ├AWS_DMS_ReplicationSubnetGroup.log
 ├AWS_EC2_CapacityReservation.log
 ├AWS_EC2_CarrierGateway.log
 ├AWS_EC2_ClientVpnEndpoint.log
 ├AWS_EC2_CustomerGateway.log
 ├AWS_EC2_DHCPOptions.log
 ├AWS_EC2_EgressOnlyInternetGateway.log
 ├AWS_EC2_FlowLog.log
 ├AWS_EC2_Host.log
 ├AWS_EC2_Instance.log
 ├AWS_EC2_InternetGateway.log
 ├AWS_EC2_IPAM.log
 ├AWS_EC2_IPAMPool.log
 ├AWS_EC2_IPAMScope.log
 ├AWS_EC2_LaunchTemplate.log
 ├AWS_EC2_NatGateway.log
 ├AWS_EC2_NetworkAcl.log
 ├AWS_EC2_NetworkInsightsAccessScope.log
 ├AWS_EC2_NetworkInsightsAccessScopeAnalysis.log
 ├AWS_EC2_NetworkInsightsAnalysis.log
 ├AWS_EC2_NetworkInsightsPath.log
 ├AWS_EC2_NetworkInterface.log
 ├AWS_EC2_PrefixList.log
 ├AWS_EC2_RouteTable.log
 ├AWS_EC2_SecurityGroup.log
 ├AWS_EC2_Subnet.log
 ├AWS_EC2_TrafficMirrorFilter.log
 ├AWS_EC2_TrafficMirrorSession.log
 ├AWS_EC2_TrafficMirrorTarget.log
 ├AWS_EC2_TransitGateway.log
 ├AWS_EC2_TransitGatewayAttachment.log
 ├AWS_EC2_TransitGatewayConnect.log
 ├AWS_EC2_TransitGatewayMulticastDomain.log
 ├AWS_EC2_TransitGatewayRouteTable.log
 ├AWS_EC2_Volume.log
 ├AWS_EC2_VPC.log
 ├AWS_EC2_VPCEndpoint.log
 ├AWS_EC2_VPCEndpointService.log
 ├AWS_EC2_VPCPeeringConnection.log
 ├AWS_EC2_VPNConnection.log
 ├AWS_EC2_VPNGateway.log
 ├AWS_ECS_CapacityProvider.log
 ├AWS_EFS_AccessPoint.log
 ├AWS_EFS_FileSystem.log
 ├AWS_ElasticBeanstalk_Application.log
 ├AWS_ElasticBeanstalk_ApplicationVersion.log
 ├AWS_ElasticBeanstalk_Environment.log
 ├AWS_Events_EventBus.log
 ├AWS_IoT_AccountAuditConfiguration.log
 ├AWS_Logs_Destination.log
 ├AWS_Redshift_Cluster.log
 ├AWS_Redshift_ClusterParameterGroup.log
 ├AWS_Redshift_ClusterSnapshot.log
 ├AWS_Redshift_ClusterSubnetGroup.log
 ├AWS_Redshift_EndpointAccess.log
 ├AWS_Redshift_EventSubscription.log
 ├AWS_Redshift_ScheduledAction.log
 ├AWS_WorkSpaces_ConnectionAlias.log
 ├AWS_WorkSpaces_Workspace.log
 ├AWS_AppStream_Application.log
 ├AWS_AppStream_DirectoryConfig.log
 ├AWS_AppStream_Fleet.log
 ├AWS_AppStream_Stack.log
 ├AWS_AutoScaling_AutoScalingGroup.log
 └AWS_AutoScaling_LaunchConfiguration.log




■参考文献


目次へ戻る


この記事が気に入ったらサポートをしてみませんか?