我正在使用以下代码,但它不会更改 AWS 中的任何内容,尽管它没有返回文档中所述的任何内容。https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserMFAPreference.html
public boolean changeMfaStatus(String username, Boolean status) {
final SMSMfaSettingsType smsMfaSettings = SMSMfaSettingsType.builder()
.preferredMfa(true)
.enabled(true)
.build();
final AdminSetUserMfaPreferenceRequest setUserMFAPreferenceRequest = AdminSetUserMfaPreferenceRequest.builder()
.userPoolId(userPoolID)
.smsMfaSettings(smsMfaSettings)
.username(username)
.build();
LOG.warn(setUserMFAPreferenceRequest);
try {
cognitoClient.adminSetUserMFAPreference(setUserMFAPreferenceRequest);
} catch (Exception e) {
LOG.warn(e);
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
更新:实际上,此代码更改了 SMS MFA 状态,但无法在 Cognito 用户池的 UI 中看到更改。同样的东西 fromaws-cli也会改变状态,但不是在 UI 中。
Update-0:在应用程序级别,它工作正常。当我启用 MFA 时,我得到了代码,而当我禁用它时,我没有得到代码。我的问题是 MFA 状态在 Cognito Amazon 控制台的 UI 中没有改变,如上图所示。
admin-set-user-mfa-preference和 和有set-user-mfa-preference什么区别?
set-user-mfa-preference需要令牌强制,如下图所示。但是在代码中,我使用了admin-set-user-mfa-preference
这有什么区别吗?
实际上,是否启用/禁用 SMS MFA 状态都没有关系。它根据从应用程序级别发送的状态工作。 …
由于grails 3.1.x有重大变化,所以适当的.gitignore?
现在,我使用了默认的grails .gitignore
我正在使用 boto3 在 AWS 批处理作业中与 KMS 进行通信。我获取 KMS 客户端的代码如下所示:
KMS = boto3.client('kms')
Run Code Online (Sandbox Code Playgroud)
我的问题是,我是否需要像这样显式传递 AWS SecretKey 和 AWS AccessKey:
KMS = boto3.client('kms',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY)
Run Code Online (Sandbox Code Playgroud)
或者
也许我只是设置环境变量AWS_ACCESS_KEY_ID并AWS_SECRET_ACCESS_KEY定义计算环境?
哪个是最好的选择?