通过IAM Role连接Github

blog原文地址:https://aws.amazon.com/blogs/security/use-iam-roles-to-connect-github-actions-to-actions-in-aws/

为什么要用IAM Role为Github提供动态的安全凭据

使用IAM Role为GitHub提供动态的安全凭据主要是为了提高安全性和灵活性。借助IAM Role,GitHub的操作不再需要存储静态的安全凭据,减少了安全凭据泄露的风险。同时,IAM Role可以控制对AWS资源的精细访问权限,例如限制仅特定的GitHub操作或工作流程可以访问特定的AWS服务或资源。此外,使用IAM Role可以利用AWS的临时安全凭据,进一步增强安全性。这些凭据可以自动旋转和过期,无需手动管理,简化了凭据管理过程。总之,通过IAM Role,可以在确保安全的同时,便利地将GitHub与AWS服务集成,实现自动化的云资源管理和部署。

为 GitHub 创建 IAM OIDC 身份提供程序

要在Amazon Web Services (AWS)中配置OpenID Connect (OIDC)以供Github使用,您需要按照以下步骤进行设置:

  1. 添加身份提供者到AWS:

    • 转到AWS IAM控制台,选择“Identity providers”并创建一个新的OpenID Connect提供者。

    • 在提供者URL中使用https://token.actions.githubusercontent.com

    • 对于“Audience”字段,请使用sts.amazonaws.com

  2. 配置角色和信任策略:

    • 在IAM中配置角色和信任,确保在信任策略中添加了必要的条件,以限制GitHub操作可以假定的角色。

    • 确保信任策略中包含了token.actions.githubusercontent.com:sub字段,用于验证条件。

  3. 更新Github Actions工作流程:

    • 在您的YAML文件中进行两个更改:

      • 为令牌添加权限设置。

      • 使用aws-actions/configure-aws-credentials操作来交换OIDC令牌(JWT)以获取云访问令牌。

  4. 请求访问令牌:

    • aws-actions/configure-aws-credentials操作将从GitHub OIDC提供者接收JWT,然后请求AWS的访问令牌。

  5. 访问云提供商资源:

    • 一旦获得访问令牌,您可以使用特定的云操作或脚本进行身份验证,并部署到云资源。

请按照上述步骤配置OpenID Connect以在Github中进行身份验证并访问AWS资源。详细信息和示例代码可以在提供的链接中找到。

最后更新于