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生成リソースの修正

Amplify Storage は S3 と DynamoDB などの基礎となる AWS サービスとリソースを使用しています。これらの基礎となるリソースをご自身のユースケースに合わせてカスタマイズできます。

amplify override storage

上記のコマンドを実行して、S3 バケット、DynamoDB テーブルなど、Amplify生成のストレージリソースをオーバーライドします。

このコマンドは amplify/backend/storage/<resource-name>/ の下に新しい overrides.ts ファイルを作成します。このファイルは、Amplify生成のリソースを CDK コンストラクト として提供します。

Amplify生成の S3 リソースのカスタマイズ

すべてのオーバーライドを override(...) 関数に適用します。例えば、S3 バケットでバージョニングを有効にするには:

import { AmplifyS3ResourceTemplate } from '@aws-amplify/cli-extensibility-helper';
export function override(resources: AmplifyS3ResourceTemplate) {
resources.s3Bucket.versioningConfiguration = {
status: 'Enabled'
};
}

Amplify が生成する以下の S3 関連リソースをオーバーライドできます:

Amplify生成リソース説明
s3Bucketamplify add storage 実行時に Amplify が生成するファイルストレージ用 S3 バケット
s3AuthPublicPolicy認証済みユーザーの public/* プレフィックスへの書き込みアクセス用 IAM ポリシー
s3AuthProtectedPolicy認証済みユーザーの protected/* プレフィックスへの書き込みアクセス用 IAM ポリシー
s3AuthPrivatePolicy認証済みユーザーの private/* プレフィックスへの書き込みアクセス用 IAM ポリシー
s3AuthUploadPolicy認証済みユーザーの uploads/* プレフィックスへの書き込みアクセス用 IAM ポリシー
s3AuthReadPolicy認証済みユーザーの読み取りアクセス用 IAM ポリシー
s3GuestPublicPolicyゲストユーザーの public/* プレフィックスへの書き込みアクセス用 IAM ポリシー
s3GuestUploadPolicyゲストユーザーの uploads/* プレフィックスへの書き込みアクセス用 IAM ポリシー
s3GuestReadPolicyゲストユーザーの読み取りアクセス用 IAM ポリシー

例えば、amplify override storage を使用して、S3 バケットのデフォルトの public Auth ポリシーに追加の PUT と GET アクセス IAM ポリシーステートメントを追加できます:

import { AmplifyS3ResourceTemplate } from '@aws-amplify/cli-extensibility-helper';
export function override(resources: AmplifyS3ResourceTemplate) {
resources.s3AuthPublicPolicy.policyDocument.Statement = [
...resources.s3AuthPublicPolicy.policyDocument.Statement,
{
Effect: 'Allow',
Action: ['s3:PutObject', 's3:PutObjectAcl', 's3:GetObject'],
Resource: '<ARN of the S3 resource>'
}
];
}

Amazon S3 のアクション、リソース、および条件キーの詳細については、IAM ドキュメントを参照してください。

Amplify生成の DynamoDB テーブルのカスタマイズ

すべてのオーバーライドを override(...) 関数に適用します。例えば、DynamoDB テーブルでタイムトゥリーブ仕様を有効にするには:

import { AmplifyDDBResourceTemplate } from '@aws-amplify/cli-extensibility-helper';
export function override(resources: AmplifyDDBResourceTemplate) {
resources.dynamoDBTable.timeToLiveSpecification = {
attributeName: 'ttl',
enabled: true
};
}

Amplify が生成する以下の DynamoDB リソースをオーバーライドできます:

Amplify生成リソース説明
dynamoDBTableamplify add storage 実行時に Amplify が作成する DynamoDB テーブル