Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在Docker容器内传递AWS CodeBuild IAM角色[无法找到凭据]_Amazon Web Services_Amazon Iam_Aws Codepipeline_Aws Codebuild - Fatal编程技术网

Amazon web services 在Docker容器内传递AWS CodeBuild IAM角色[无法找到凭据]

Amazon web services 在Docker容器内传递AWS CodeBuild IAM角色[无法找到凭据],amazon-web-services,amazon-iam,aws-codepipeline,aws-codebuild,Amazon Web Services,Amazon Iam,Aws Codepipeline,Aws Codebuild,CodeBuild项目上配置的角色在运行时环境中可以正常工作,但当我们从容器内部运行命令时,该角色不起作用,它表示找不到凭据。 让我知道如何在容器中使用开箱即用的角色。您可以使用凭据源ECSCOContainer无缝地承担角色,而无需在buildspec.yml中导出新凭据 credential_source—用于获取初始角色调用的凭据的凭据提供程序。此参数不能与源配置文件一起提供。有效值为: 环境从环境变量中提取源凭据。 Ec2InstanceMetadata将EC2实例角色用作源凭据。 Ec

CodeBuild项目上配置的角色在运行时环境中可以正常工作,但当我们从容器内部运行命令时,该角色不起作用,它表示找不到凭据。
让我知道如何在容器中使用开箱即用的角色。

您可以使用凭据源ECSCOContainer无缝地承担角色,而无需在buildspec.yml中导出新凭据

credential_source—用于获取初始角色调用的凭据的凭据提供程序。此参数不能与源配置文件一起提供。有效值为:

环境从环境变量中提取源凭据。 Ec2InstanceMetadata将EC2实例角色用作源凭据。 EcsContainer将ECS容器凭据用作源凭据。 发件人:

步骤:

步骤0:创建一个新角色“arn:aws:iam::0000000000:Role/RoleToBeAssumed”,并附加所需的策略,以提供生成过程中运行的命令所需的权限

步骤1:将sts:assumeRole权限添加到CodeBuild服务角色。以下是一个示例策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "sts:*",
            "Resource": "arn:aws:iam::0000000000:role/RoleToBeAssumed"
        }
    ]
}
步骤2:配置生成容器以使用凭据元数据作为承担角色的源。以下是buildspec示例:

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 8
    commands:
      - aws sts get-caller-identity
      - mkdir ~/.aws/ && touch ~/.aws/config
      - echo "[profile buildprofile]" > ~/.aws/config
      - echo "role_arn = arn:aws:iam::0000000000:role/RoleToBeAssumed" >> ~/.aws/config
      - echo "credential_source = EcsContainer" >> ~/.aws/config
      - aws sts get-caller-identity --profile buildprofile

您可以使用凭证源ECSCOContainer无缝地承担角色,而无需在buildspec.yml中导出新凭证

credential_source—用于获取初始角色调用的凭据的凭据提供程序。此参数不能与源配置文件一起提供。有效值为:

环境从环境变量中提取源凭据。 Ec2InstanceMetadata将EC2实例角色用作源凭据。 EcsContainer将ECS容器凭据用作源凭据。 发件人:

步骤:

步骤0:创建一个新角色“arn:aws:iam::0000000000:Role/RoleToBeAssumed”,并附加所需的策略,以提供生成过程中运行的命令所需的权限

步骤1:将sts:assumeRole权限添加到CodeBuild服务角色。以下是一个示例策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "sts:*",
            "Resource": "arn:aws:iam::0000000000:role/RoleToBeAssumed"
        }
    ]
}
步骤2:配置生成容器以使用凭据元数据作为承担角色的源。以下是buildspec示例:

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 8
    commands:
      - aws sts get-caller-identity
      - mkdir ~/.aws/ && touch ~/.aws/config
      - echo "[profile buildprofile]" > ~/.aws/config
      - echo "role_arn = arn:aws:iam::0000000000:role/RoleToBeAssumed" >> ~/.aws/config
      - echo "credential_source = EcsContainer" >> ~/.aws/config
      - aws sts get-caller-identity --profile buildprofile
如果需要在生成环境中运行Docker容器,并且该容器需要AWS凭据,则必须将凭据从生成环境传递到容器

如果需要在生成环境中运行Docker容器,并且该容器需要AWS凭据,则必须将凭据从生成环境传递到容器


您可以将凭据作为环境变量传递,然后在运行时使用它们。我不希望将其作为环境变量传递。理想情况下,容器运行时必须将该角色作为任务角色附加到ECS中。您可以将凭据作为环境变量传递,然后在运行时使用它们。我不希望将其作为环境变量传递。理想情况下,容器运行时必须附加该角色,类似于它在ECS中作为任务角色的工作方式!工作起来很有魅力!