Gitlab Runner 无法承担 IAM 角色 -- 找不到配置文件(默认)

问题描述 投票:0回答:1

我正在使用 EC2 创建 gitlab 运行程序。 跑步者正在注册,没有任何问题。 我正在尝试使用用户数据为 ec2 分配角色。这是代码--

cat << EOF >> /home/gitlab-runner/.aws/config
[default]
role_arn=arn:aws:iam::123456789012:role/gitlabrunner
credential_source=Ec2InstanceMetadata
region=us-east-1
EOF

我能够将运行器附加到 Gitlab 项目。但是当我尝试运行任何管道时,我收到以下错误 -

aws --version
aws-cli/2.13.0 Python/3.11.4 Linux/4.14.328-248.540.amzn2.x86_64 exe/x86_64.ubuntu.22 prompt/off
aws s3 ls

找不到配置文件(默认)

非常感谢任何帮助。

amazon-web-services amazon-ec2 gitlab-ci-runner
1个回答
0
投票
  1. 检查 AWS CLI 配置: 确保在执行 GitLab Runner 的计算机上正确配置 AWS CLI。运行以下命令以查看现有的 AWS CLI 配置:

    aws configure list
    

    确保所需的 AWS 配置文件(在本例中为“默认”)配置有必要的凭证和区域。

  2. 验证 IAM 角色是否存在: 确认您尝试代入的 IAM 角色存在于您的 AWS 账户中,并且您的 GitLab Runner 配置中指定的角色名称正确。

  3. 检查 GitLab 运行器配置: 在您的 GitLab Runner 配置文件(

    .gitlab-ci.yml
    或 GitLab Runner
    config.toml
    文件)中,确保正确使用 AWS CLI。验证指定的 AWS CLI 配置文件是否与您计算机上配置的配置文件匹配。

  4. 更新 GitLab Runner: 确保您使用的是最新版本的 GitLab Runner。更新到最新版本可能会解决已知问题并提高兼容性。

  5. 环境变量: 如果您使用环境变量设置 AWS 凭证,请确保它们设置正确。您可以使用以下环境变量:

    export AWS_ACCESS_KEY_ID=your_access_key_id
    export AWS_SECRET_ACCESS_KEY=your_secret_access_key
    export AWS_DEFAULT_REGION=your_region
    

    your_access_key_id
    your_secret_access_key
    your_region
    替换为您的实际 AWS 凭证和区域。

  6. IAM 角色信任关系: 验证您尝试承担的 IAM 角色的信任关系。信任关系应包括尝试承担角色的实体(例如 EC2 实例或用户)。

  7. IAM 角色权限: 确保 IAM 角色具有由 GitLab Runner 实例承担的必要权限。检查附加到 IAM 角色的策略以获得所需的权限。

  8. 调试: 启用 AWS CLI 调试以获取有关错误的更多详细信息。您可以将

    --debug
    选项添加到 AWS CLI 命令以查看详细日志。

    aws sts assume-role --role-arn arn:aws:iam::account-id-without-hyphens:role/role-name --role-session-name session-name --debug
    

    查看调试输出,了解可能表明问题根本原因的任何特定错误消息。

通过执行这些步骤,您应该能够识别并解决由于缺少 AWS CLI 配置文件配置而导致 GitLab Runner 无法承担 IAM 角色的问题。

© www.soinside.com 2019 - 2024. All rights reserved.