@ 模拟/锯齿
S3, SQS, Cognitto, IAM, 和 STS 以 AWS SDK相容的 S3 路径模拟, JSON SQS/ Cognitto 端点, 和 XML 查询 IAM/ STS 端点. S3上传和下载保存了任意的二进制有效载荷,包括生字节长度和ETag. 反应使用相应的AWS有线格式.
部分 模拟 ——为CI和无网络沙盒提供本地出入口替换服务.
安装
npm install @emulators/aws
终点
第3条
S3路由使用匹配真实的 AWS S3 线条格式的根路由,所以正式的 AWS SDK 工作在框外用 forcePathStyle: true. 遗产 /s3/ 前缀路径也被支持后向兼容性.
GET /- 列出所有桶PUT /:bucket- 创建桶DELETE /:bucket— 删除桶HEAD /:bucket——检查存在GET /:bucket——列出对象(前缀、分隔符、最大键、接续键、起动键)POST /:bucket– 预先签名的 POST上传(浏览器风格多部分形式并附有政策验证)PUT /:bucket/:key—— 设置对象(支持副本通过x-amz-copy-source(中文(简体) )GET /:bucket/:key——获取对象HEAD /:bucket/:key— 头对象DELETE /:bucket/:key删除对象
质量
所有业务通过 POST /sqs/ 与 Action 参数 :
CreateQueue, (中文(简体) ),ListQueues, (中文(简体) ),GetQueueUrl, (中文(简体) ),GetQueueAttributesSendMessage, (中文(简体) ),ReceiveMessage, (中文(简体) ),DeleteMessagePurgeQueue, (中文(简体) ),DeleteQueue
行政会议
所有业务通过 POST /iam/ 与 Action 参数 :
CreateUser, (中文(简体) ),GetUser, (中文(简体) ),ListUsers, (中文(简体) ),DeleteUserCreateAccessKey, (中文(简体) ),ListAccessKeys, (中文(简体) ),DeleteAccessKeyCreateRole, (中文(简体) ),GetRole, (中文(简体) ),ListRoles, (中文(简体) ),DeleteRole
认知
使用 CognitoIdentityProviderClient 有终点 /cognito-idp 财务报告和审定财务报表 CognitoIdentityClient 与 /cognito-identity。既接受AWS JSON 1.1,又与官方AWS SDK v3合作:
import { CognitoIdentityProviderClient, InitiateAuthCommand } from "@aws-sdk/client-cognito-identity-provider";
const cognito = new CognitoIdentityProviderClient({
endpoint: "http://localhost:4007/cognito-idp",
region: "us-east-1",
credentials: { accessKeyId: "local-access-key", secretAccessKey: "local-secret" },
});
const result = await cognito.send(new InitiateAuthCommand({
ClientId: "emulateclient",
AuthFlow: "USER_PASSWORD_AUTH",
AuthParameters: { USERNAME: "developer", PASSWORD: "LocalPass123!" },
}));
默认用户池 us-east-1_emulate,公共应用程序客户端 emulateclient和身份组合 us-east-1:00000000-0000-4000-8000-000000000001 创建时没有用户。 以上述例子为例,提出了经证实的叙述:
aws:
cognito:
user_pools:
- id: us-east-1_emulate
confirmation_code: "123456"
users:
- username: developer
password: LocalPass123!
attributes:
email: [email protected]
email_verified: "true"
name: Developer
用户池也接受 name 财务报告和审定财务报表 clients 与 client_id选项 client_secret准确 redirect_uris,并允许 scopes用户接受 status (单位:千美元)CONFIRMED, (中文(简体) ), UNCONFIRMED,或 FORCE_CHANGE_PASSWORD和 enabled。密码需要至少8个字符,并作为盐分散列储存。 秘密客户需要Cognito的HMAC SecretHash 或者说 SECRET_HASH sDK流量.
SignUp, (中文(简体) ),ConfirmSignUp, (中文(简体) ),ResendConfirmationCode, (中文(简体) ),ForgotPassword,以及ConfirmForgotPassword模式账户确认和回收。 密码在10分钟后过期 并使用游泳池confirmation_code默认固定123456。没有发送电子邮件或短消息。 检查活动代码 :/_inspector?tab=cognito;种子未经证实的用户可以请求使用ResendConfirmationCode。 。 。 .InitiateAuth支持USER_PASSWORD_AUTH, (中文(简体) ),REFRESH_TOKEN_AUTH,以及REFRESH_TOKEN。 。 。 .AdminInitiateAuth也支持ADMIN_USER_PASSWORD_AUTH。管理员创建的临时密码返回NEW_PASSWORD_REQUIRED,以RespondToAuthChallenge或者说AdminRespondToAuthChallenge。挑战会话在三分钟后到期,并绑定给用户和客户端.GetUser, (中文(简体) ),ChangePassword, (中文(简体) ),GlobalSignOut,以及RevokeToken使用已发行的符号.AdminCreateUser(与TemporaryPassword, (中文(简体) ),AdminGetUser, (中文(简体) ),AdminConfirmSignUp, (中文(简体) ),AdminSetUserPassword, (中文(简体) ),AdminEnableUser, (中文(简体) ),AdminDisableUser, (中文(简体) ),AdminDeleteUser标注ListUsers支助测试设置和管理.
托肯斯是RS256 JWT与克尼奥多 token_use 索赔。 识别应用程序客户端的标识符 aud; 使用访问符 client_id. ID和访问标志在1小时后失效;在30天后刷新标志。 签名、 撤销、 禁用、 删除和密码重置无效会话 。 用户、会话、身份和签名键参与快照、恢复和重置.
当地发行商是 http://localhost:4007/cognito-idp/USER_POOL_ID发现和公用钥匙 ISSUER/.well-known/openid-configuration 财务报告和审定财务报表 ISSUER/.well-known/jwks.json。用本地发行商和JWKS配置符号验证器. ISSUER/oauth2/authorize 呈现本地用户选择器, ISSUER/oauth2/token 交换授权代码或刷新令牌,以及 ISSUER/oauth2/userInfo 返回范围描述文件请求。 授权代码在5分钟后过期,是单用,并绑定客户端,精确重定向URI,以及可选的S256 PKCE挑战. 接受客户认证 client_secret_basic 或者说 client_secret_post。默认客户端许可 http://localhost:3000/callback。 。 。 .
身份池支持 GetId 财务报告和审定财务报表 GetCredentialsForIdentity中提供标识符 Logins 下级 cognito-idp.REGION.amazonaws.com/USER_POOL_ID。默认身份池接受默认用户池和应用程序客户端。 自定义 aws.cognito.identity_pools 录入 id选项 name, (中文(简体) ), providers: [{ user_pool_id, client_id }],以及 allow_unauthenticated_identities (默认) false) (中文(简体) ). 同一鉴定对象的身份保持稳定。 身份证明在一个小时后失效;对登录签名,到期,观众,身份所有权进行检查.
SRP、外交部、外部身份提供者、Lambda触发器、池/客户管理API、, ListUsers 过滤器,和身份池角色选择不模拟. 行政请求遵循AWS模拟器的可允许的认证行为:SigV4签名和IAM政策不进行评估. 身份库证书是生成的测试证书,没有作用或政策评价.
口译
所有业务通过 POST /sts/ 与 Action 参数 :
GetCallerIdentity, (中文(简体) ),AssumeRole
认证
持卡人标志或IAM访问密钥证书. 默认密钥对总是种子 : AKIAIOSFODNN7EXAMPLE 编号 : wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY。 。 。 .
种子配置
aws:
region: us-east-1
s3:
buckets:
- name: my-app-bucket
- name: my-app-uploads
sqs:
queues:
- name: my-app-events
- name: my-app-dlq
iam:
users:
- user_name: developer
create_access_key: true
roles:
- role_name: lambda-execution-role
description: Role for Lambda function execution