繁体   English   中英

IAM 角色不适用于 Docker 容器?

[英]IAM Role not working with Docker container?

我在 EC2 实例上运行 3 个容器 docker-compose 应用程序,我的 2 个容器是用 .NET 编写的后端,一个是前端反应应用程序。 尽管我的 .NET docker 图像除了应用程序代码之外是相同的,但其中一个容器可以承担 EC2 实例的角色,而另一个不能。 如果我在所有 3 个容器上尝试 get-caller-identity,它可以在其他 2 个容器上运行,而无需配置任何 aws 凭据/区域等。

但是,在发生故障的容器上,我收到以下信息。

$:aws sts get-caller-identity
  An error occurred (InvalidClientTokenId) when calling the GetCallerIdentity operation:

我不明白凭据如何在我的所有其他容器上工作,除了这个? 我尝试重建图像无济于事。 我的 AWS 角色提供 FullAdmin 访问权限,因此不能是权限不足的问题。

对于 .NET 图像,我的 Dockerfile 看起来像这样;

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 5000

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["app/files", "app/files/]
RUN dotnet restore "app/files"
COPY . .
WORKDIR "/src/app/files"
RUN dotnet tool restore
RUN dotnet ef database update
RUN dotnet build "app/files" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "app/files" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "app.dll"]

AWS_SECRET_ACCESS_ID 和 AWS_ACCESS_KEY_ID 环境变量是在我的 docker 组合中为非功能容器设置的,因此出现故障

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM