cli命令

以下是常用的 AWS CLI 命令,用于验证各类资源的配置,按服务分类整理如下:

一、IAM(身份与访问管理)

1. 验证角色配置

  • aws iam get-role --role-name <角色名> 
    获取角色的基本信息(如 ARN、创建时间)。
  • aws iam get-role-policy --role-name <角色名> --policy-name <策略名> 
    获取角色关联的内联策略内容。
  • aws iam list-attached-role-policies --role-name <角色名> 
    列出角色附加的 AWS 托管策略(如  AmazonS3FullAccess )。
  • aws iam get-policy --policy-arn <策略ARN> 
    获取托管策略的完整内容(JSON 格式)。
    2. 验证用户/组配置
  • aws iam get-user --user-name <用户名>
  • aws iam get-group --group-name <组名>

二、S3(简单存储服务)

1. 验证存储桶策略与权限

  • aws s3 get-bucket-policy --bucket <存储桶名> 
    获取存储桶的策略(如跨账户访问策略)。
  • aws s3 get-bucket-acl --bucket <存储桶名> 
    获取存储桶的访问控制列表(ACL)。
  • aws s3api get-bucket-lifecycle-configuration --bucket <存储桶名> 
    获取存储桶的生命周期配置(如自动归档规则)。
    2. 验证存储桶状态
  • aws s3 list-buckets 
    列出所有存储桶(验证是否存在及权限)。

三、EC2(弹性计算云)

1. 验证实例配置

  • aws ec2 describe-instances --instance-ids <实例ID> 
    获取实例详细信息(如 IP、安全组、存储卷)。
  • aws ec2 describe-security-groups --group-ids <安全组ID> 
    获取安全组的入站/出站规则。
  • aws ec2 describe-subnets --subnet-ids <子网ID> 
    获取子网配置(如 VPC、CIDR、路由表)。
    2. 验证网络配置
  • aws ec2 describe-vpcs --vpc-ids
  • aws ec2 describe-internet-gateways

四、RDS(关系数据库服务)

1. 验证数据库实例配置

  • aws rds describe-db-instances --db-instance-identifier <实例名> 
    获取数据库实例的参数组、存储、网络等配置。
  • aws rds describe-db-clusters --db-cluster-identifier <集群名> 
    用于 Aurora 集群的配置验证。

五、Lambda(无服务器计算)

1. 验证函数配置

  • aws lambda get-function --function-name <函数名> 
    获取 Lambda 函数的代码路径、内存、超时时间等配置。
  • aws lambda get-function-configuration --function-name <函数名> 
    获取函数的环境变量、角色 ARN、VPC 配置等(不含代码)。
  • aws lambda get-policy --function-name <函数名> 
    获取函数的权限策略(如 S3 触发权限)。

六、CloudFormation(基础设施即代码)

1. 验证堆栈配置

  • aws cloudformation describe-stacks --stack-name <堆栈名> 
    获取堆栈的状态、参数、输出值。
  • aws cloudformation describe-stack-resources --stack-name <堆栈名> 
    列出堆栈中所有资源的物理 ID 和状态。
  • aws cloudformation validate-template --template-body file://template.json 
    验证 CloudFormation 模板的语法正确性。

七、SQS(简单队列服务)

1. 验证队列配置

  • aws sqs get-queue-attributes --queue-url <队列URL> --attribute-names All 
    获取队列的属性(如消息保留时间、死信队列配置)。
  • aws sqs list-queues 
    列出所有队列(验证队列是否存在)。

八、其他常用服务

  • CloudWatch(监控)
     aws cloudwatch describe-alarms --alarm-names <警报名> 
    验证监控警报的配置(如阈值、通知渠道)。
  • Elasticsearch Service
     aws es describe-elasticsearch-domains --domain-name <域名> 
    获取 Elasticsearch 集群的节点数、存储、访问策略等。
  • KMS(密钥管理服务)
     aws kms describe-key --key-id <密钥ID> 
    验证密钥的启用状态、别名、权限策略。
  • VPC(虚拟私有云)
     aws ec2 describe-route-tables --route-table-ids <路由表ID> 
    验证子网的路由配置(如默认路由指向 Internet 网关)。

通用技巧

