Skip to content

AWS 凭证(AWS credentials)#

AWS(IAM)凭证(AWS (IAM) credentials)#

你可以使用以下凭据验证以下节点:

🌐 You can use these credentials to authenticate the following nodes:

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

  • API 访问密钥

有关该服务的更多信息,请参阅 AWS 身份与访问管理文档

🌐 Refer to AWS's Identity and Access Management documentation for more information about the service.

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

要配置此凭证,你需要一个AWS账户,并且:

🌐 To configure this credential, you'll need an AWS account and:

  • 您的 AWS 区域
  • 访问密钥 ID:在你创建访问密钥时生成。
  • 秘密访问密钥:在你创建访问密钥时生成。

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

🌐 To create an access key and set up the credential:

  1. 在你的 n8n 凭证中,选择你的 AWS 区域
  2. 登录 IAM 控制台
  3. 在右上角的导航栏中,选择你的用户名,然后选择 安全凭证
  4. 访问密钥 部分,选择 创建访问密钥
  5. 访问密钥最佳实践与替代方案页面上,选择你的使用案例。如果页面没有提示你创建访问密钥,请选择其他
  6. 选择 下一步
  7. 为访问密钥设置一个描述标签值,以便更容易识别,例如 n8n integration
  8. 选择 创建访问密钥
  9. 显示 访问密钥 ID秘密访问密钥,并将它们输入到 n8n 中。10. 要使用 临时安全凭证,请开启该选项并添加 会话令牌。有关使用临时安全凭证的更多信息,请参阅 AWS 临时安全凭证文档。11. 如果你使用 Amazon 虚拟私有云 (VPC) 来托管 n8n,你可以在你的 VPC 与某些应用之间建立连接。使用 自定义终端节点 输入此连接的相关自定义终端节点。该设置适用于以下应用:
    • Rekognition
    • Lambda
    • 社交网络
    • SES
    • SQS
    • S3

你还可以通过 AWS CLI 和 AWS API 生成访问密钥。有关使用这些方法生成访问密钥的说明,请参阅 AWS 管理访问密钥文档

🌐 You can also generate access keys through the AWS CLI and AWS API. Refer to the AWS Managing Access Keys documentation for instructions on generating access keys using these methods.

AWS(Assume Role)凭证(AWS (Assume Role) credentials)#

你可以使用以下凭据通过 IAM 角色承担增强安全性来验证以下节点:

🌐 You can use these credentials to authenticate the following nodes with enhanced security through IAM role assumption:

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

  • 角色代入

有关角色承担的更多信息,请参阅 AWS 的 IAM 角色文档STS AssumeRole 文档

🌐 Refer to AWS's IAM Role documentation and STS AssumeRole documentation for more information about role assumption.

了解 AWS 角色承担(Understanding AWS Role Assumption)#

AWS 角色扮演允许你通过临时承担 IAM 角色来安全地访问 AWS 资源,而不是使用长期有效的访问密钥。这符合 AWS 的安全最佳实践,并能够实现:

🌐 AWS Role Assumption allows you to securely access AWS resources by temporarily assuming an IAM role, rather than using long-lived access keys. This follows AWS security best practices and enables:

  • 跨账户访问: 访问不同 AWS 账户中的资源
  • 增强安全性: 使用会自动过期的临时凭证
  • 最小权限原则: 仅授予完成特定任务所需的权限
  • 审计追踪: 更好地跟踪谁访问了哪些资源

设置 AWS Assume Role 凭证(Setting up AWS Assume Role credentials)#

要配置此凭据,你需要:

🌐 To configure this credential, you'll need:

必填参数(Required Parameters)#

  • 区域: 调用 STS 服务以假设角色的 AWS 区域。
  • 角色 ARN: 你想要扮演的 IAM 角色的 Amazon 资源名称 (ARN)。其格式为 arn:aws:iam::123456789012:role/MyRole。此角色必须具有允许你的凭证扮演该角色的信任策略。
  • 外部 ID: 角色信任策略所需的唯一标识符,用于防止“混淆的代理”问题。这个值应是你自己生成的,并在角色的信任策略和此凭证中进行配置。将此值视为敏感信息,不要与你不信任的其他 n8n 用户共享。
  • 角色会话名称: 假定角色会话的名称(用于审计)。默认值是 n8n-session。此值会出现在 AWS CloudTrail 日志中,因此你可以识别该会话。

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

你可以通过两种方式提供凭据以调用 STS AssumeRole:

🌐 You have two options for providing credentials to make the STS AssumeRole call:

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

🌐 Enable this option if your n8n server has AWS credentials configured through:

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

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

🌐 This option requires your n8n administrator to enable system credentials access by setting environment variable N8N_AWS_SYSTEM_CREDENTIALS_ACCESS_ENABLED to true

选项 2:手动 STS 凭证(Option 2: Manual STS Credentials)#

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

🌐 If system credentials aren't available, provide these manually:

  • STS访问密钥ID: 拥有权限来承担目标角色的IAM用户或角色的访问密钥ID。
  • STS 密钥访问密钥: 与 STS 访问密钥 ID 对应的密钥访问密钥。
  • STS 会话令牌(可选):如果使用临时凭证进行 STS 调用,填写会话令牌。

可选参数(Optional Parameters)#

  • 自定义端点: 如果使用 Amazon VPC,你可以为 AWS 服务指定自定义端点:
    • Rekognition 端点
    • Lambda 端点
    • SNS 端点
    • SES 端点
    • SQS 端点
    • S3 端点
    • 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"
        }
      }
    }
  ]
}
  1. 在 n8n 中配置凭据。 * 选择你的 AWS 区域 * 输入你创建的角色的角色 ARN * 设置一个唯一的外部 ID(与信任策略中相同) * 选择你的STS 凭证方法 * 输入角色会话名称(或使用默认)
  2. 使用内置测试功能测试凭证,以验证角色假设是否有效。

安全最佳实践(Security Best Practices)#

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