AWS Credentials 如何在 GitHub Actions 中发挥作用

编程代码

1个回答

写回答

Qian0804

2025-07-09 02:55

+ 关注

亚马逊
亚马逊

AWS Credentials 如何在 GitHub Actions 中发挥作用?

介绍:

在使用 AWS(亚马逊云服务)的开发过程中,我们通常需要在代码中包含 AWS 凭证信息以访问和管理 AWS 资源。然而,将敏感凭证信息直接存储在代码库中是不安全的,因此我们需要一种安全的方式来管理和使用这些凭证信息。GitHub Actions 是一个强大的 CI/CD (持续集成/持续交付)工具,它允许我们自动化软件工作流程,包括构建、测试和部署等。本文将介绍如何在 GitHub Actions 中使用 AWS 凭证。

凭证管理

在使用 AWS 凭证之前,我们需要了解 AWS 的凭证管理机制。AWS 提供了两种类型的凭证:

1. 访问密钥 ID(Access Key ID)和秘密访问密钥(Secret Access Key):这是最常用的凭证类型,由 AWS 提供给用户,用于访问和管理 AWS 资源。它们以字符串的形式提供,用户通常需要将它们存储在安全的地方并在需要时引用。

2. 角色(Role):AWS 角色是一种为 AWS 资源分配权限的方式。通过在 AWS Identity and Access Management(IAM)中创建角色,用户可以为其分配特定的权限。角色可以与 AWS 凭证一起使用,以授权 GitHub Actions 对 AWS 资源进行操作。

在 GitHub Actions 中使用 AWS 访问密钥

步骤一:在 AWS 上创建访问密钥

首先,我们需要在 AWS 上创建访问密钥,以便在 GitHub Actions 中使用。在 AWS 控制台的 IAM 服务中,创建一个新的 IAM 用户并为其分配适当的权限。在用户创建完成后,可以获取到访问密钥 ID 和秘密访问密钥。

步骤二:在 GitHub 仓库的 Secrets 中添加凭证

在 GitHub 仓库的 Settings 页面中,选择 Secrets 选项卡,并点击 "New repository secret" 按钮。在弹出的对话框中,输入一个名称(例如 AWS_ACCESS_KEY_ID)和对应的访问密钥 ID。然后再次点击 "New repository secret" 按钮,输入另一个名称(例如 AWS_SECRET_ACCESS_KEY)和对应的秘密访问密钥。

步骤三:在 GitHub Actions 的工作流文件中使用凭证

在 GitHub Actions 的工作流文件中,我们可以引用之前添加的 Secrets,以便在工作流程中使用 AWS 访问密钥。以下是一个使用 AWS CLI(命令行界面)示例的代码片段:

yaml

name: Deploy to AWS

on:

push:

branches:

- mAIn

jobs:

deploy:

runs-on: ubuntu-latest

steps:

- name: Checkout code

uses: actions/checkout@v2

- name: Configure AWS credentials

run: |

echo "AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}" >> $GITHUB_ENV

echo "AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }}" >> $GITHUB_ENV

- name: Deploy to AWS

run: |

aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }}

aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }}

aws s3 sync . s3://my-bucket --delete

在上述代码中,我们首先通过使用 actions/checkout 动作来获取代码。然后,我们使用 echo 命令将凭证信息存储在 GitHub Actions 的环境变量中,这样我们就可以在后续的步骤中引用它们。最后,使用 AWS CLI 进行部署到 AWS S3 存储桶的操作。

在 GitHub Actions 中使用 AWS 角色

除了使用访问密钥,我们还可以在 GitHub Actions 中使用 AWS 角色来访问和管理 AWS 资源。这种方式更加安全,因为我们不需要直接将凭证信息存储在代码库中。

步骤一:在 AWS 上创建角色

在 AWS 的 IAM 服务中,创建一个新的角色,并为其分配适当的权限。确保为该角色分配了可以在 GitHub Actions 中执行的操作权限。

步骤二:在 GitHub 仓库的 Secrets 中添加角色凭证

在 GitHub 仓库的 Settings 页面中,选择 Secrets 选项卡,并点击 "New repository secret" 按钮。在弹出的对话框中,输入一个名称(例如 AWS_ROLE_ARN)和对应的角色 ARN(Amazon 资源名称)。

步骤三:在 GitHub Actions 的工作流文件中使用角色

在 GitHub Actions 的工作流文件中,我们可以引用之前添加的 Secrets,以便在工作流程中使用 AWS 角色。以下是一个使用 AWS CLI 示例的代码片段:

yaml

name: Deploy to AWS

on:

push:

branches:

- mAIn

jobs:

deploy:

runs-on: ubuntu-latest

steps:

- name: Checkout code

uses: actions/checkout@v2

- name: Assume AWS role

run: |

aws sts assume-role --role-arn ${{ secrets.AWS_ROLE_ARN }} --role-session-name "GitHubActionsSession" > assumed-role.JSon

export AWS_ACCESS_KEY_ID=$(jq -r '.Credentials.AccessKeyId' assumed-role.JSon)

export AWS_SECRET_ACCESS_KEY=$(jq -r '.Credentials.SecretAccessKey' assumed-role.JSon)

export AWS_SESSION_TOKEN=$(jq -r '.Credentials.SessionToken' assumed-role.JSon)

- name: Deploy to AWS

run: |

aws s3 sync . s3://my-bucket --delete

在上述代码中,我们使用 AWS CLI 的 sts assume-role 命令来获取临时凭证,然后将这些凭证存储在 GitHub Actions 的环境变量中。接下来,我们可以使用这些临时凭证来执行 AWS CLI 命令,例如同步文件到 AWS S3 存储桶。

在本文中,我们介绍了如何在 GitHub Actions 中使用 AWS 凭证。通过将凭证信息存储在 GitHub 仓库的 Secrets 中,并在工作流程中引用它们,我们可以安全地在 GitHub Actions 中访问和管理 AWS 资源。无论是使用访问密钥还是角色,都可以根据自己的需求选择适合的方式来进行 AWS 凭证管理。

希望本文能对你在 GitHub Actions 中使用 AWS 凭证有所帮助!

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号