1. 搜索命令:通过  aws <服务> help  查看所有可用命令(如  aws iam help )。
2. 筛选输出:结合  --query  参数过滤结果(如  aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' )。
3. 调试工具:使用  --debug  参数排查命令执行问题(如权限不足)。

是的,还有许多 AWS CLI 命令可用于验证不同服务的资源配置,以下补充一些之前未覆盖的核心服务及常用命令:

九、DynamoDB(NoSQL 数据库)

1. 验证表配置

  • aws dynamodb describe-table --table-name <表名> 
    获取表的详细信息(如分区键、吞吐量、流配置、TTL 设置)。
  • aws dynamodb list-tables 
    列出所有 DynamoDB 表(验证表是否存在)。
  • aws dynamodb describe-time-to-live --table-name <表名> 
    检查表的 TTL(生存时间)配置是否启用及规则。

十、SNS(简单通知服务)

1. 验证主题配置

  • aws sns get-topic-attributes --topic-arn <主题ARN> 
    获取主题的属性(如订阅数、策略、显示名称)。
  • aws sns list-subscriptions-by-topic --topic-arn <主题ARN> 
    列出主题的所有订阅(验证通知端点是否正确配置)。

十一、EKS(Kubernetes 服务)

1. 验证集群配置

  • aws eks describe-cluster --name <集群名> 
    获取 EKS 集群的状态、版本、控制平面端点、VPC 配置等。
  • aws eks list-nodegroups --cluster-name <集群名> 
    列出集群的节点组(验证工作节点配置)。

十二、ECS(容器服务)

1. 验证集群与任务配置

  • aws ecs describe-clusters --cluster <集群名> 
    获取 ECS 集群的状态、注册容器实例数、服务数。
  • aws ecs describe-task-definition --task-definition <任务定义名> 
    查看任务定义的容器镜像、资源限制、网络模式等配置。

十三、Secrets Manager(密钥管理)

1. 验证密钥配置

  • aws secretsmanager get-secret-value --secret-id <密钥ID/ARN> 
    获取密钥的具体值(需有权限),或验证密钥是否存在。
  • aws secretsmanager describe-secret --secret-id <密钥ID/ARN> 
    获取密钥的元数据(如创建时间、轮换策略、标签)。

十四、CloudFront(内容分发网络)

1. 验证分发配置

  • aws cloudfront describe-distribution --id <分发ID> 
    获取分发的源站、缓存策略、SSL 证书、访问控制等配置。
  • aws cloudfront list-distributions 
    列出所有 CloudFront 分发(验证资源存在性)。

十五、Route 53(域名解析)

1. 验证域名与记录配置

  • aws route53 list-hosted-zones 
    列出所有托管区域(验证域名是否托管在 Route 53)。
  • aws route53 list-resource-record-sets --hosted-zone-id <区域ID> 
    获取域名的 DNS 记录(如 A 记录、CNAME、TXT 记录)。

十六、ACM(证书管理)

1. 验证证书配置

  • aws acm list-certificates 
    列出所有 SSL/TLS 证书(验证证书是否存在及状态)。
  • aws acm describe-certificate --certificate-arn <证书ARN> 
    获取证书的详细信息(如域名、有效期、验证状态)。

十七、Glue(数据集成)

1. 验证数据目录与作业配置

  • aws glue get-database --name <数据库名> 
    获取 Glue 数据库的元数据(如位置、创建时间)。
  • aws glue get-table --database-name <数据库名> --name <表名> 
    查看表的架构、存储位置、分区信息等。

十八、Kinesis(流数据服务)

1. 验证数据流配置

  • aws kinesis describe-stream --stream-name <流名> 
    获取流的分片数、加密状态、数据保留时间等。
  • aws kinesis list-streams 
    列出所有 Kinesis 流(验证资源存在性)。

十九、ElastiCache(缓存服务)

1. 验证 Redis/Memcached 集群配置

  • aws elasticache describe-cache-clusters --cache-cluster-id <集群ID> 
    获取集群的节点数、内存大小、端点地址、安全组等。

二十、通用增强技巧

1. 批量验证与筛选

  • 使用  --query  参数结合 JMESPath 过滤输出(如仅获取资源状态):
    aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId, State.Name]'
  • 结合  jq  工具格式化 JSON 输出,便于阅读:
    aws s3 get-bucket-policy --bucket my-bucket | jq .
     
    2. 权限与合规验证
  • 使用 AWS Config 相关命令检查资源配置合规性(需先启用 Config):
    aws configservice describe-config-rules --region us-east-1 # 查看配置规则
    aws configservice describe-compliance-by-config-rule --config-rule-name <规则名> # 验证合规状态
     
    3. 调试与错误处理
  • 添加  --debug  参数排查权限问题或 API 错误:
    aws s3 get-bucket-policy --bucket my-bucket --debug

总结

AWS CLI 提供了几乎覆盖所有服务的配置验证命令,核心逻辑是通过  describe-* 、 get-* 、 list-*  等动词获取资源详情。如果需要特定服务(如 EMR、AppSync、Lake Formation 等)的命令,可以进一步说明场景,我会补充更具体的示例!

posted @ 2025-04-16 23:50  cat桑  阅读(118)  评论(0)    收藏  举报