案例3

要完成上述任务,可以按照以下步骤进行操作:

  1. 连接到 EC2 实例
    • 从输出页面复制 CommandHostSessionUrl 值。
    • 打开新的浏览器选项卡,将其粘贴到地址栏并按 ENTER,等待 EC2 实例的命令行加载。若 SessionManager 不起作用,也可使用输出部分中的 IP 地址直接通过 SSH 连接到 EC2 实例。连接后运行 cd~ 命令进入主目录。
  2. 探索 Amazon Web Services 管理控制台
    • 登录 Amazon Web Services 控制台。
    • 依次查看 CodePipelineCodeBuildStep FunctionsAmazon SageMaker 等服务的配置页面,检查每个服务所关联的 IAM 角色。重点关注是否存在网络安全团队删除权限后导致非功能性的角色。
  3. 确定每个服务所需的 IAM 操作
    • CodePipeline
      • 需要对 CodeCommit 存储库的读取权限(例如 codecommit:Get* 等操作),以便监控存储库中的更改。
      • CodeBuild 的调用权限(如 codebuild:StartBuild 等),用于触发构建过程。
      • 对其他相关资源(如 S3 等)的访问权限,以便存储和检索构建产物等。
    • CodeBuild
      • 访问 Amazon ECR 存储库的权限(如 ecr:GetAuthorizationTokenecr:BatchCheckLayerAvailabilityecr:CompleteLayerUploadecr:UploadLayerPartecr:BatchPutImage 等),用于构建和推送 ECR 镜像。
      • 读取 CodeCommit 存储库中模型代码的权限。
      • 对 S3 存储桶的读写权限,以便存储和读取构建过程中的中间文件和最终产物。
    • Step Functions
      • 对用于模型训练的 Step Functions 状态机的执行权限(如 states:StartExecution 等)。
      • 访问 Amazon SageMaker 的权限(如 sagemaker:CreateTrainingJobsagemaker:DescribeTrainingJob 等),以便与 SageMaker 交互进行模型训练。
      • 对 S3 存储桶的访问权限,用于存储和检索训练数据和模型。
    • Amazon SageMaker
      • 访问 S3 存储桶的权限,用于读取训练数据和写入训练好的模型。
      • 对相关 IAM 角色的权限,以便 SageMaker 可以使用这些角色来执行训练任务(如 iam:PassRole 等)。
  4. 找到满足要求的 IAM 角色
    • 在 IAM 控制台中,查看已有的 IAM 角色列表。
    • 根据每个服务所需的 IAM 操作,筛选出具有相应权限的 IAM 角色。可以通过查看角色的策略来确认其权限。
    • 如果没有合适的角色,可以创建新的 IAM 角色,并为其附加所需的策略。策略可以是 AWS 预定义的策略(如 AmazonS3FullAccessAmazonEC2FullAccess 等),也可以是自定义策略,根据具体需求定义权限。
  5. 更新服务以使用正确的 IAM 角色
    • CodePipeline:进入 CodePipeline 的编辑页面,找到与角色相关的配置选项,将其更新为满足要求的 IAM 角色。
    • CodeBuild:在 CodeBuild 项目的设置中,指定正确的 IAM 角色。
    • Step Functions:在状态机的配置中,确保使用具有正确权限的 IAM 角色来执行状态机。
    • Amazon SageMaker:在创建训练任务或其他相关操作时,指定正确的 IAM 角色,以便 SageMaker 可以使用该角色来访问所需的资源。
  6. 测试服务
    • 完成上述更新后,尝试重新运行 CodePipeline,触发整个机器学习管道的运行。
    • 监控各个服务的运行状态,查看是否有错误信息。如果出现错误,根据错误提示进一步检查和调整 IAM 角色和权限配置,直到服务能够无错误地运行。

通过以上步骤,应该能够识别并解决由于 IAM 角色权限问题导致的服务非功能性问题,使机器学习管道能够正常运行。

posted @ 2025-04-16 23:53  cat桑  阅读(32)  评论(0)    收藏  举报