英文标题
Introduction
The AWS Command Line Interface (AWS CLI) is a unified tool that lets you manage your AWS services from the terminal. It provides a consistent, scriptable interface for provisioning infrastructure, deploying applications, and querying resources across AWS. This guide explains how to use the AWS CLI effectively, covering setup, common commands, workflow patterns, and practical tips. If you want repeatable, auditable tasks and faster operation, the AWS CLI is a reliable companion for developers, operations engineers, and data practitioners alike.
Prerequisites
- A working AWS account with appropriate permissions for the tasks you plan to automate.
- AWS credentials available via an access key/secret or an IAM role when running on AWS services or instances.
- A modern shell on macOS, Linux, or Windows (PowerShell or CMD is fine).
- Basic familiarity with the AWS services you intend to manage (for example S3, EC2, IAM).
Installing the AWS CLI
The latest AWS CLI version, commonly referred to as AWS CLI v2, is recommended. Install it once, then you can use it across multiple projects. Below are the typical installation steps for common platforms.
macOS
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /
$ aws --version
Linux
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
$ aws --version
Windows
1) Download the MSI from the AWS website.
2) Run the installer and finish the setup.
3) Open a command prompt and verify:
> aws --version
Configuring the AWS CLI
After installation, configure the AWS CLI so it can authenticate and target the appropriate region and output format. The simplest method is to run the interactive setup and provide your credentials, region, and preferred output.
$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: us-west-2
Default output format [None]: json
You can also use named profiles to isolate credentials for different projects:
$ aws configure --profile projectA
AWS Access Key ID [None]: ...
Other authentication methods include environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY), or using an instance role when running inside AWS. The AWS CLI will pick up credentials from these sources in a preferred order, allowing secure and flexible usage in different environments.
Basic usage and help
The AWS CLI supports thousands of commands across AWS services. A good starting point is to explore availability and syntax with the help system:
$ aws help
$ aws s3 help
$ aws ec2 describe-instances --filters "Name=instance-state-name,Values=running"
To see the parameters for a specific command, use the built‑in help for that command, which makes it easier to discover options without leaving the terminal.
Common workflows with AWS CLI
Working with S3
Amazon Simple Storage Service (S3) is a frequent target for automation. These commands illustrate typical uses like listing buckets, uploading objects, syncing directories, and creating buckets.
$ aws s3 ls
$ aws s3 mb s3://my-bucket
$ aws s3 cp ./index.html s3://my-bucket/
$ aws s3 sync ./public s3://my-bucket/public --delete
$ aws s3 ls s3://my-bucket
Tips for S3:
- Use profiles to separate environments (production, staging, dev) and reduce risk.
- Prefer the
aws s3 cporaws s3 synccommands for transferring files instead of manual scripts. - For large transfers, consider multi-part uploads and enabling transfer acceleration only when needed.
Working with EC2
Managing compute resources with the AWS CLI is common in automation pipelines and on‑demand tasks.
$ aws ec2 describe-instances --filters "Name=tag:Environment,Values=prod" --query "Reservations[].Instances[].InstanceId"
$ aws ec2 start-instances --instance-ids i-0abcdef12345
$ aws ec2 stop-instances --instance-ids i-0abcdef12345
Use the CLI to create, stop, or terminate instances, and to fetch details like public IPs, instance types, and tags. For repeatability, use JSON output and structured queries to integrate with scripts and dashboards.
Other services at a glance
Beyond S3 and EC2, the AWS CLI covers IAM, CloudFormation, Lambda, RDS, and many other services. A few representative commands:
$ aws iam list-users
$ aws cloudformation describe-stacks --stack-name my-app
$ aws lambda list-functions
$ aws rds describe-db-instances
Best practices for using the AWS CLI
- Use named profiles to separate credentials and permissions for different stages or teams.
- Follow the principle of least privilege; grant only the permissions required for a task.
- Sanitize and manage credentials securely. Avoid embedding keys in scripts.
- Prefer idempotent operations when possible; test with dry runs or simulated operations (
--dryrunor equivalent). - Output in JSON for scripting and use
jqor similar tools to extract data. - Enable MFA and rotate credentials regularly; consider using temporary credentials (e.g., STS) for automation.
- Audit CLI activity by logging command history and using CloudTrail to track actions performed via the AWS CLI.
These practices help keep automation secure, auditable, and resilient when using the AWS CLI in production environments.
Troubleshooting and practical tips
If you encounter issues with AWS CLI commands, try these steps:
- Run with verbose debugging to see detailed request information:
aws.--debug - Confirm credentials and region with
aws configure listoraws sts get-caller-identity. - Check permissions assigned to the user or role; ensure the policy allows the required actions on the target resources.
- Verify network access, especially when calling private VPC resources or services behind firewalls.
Common cloud operations can fail due to permission issues, misconfigured regions, or invalid resource names. A structured, incremental approach—validate credentials, validate region, then perform a minimal operation—helps isolate the root cause quickly.
Quick start example: automate a small workflow
Here is a simple, real-world workflow that demonstrates the power of the AWS CLI for automation. It creates a new S3 bucket, uploads a site file, and lists the bucket contents—ideal as a starter automation for a static site or backup workflow.
$ export AWS_PROFILE=projectA
$ aws s3 mb s3://my-starter-bucket --region us-east-1
$ echo "Hello from AWS CLI
" > index.html
$ aws s3 cp index.html s3://my-starter-bucket/
$ aws s3 ls s3://my-starter-bucket
This snippet illustrates how the AWS CLI enables a compact, repeatable action sequence that can be embedded in scripts, CI/CD pipelines, or local development workflows. As you expand, you can add versioning, lifecycle rules, or CloudFront distribution updates to further automate delivery pipelines with the AWS CLI.
Conclusion
The AWS CLI is a pragmatic tool for anyone who works with AWS services. By installing the tool, configuring credentials responsibly, and learning a core set of commands across S3, EC2, IAM, and CloudFormation, you gain a flexible, scriptable interface that scales from personal projects to enterprise environments. With thoughtful use of profiles, dry runs, and structured output, the AWS CLI supports precise automation, reliable operations, and clean integration with your existing tooling. Start small, build confidence with simple tasks, and gradually expand to end-to-end workflows that align with your team’s goals.