【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
■参考文献
AWS Lambda でリソースベースのポリシーを使用して、AWS のサービスに許可を付与するにはどうすればよいですか?
https://dev.classmethod.jp/articles/efs_itemlevel_recovery/
https://qiita.com/gof_lamb/items/708879b4057178ae8fdd
https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/customresources-cli.html
https://qiita.com/Raccoon-san/items/497fb3ba49bcf870e4e6
https://docs.aws.amazon.com/cli/latest/reference/configservice/batch-get-resource-config.html
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/list-discovered-resources.html
https://qiita.com/poribake2/items/f22863accb988be3ad3f
https://zenn.dev/osprey/articles/get-all-aws-resources
https://www.msn.com/ja-jp/health/other/高齢でもヨボヨボにならない人-は明らかにその-数値-が低い-最新研究でわかった人間の寿命差を生む要因/ar-BB1oP6QY?ocid=entnewsntp&cvid=5038dde995744888bae29a0a91b1bfdb&ei=13