LoginSignup
sawata0324
@sawata0324 (Sawata)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

AWS CopilotCLIエラー 「作成したenvが削除できない」

解決したいこと

copilot env deleteで作成されたenvを削除したいです。

経緯としてはcopilotCLIを使ってECSへのデプロイを試みましたがエラーが発生します。
copilot app initを行ったのち、copilot env initで一度prod環境とtest環境についてはエラーが出つつも成功したのですが、その後もう一度copilot env initを行うと以下のエラーが出てenvを作成できなくなりました。

現在コンソールでcopilot env initを試すと以下のエラーにより失敗します。

Only found one application, defaulting to: sawata-aws-container
What is your environment's name? [環境名]
Which credentials would you like to use to create [環境名]? [profile default]
Would you like to use the default configuration for a new environment?
    - A new VPC with 2 AZs, 2 public subnets and 2 private subnets
    - A new ECS Cluster
    - New IAM Roles to manage services and jobs in your environment
No, I'd like to import existing resources
Which VPC would you like to use? [VPC ID]
✘ No existing public subnets were found in VPC [VPC ID]. You can either:
- Create new public subnets and then import them.
- Use the default Copilot environment configuration.✘ select public subnets: no existing subnets found

- Create new public subnets and then import them.
- Use the default Copilot environment configuration.✘ select public subnets: no existing subnets found

CopilotClIでのデプロイを諦めることにし、env deleteを行おうとしたところ、ここでもエラーが発生し、作成されたenvを削除できなくなってしまいました。正常にenv deleteするためのヒントか方法がわかればご教授いただきたいです。

個人的にはIAMロールの権限が足りないと言われますが、ログインしているAWSIAMUserの権限はアドミニストレータアクセスなのでなぜ権限が足りないと言われるのかわかりません。

env deleteに関するエラー概要(GPT4)

指定したAWSユーザー (arn:aws:iam::アカウントID:user/[IAMUserネーム]) が、特定のロール (arn:aws:iam::アカウントID:role/sawata-aws-container-prod-EnvManagerRole) を引き受ける(sts:AssumeRole アクションを実行する)権限がない

env deleteのエラー文の全容

$copilot env delete   

Only found one application, defaulting to: sawata-aws-container
Which environment would you like to delete? test
X Sorry, your reply was invalid: " y" is not a valid answer, please try again.
Are you sure you want to delete environment test from application sawata-aws-container ? Yes
✘ find service cloudformation stacks: AccessDenied: User: arn:aws:iam::[アカウントID]:user/[IAM User name] is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::504252798833:role/sawata-aws-container-test-EnvManagerRole
        status code: 403, request id: 2e11f525-bc96-4f0b-ab5b-4153c4b335d2
salt@SALTiMac TsunaRhythm % copilot env delete
Only found one application, defaulting to: sawata-aws-container
Which environment would you like to delete? test
Are you sure you want to delete environment test from application sawata-aws-container ? Yes
✘ find service cloudformation stacks: AccessDenied: User: arn:aws:iam::[アカウントID]:user/sawata-aws-user is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::[アカウントID]:role/sawata-aws-container-test-EnvManagerRole
        status code: 403, request id: a81d5f11-aa30-418a-bc57-a89b85762070

<試したこと>

・使用しているIAMUserにアドミニストレータアクセスポリシーがあることを確認
・新しいポリシーを作成してユーザーに適用。以下Jsonファイル。名前はsawata-CopilotProdEnvironmentAccess

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::504252798833:role/sawata-aws-container-prod-EnvManagerRole"
        }
    ]
}

・aws configureで再ログインするが結果は変わらず
・copilot ディレクトリを削除して再copilot env。新しいenvは作れない
・aws ec2 describe-vpcsと入力すると正常にVPC情報などが出力されることを確認
・エラー文で検索したがCopilotCLIに関するエラーではなくGithubCopilotの記事ばかり出てくる。
・copilotCLIのバージョンがlatestでインストールしたはずだがcopilot version: v1.33.1と表示されるため、以下の記事を参考にバージョンを 1.7.1に変更したが変化なし。
https://aws.amazon.com/jp/blogs/news/enabling-continuous-workflows-for-aws-app-runner-service-with-persistency-using-aws-copilot-cli/

開発環境の情報

・MacOS
・Apple M1
・メモリ16GB
・ruby "3.2.2"
・rails "7.0.4.3"
・mySQL8.0.36(gem "mysql2","~> 0.5.6")
・VScode
・使用したアプリのGitHubリンク
https://github.com/siosawa/TsunaRhythm
※Railsチュートリアル修了後に何度か変更を加えています。
・AWSCLIをインストール済み
・Docker Desktopインストール済み

0

1Answer

エラーメッセージから判断すると、IAM権限が不足しているようですね。ご利用端末はEC2インスタンスですか?また、利用しているEC2に"arn:aws:iam::504252798833:role/sawata-aws-container-prod-EnvManagerRole"のロールがアタッチされていますか?

EC2にAWS Copilotをインストールしている場合は、EC2のIAMロールに適切なポリシーを付与する必要がありますので、以下のポリシーをEC2のIAMロール"arn:aws:iam::504252798833:role/sawata-aws-container-prod-EnvManagerRole"にアタッチして試してみてもいいかもしれません:

  1. "AWSCloudFormationFullAccess"
  2. "AdministratorAccess" が成功しない場合
1Like

Comments

  1. @sawata0324

    Questioner

    ありがとうございます!質問から回答までの日付が立ってしまった間にCopilotCLIの使用自体を 断念してしまい、エラーの改善には至りませんでしたが、次の機会に参考にさせていただきます。ご回答本当にありがとうございます。

Your answer might help someone💌