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

Choose your framework/language

Gen1 DocsLegacy

Page updated Mar 26, 2026

既存の Cognito リソースを使用する

Amplify Auth は、既存の Amazon Cognito ユーザープールと ID プールを使用するように設定できます。チーム環境にいる場合や、以前に認証リソースを作成した企業の一部である場合は、クライアントライブラリを直接設定するか、Amplify バックエンドで AWS Cloud Development Kit (AWS CDK) を使用して参照を保持することができます。

注: 既存の認証リソースを使用する場合、認証済みおよび未認証の IAM ロールに対して追加のポリシーまたはアクセス許可を追加する必要がある場合があります。これらの変更は手動で実行する必要があります。

Amplify バックエンドなしで認証リソースを使用する

Amplify バックエンドなしで既存のリソースを使用するには、クライアントライブラリを直接設定します。

src/main.ts
import { Amplify } from "aws-amplify"
Amplify.configure({
Auth: {
Cognito: {
userPoolId: "<your-cognito-user-pool-id>",
userPoolClientId: "<your-cognito-user-pool-client-id>",
identityPoolId: "<your-cognito-identity-pool-id>",
loginWith: {
email: true,
},
signUpVerificationMethod: "code",
userAttributes: {
email: {
required: true,
},
},
allowGuestAccess: true,
passwordFormat: {
minLength: 8,
requireLowercase: true,
requireUppercase: true,
requireNumbers: true,
requireSpecialCharacters: true,
},
},
},
})

Amplify バックエンドで認証リソースを使用する

Amplify は参照されたリソースの設定を変更することはできず、参照時のリソース設定のみを取得します。参照されたリソースに対して後で加えられた変更は、Amplify バックエンドに自動的には反映されません。

AWS コンソールを通じたリソースの作成や、別のチームによって作成されたリソースの使用など、Amplify アプリのコンテキスト外で Amazon Cognito リソースを作成した場合は、referenceAuth を使用して既存のリソースを参照できます。ユーザープール、ユーザープールクライアント、ID プール、および ID プール上に設定された認証済みおよび未認証の IAM ロールが必要です。

amplify/auth/resource.ts
import { referenceAuth } from '@aws-amplify/backend';
export const auth = referenceAuth({
userPoolId: 'us-east-1_xxxx',
identityPoolId: 'us-east-1:b57b7c3b-9c95-43e4-9266-xxxx',
authRoleArn: 'arn:aws:iam::xxxx:role/amplify-xxxx-mai-amplifyAuthauthenticatedU-xxxx',
unauthRoleArn: 'arn:aws:iam::xxxx:role/amplify-xxxx-mai-amplifyAuthunauthenticate-xxxx',
userPoolClientId: 'xxxx',
});

Amplify アプリケーション固有の IAM ポリシーが認証済みおよび未認証ロールに追加され、参照されたリソースを使用するアプリケーションは Cognito ユーザープール内にユーザーを作成し、Cognito ID プール内にアイデンティティを作成できるようになります。

また、access プロパティを使用して、他の Amplify バックエンドリソースから認証リソースへのアクセス許可を付与することもできます。例えば、ユーザーの詳細情報を取得する必要があるファンクションがある場合は、以下のようになります:

amplify/auth/resource.ts
import { referenceAuth } from '@aws-amplify/backend';
import { getUser } from "../functions/get-user/resource";
export const auth = referenceAuth({
userPoolId: 'us-east-1_xxxx',
identityPoolId: 'us-east-1:b57b7c3b-9c95-43e4-9266-xxxx',
authRoleArn: 'arn:aws:iam::xxxx:role/amplify-xxxx-mai-amplifyAuthauthenticatedU-xxxx',
unauthRoleArn: 'arn:aws:iam::xxxx:role/amplify-xxxx-mai-amplifyAuthunauthenticate-xxxx',
userPoolClientId: 'xxxx',
access: (allow) => [
allow.resource(getUser).to(["getUser"]),
],
});

さらに、groups プロパティを使用してユーザープール内のグループを参照することもできます。これは、アプリケーションでグループを操作し、グループメンバーシップに基づくストレージなどのリソースへのアクセスを提供したい場合に便利です。

amplify/auth/resource.ts
import { referenceAuth } from '@aws-amplify/backend';
import { getUser } from "../functions/get-user/resource";
export const auth = referenceAuth({
userPoolId: 'us-east-1_xxxx',
identityPoolId: 'us-east-1:b57b7c3b-9c95-43e4-9266-xxxx',
authRoleArn: 'arn:aws:iam::xxxx:role/amplify-xxxx-mai-amplifyAuthauthenticatedU-xxxx',
unauthRoleArn: 'arn:aws:iam::xxxx:role/amplify-xxxx-mai-amplifyAuthunauthenticate-xxxx',
userPoolClientId: 'xxxx',
groups: {
admin: "arn:aws:iam::xxxx:role/amplify-xxxx-mai-amplifyAuthadminGroupRole-xxxx",
},
});

チーム環境では、デプロイメントコンテキストに応じて異なる認証リソースセットを参照したいかもしれません。例えば、別の「ステージング」環境からリソースを再利用するべき staging ブランチと、別の「本番」環境からリソースを再利用するべき production ブランチがある場合です。この場合は、環境変数を使用することをお勧めします。

amplify/auth/resource.ts
import { referenceAuth } from '@aws-amplify/backend';
export const auth = referenceAuth({
userPoolId: process.env.MY_USER_POOL_ID,
identityPoolId: process.env.MY_IDENTITY_POOL_ID,
authRoleArn: process.env.MY_AUTH_ROLE_ARN,
unauthRoleArn: process.env.MY_UNAUTH_ROLE_ARN,
userPoolClientId: process.env.MY_USER_POOL_CLIENT_ID,
});

環境変数は、サンドボックスデプロイメント用にマシン上で個別に設定し、ブランチデプロイメント用に Amplify コンソールで設定する必要があります。

次のステップ