バックエンドリソースをデプロイするアクセス許可を持つサービスロールの追加
Amplify では、フロントエンドでバックエンドリソースをデプロイするためのアクセス許可が必要です。このアクセス許可を付与するには、サービスロールを使用します。サービスロールは、ユーザーに代わってバックエンドをデプロイ、作成、管理するアクセス許可を Amplify ホスティングに提供する AWS Identity and Access Management (IAM) ロールです。
IAM サービスロールが必要な新しいアプリを作成する場合、Amplify ホスティングにサービスロールを自動的に作成させることも、既に作成している IAM ロールを指定することもできます。このセクションでは、アカウント管理権限を持ち、Amplify アプリケーションが バックエンドをデプロイ、作成、管理に必要とするリソースへの直接アクセスを明示的に許可する、Amplify サービスロールを作成できるようになります。
IAM コンソールで Amplify サービスロールを作成する
サービスロールを作成する
-
IAM コンソールを開き
、左側のナビゲーションバーから [ロール] を選択して、[ロールの作成] を選択します。 -
[信頼されたエンティティを選択] ページで、[AWS サービス] を選択します。[ユースケース] で [Amplify - バックエンドデプロイ] (Amplify - Backend Deployment) を選択し、[次へ] を選択します。
-
[アクセス許可を追加] ページで [次へ] を選択してください。
-
[名前、表示、作成] ページで、[ロール名] に
AmplifyConsoleServiceRole-AmplifyRoleなどのわかりやすい名前を入力します。 -
デフォルトをすべて受け入れて [ロールの作成] を選択します。
-
Amplify コンソールに戻り、ロールをアプリにアタッチします。
-
新しいアプリをデプロイしている場合は、次の操作を行います:
-
サービスロールのリストを更新します。
-
先ほど作成したロールを選択します。この例については、AmplifyConsoleServiceRole-AmplifyRole のようになります。
-
[次へ] を選択し、手順に従ってアプリのデプロイを完了します。
-
-
既存のアプリがある場合は、次の操作を行います:
-
ナビゲーションペインで、[アプリの設定] を選択して、[IAM ロール] を選択します。
-
[IAM ロール] ページの [サービスロール] セクションで、[編集] を選択します。
-
[サービスロール] ページで、[サービスロール] リストから作成したロールを選択します。
-
[保存] を選択します。
-
-
-
アプリのバックエンドリソースをデプロイするアクセス許可が Amplify に付与されました。
混乱した代理の問題を防ぐためのサービスロールの信頼ポリシーの編集
混乱した代理問題とは、アクションを実行する許可を持たないエンティティが、より高い特権を持つエンティティにそのアクションの実行を強制できるというセキュリティ問題です。詳細については、「サービス間の混乱した代理の防止」を参照してください。
現在、Amplify-Backend Deploymentサービスロールのデフォルトの信頼ポリシーでは、代理の混乱を防ぐためにaws:SourceArnとaws:SourceAccountのグローバルコンテキスト条件キーが適用されています。ただし、以前にアカウントにAmplify-Backend Deploymentロールを作成したことがある場合は、ロールの信頼ポリシーを更新してこれらの条件を追加することで、代理が混乱するのを防ぐことができます。
次の例を使用して、アカウント内のアプリへのアクセスを制限します。リージョンおよびアプリケーション ID をユーザー自身の情報などに置き換えます。
"Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:amplify:us-east-1:123456789012:apps/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } }
AWS マネジメントコンソール を使用してロールの信頼ポリシーを編集する手順については、「IAM ユーザーガイド」の「ロール(コンソール)の変更」を参照してください。