Skip to content

AWS credentials#

AWS (IAM) credentials#

您可以使用这些凭据来验证以下节点:

Supported authentication methods 支持的身份验证方法#

  • API access key

请参考 AWS 的身份和访问管理文档 了解有关该服务的更多信息。

Using API access key 使用 API 访问密钥#

要配置此凭据,您需要一个 AWS 账户和:

  • 您的 AWS Region 区域
  • Access Key ID 访问密钥 ID:创建访问密钥时生成。
  • Secret Access Key 秘密访问密钥:创建访问密钥时生成。

要创建访问密钥并设置凭据:

  1. 在您的 n8n 凭据中,选择您的 AWS Region 区域
  2. 登录 IAM 控制台
  3. 在右上角的导航栏中,选择您的用户名,然后选择 Security credentials
  4. Access keys 部分,选择 Create access key
  5. Access key best practices & alternatives 页面上,选择您的用例。如果它没有提示您创建访问密钥,请选择 Other
  6. 选择 Next
  7. 为访问密钥设置一个 description 标签值以便更容易识别,例如 n8n integration
  8. 选择 Create access key
  9. 显示 Access Key IDSecret Access Key 并将它们输入到 n8n 中。
  10. 要使用 Temporary security credential 临时安全凭据,请开启该选项并添加 Session token 会话令牌。请参考 AWS 临时安全凭据文档 了解更多关于使用临时安全凭据的信息。
  11. 如果您使用 Amazon Virtual Private Cloud (VPC) 来托管 n8n,您可以在您的 VPC 和一些应用之间建立连接。使用 Custom Endpoints 自定义端点 为此连接输入相关的自定义端点。此设置适用于以下应用:
    • Rekognition
    • Lambda
    • SNS
    • SES
    • SQS
    • S3

您还可以通过 AWS CLI 和 AWS API 生成访问密钥。请参考 AWS 管理访问密钥文档 了解使用这些方法生成访问密钥的说明。

AWS (Assume Role) credentials AWS(担任角色)凭据#

您可以使用这些凭据通过 IAM 角色担任来验证以下节点,并增强安全性:

Supported authentication methods 支持的身份验证方法#

  • Role Assumption 角色担任

请参考 AWS 的 IAM 角色文档STS AssumeRole 文档 了解有关角色担任的更多信息。

Understanding AWS Role Assumption 理解 AWS 角色担任#

AWS 角色担任允许您通过临时担任 IAM 角色来安全地访问 AWS 资源,而不是使用长期访问密钥。这遵循 AWS 安全最佳实践并实现:

  • Cross-account access 跨账户访问: 访问不同 AWS 账户中的资源
  • Enhanced security 增强安全性: 使用自动过期的临时凭据
  • Principle of least privilege 最小权限原则: 仅授予特定任务所需的权限
  • Audit trail 审计跟踪: 更好地跟踪谁访问了哪些资源

Setting up AWS Assume Role credentials 设置 AWS 担任角色凭据#

要配置此凭据,您需要:

Required Parameters 必需参数#

  • Region 区域: 调用 STS 服务以担任角色的 AWS 区域。
  • Role ARN 角色 ARN: 您要担任的 IAM 角色的 Amazon Resource Name (ARN)。其格式为 arn:aws:iam::123456789012:role/MyRole。此角色必须具有允许您的凭据担任它的信任策略。
  • External ID 外部 ID: 角色信任策略所需的唯一标识符,用于防止"混淆代理"问题。这应该是您生成并在角色信任策略和此凭据中都配置的密钥值。将此值视为敏感信息。不要与您不信任的其他 n8n 用户共享。
  • Role Session Name 角色会话名称: 担任角色会话的名称(用于审计)。默认值是 n8n-session。此值出现在 AWS CloudTrail 日志中,因此您可以识别会话。

STS credentials STS 凭据(选择一种方法)#

您有两个选项来提供进行 STS AssumeRole 调用的凭据:

Option 1: Use system credentials 选项 1:使用系统凭据(推荐用于服务器部署)#

如果您的 n8n 服务器通过以下方式配置了 AWS 凭据,请启用此选项:

  • 环境变量(AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN
  • EC2 实例配置文件
  • ECS 任务角色
  • EKS pod 身份

此选项要求您的 n8n 管理员通过将环境变量 N8N_AWS_SYSTEM_CREDENTIALS_ACCESS_ENABLED 设置为 true 来启用系统凭据访问

Option 2: Manual STS Credentials 选项 2:手动 STS 凭据#

如果系统凭据不可用,请手动提供这些:

  • STS Access Key ID STS 访问密钥 ID: 具有担任目标角色权限的 IAM 用户或角色的访问密钥 ID。
  • STS Secret Access Key STS 秘密访问密钥: 与 STS 访问密钥 ID 对应的秘密访问密钥。
  • STS Session Token STS 会话令牌(可选):如果使用临时凭据进行 STS 调用,则为会话令牌。

Optional Parameters 可选参数#

  • Custom Endpoints 自定义端点: 如果使用 Amazon VPC,您可以为 AWS 服务指定自定义端点:

    • Rekognition Endpoint Rekognition 端点
    • Lambda Endpoint Lambda 端点
    • SNS Endpoint SNS 端点
    • SES Endpoint SES 端点
    • SQS Endpoint SQS 端点
    • S3 Endpoint S3 端点
    • SSM Endpoint SSM 端点

Setup Steps 设置步骤#

  1. 在目标 AWS 账户中创建 IAM 角色。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::SOURCE-ACCOUNT:root"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "your-unique-external-id"
        }
      }
    }
  ]
}
2. 在 n8n 中配置凭据。 * 选择您的 AWS Region 区域 * 输入您创建的角色的 Role ARN 角色 ARN * 设置唯一的 External ID 外部 ID(与信任策略中的相同) * 选择您的 STS credentials method STS 凭据方法 * 输入 Role Session Name 角色会话名称(或使用默认值) 3. 使用内置测试功能测试凭据以验证角色担任是否有效。

Security Best Practices 安全最佳实践#

  • 为每个凭据使用唯一的外部 ID 以防止未经授权的访问。
  • 轮换用于角色担任的 STS 凭据。
  • 将最小权限原则应用于担任凭据和目标角色。