web-dev-qa-db-ja.com

AWS ECR GetAuthorizationToken

ユーザーにECR認証を設定する際のAWSの指示に従うために、AmazonEC2ContainerRegistryFullAccessユーザーへのポリシー。

ただし、PCで実行しようとすると、aws ecr get-login許可がないというエラーが表示されます。

An error occurred (AccessDeniedException) when calling the GetAuthorizationToken operation: User: arn:aws:iam::ACCOUNT_NUMBER:user/MY_USER is not authorized to perform: ecr:GetAuthorizationToken on resource: *

私は何を間違えましたか?

23
Y. Eliash

2FAが有効になっている場合、aws ecr get-loginを使用するオプションがないことがわかりました。アカ​​ウントから2FAを削除すると、認証トークンが取得されます。

8
Y. Eliash

IAMロールにポリシーをアタッチする必要があります。

AmazonEC2ContainerRegistryFullAccessを添付しましたが、うまくいきました。

32
fegoulart

エラーの説明に表示されるように、ポリシーで「GetAuthorizationToken」アクションを許可する必要があります。

    {
        "Sid": "VisualEditor2",
        "Effect": "Allow",
        "Action": "ecr:GetAuthorizationToken",
        "Resource": "*"
    }

注:これは私の完全なポリシーではなく、ステートメントのサブセクションです。

3
Adeel Ahmad

コンテナーをリポジトリーにプッシュしようとしたときに、ECSで同じ問題が発生しました。

それを解決するために、IAMロールにこれを添付しました:AmazonECS_FullAccess

1
Maxime

私も同じ問題を抱えていますが、以前にpermission boundaryをs3にのみ設定していたため、問題が発生しました。

permission boundaryを削除し、チャームのように機能しました

0
jeyanthinath

ここにすべての手順を実行した後の完全な答えがあります-ECRを使用できました

エラーには2つの意味があります。

1)ユーザーにECRポリシーがアタッチされていないため、認証されていません2)2FAを使用しており、一時セッショントークンを設定しない限り、cliの使用は安全ではないため、認証されていません

これは、アクセスを取得するためのすべてのステップのリストです(2FAの処理を含む)

  1. まず、ECRのGetAuthorizationTokenアクションへのアクセスを許可するポリシーをcreateする必要があります。
  2. このポリシーをユーザーまたはグループにアタッチします(グループ/ロールは常により良いアプローチです。ロールへの投票、DevOpsなど)。
  3. ご使用の環境でAWS_ACCESS_KEY_IDおよびAWS_SECRET_ACCESS_KEYが設定されていることを確認してください。資格情報とプロファイルを分離したawsフォルダーを使用することをお勧めします。

2FAを有効にしている場合

  1. このコマンドaws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-tokenを使用してセッショントークンを生成する必要があります。 arn-of-the-mfa-deviceは、プロファイルの2FAセクションにあります。トークンは、デバイスから生成されたトークンです。
  2. 受信したAccessKeyIdSecretAccessKey、およびSessionTokenでAWS credentailsを更新します。 AWSは、いずれかのcronジョブを使用してトークンを更新することをお勧めします。つまり、それを実行している場合は、物事をテストするときに、prodリソースで2FAが有効になっていない可能性があります。 --duration-secondsを提供することでセッションを増やすことができますが、最大36時間までです。適切な説明は authenticate-mfa-cli にあります。

これは仕事をする必要があります

0
Taras Matsyk

最終的にフルアクセスよりも優れた選択肢のように思えたため、AmazonEC2ContainerRegistryPowerUserを使用しました。 2019年6月の時点で見つけたポリシーは次のとおりです。 Container Registry Permissions

0
iheggie