Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Page updated Apr 30, 2024

Maintenance ModeYou are viewing Amplify Gen 1 documentation. Amplify Gen 1 has entered maintenance mode and will reach end of life on May 1, 2027. New project should use Amplify Gen 2. For existing Gen 1 projects, a migration guide and tooling are available to help you upgrade. Switch to the latest Gen 2 docs →

Amplifyが生成したプロジェクトレベルのIAMリソースをオーバーライドする

amplify override project

上記のコマンドを実行して、認証済みおよび未認証ユーザーのIAMロールなど、Amplifyが生成したプロジェクトレベルのリソースをオーバーライドします。

警告: 認証済みおよび未認証ユーザーロールの深い依存関係のため、他のリソースが追加される前のプロジェクトの開始段階でのみこれらのリソースを変更することをお勧めします。

このコマンドは、amplify/backend/awscloudformation/の下に新しいoverrides.tsファイルを作成します。このファイルは、Amplifyが生成したリソースをCDK構成として提供します。

override(...)関数内にすべてのオーバーライドを適用します。例えば、認証済みユーザーのIAMロールの名前を変更してパスを追加するには:

import { AmplifyRootStackTemplate } from '@aws-amplify/cli-extensibility-helper';
export function override(resources: AmplifyRootStackTemplate) {
resources.authRole.roleName = "myCustomName"
resources.authRole.path = "/<my-organization>/"
// 注意:CloudFormationでは、リソースを再作成しない場合、パスの更新が制限されます。
// ロール名を変更するとリソースが再作成されます。
}

Amplifyが生成する次のプロジェクトレベルのリソースをオーバーライドできます:

Amplifyが生成したリソース説明
authRoleアプリバックエンドへの認証済みアクセス用のIAMロール
unauthRoleアプリバックエンドへの認証済みまたはゲストアクセス用のIAMロール

例:authRoleのIAMポリシーを変更する

例えば、amplify override projectを使用して、デフォルトのポリシーステートメントを超えてGeoカテゴリのauthRoleポリシーをさらに変更します:

import { AmplifyRootStackTemplate } from "@aws-amplify/cli-extensibility-helper";
export function override(resources: AmplifyRootStackTemplate) {
const authRole = resources.authRole;
const basePolicies = Array.isArray(authRole.policies)
? authRole.policies
: [authRole.policies];
authRole.policies = [
...basePolicies,
{
policyName: "amplify-permissions-custom-resources",
policyDocument: {
Version: "2012-10-17",
Statement: [
//? ルートカルキュレータ
{
Resource: "<ARN of Geo>",
Action: ["geo:CalculateRoute*"],
Effect: "Allow",
},
],
},
},
];
}