AWS에서 MFA 필수 IAM 계정을 생성하고 사용자에게 전달하는 단계 정보
MFA 필수 및 비밀번호 재설정 가능 정책 정보
공식 문서는 다음 두 가지입니다.
기본적으로는 문서대로 하면 됩니다만, 이대로라면, 최초의 패스워드 리셋이 허가되지 않습니다.
이 문서 주석에서 볼 수 있듯이 다음을
DenyAllExceptListedIfNoMFA
에 추가합니다.iam:ChangePassword
iam:GetAccountPasswordPolicy
추가한 JSON은 다음과 같습니다. (실제로 설정할 때는 공식 문서에서 복사하십시오)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowViewAccountInfo",
"Effect": "Allow",
"Action": [
"iam:GetAccountPasswordPolicy",
"iam:ListVirtualMFADevices"
],
"Resource": "*"
},
{
"Sid": "AllowManageOwnPasswords",
"Effect": "Allow",
"Action": [
"iam:ChangePassword",
"iam:GetUser"
],
"Resource": "arn:aws:iam::*:user/${aws:username}"
},
{
"Sid": "AllowManageOwnAccessKeys",
"Effect": "Allow",
"Action": [
"iam:CreateAccessKey",
"iam:DeleteAccessKey",
"iam:ListAccessKeys",
"iam:UpdateAccessKey"
],
"Resource": "arn:aws:iam::*:user/${aws:username}"
},
{
"Sid": "AllowManageOwnSigningCertificates",
"Effect": "Allow",
"Action": [
"iam:DeleteSigningCertificate",
"iam:ListSigningCertificates",
"iam:UpdateSigningCertificate",
"iam:UploadSigningCertificate"
],
"Resource": "arn:aws:iam::*:user/${aws:username}"
},
{
"Sid": "AllowManageOwnSSHPublicKeys",
"Effect": "Allow",
"Action": [
"iam:DeleteSSHPublicKey",
"iam:GetSSHPublicKey",
"iam:ListSSHPublicKeys",
"iam:UpdateSSHPublicKey",
"iam:UploadSSHPublicKey"
],
"Resource": "arn:aws:iam::*:user/${aws:username}"
},
{
"Sid": "AllowManageOwnGitCredentials",
"Effect": "Allow",
"Action": [
"iam:CreateServiceSpecificCredential",
"iam:DeleteServiceSpecificCredential",
"iam:ListServiceSpecificCredentials",
"iam:ResetServiceSpecificCredential",
"iam:UpdateServiceSpecificCredential"
],
"Resource": "arn:aws:iam::*:user/${aws:username}"
},
{
"Sid": "AllowManageOwnVirtualMFADevice",
"Effect": "Allow",
"Action": [
"iam:CreateVirtualMFADevice",
"iam:DeleteVirtualMFADevice"
],
"Resource": "arn:aws:iam::*:mfa/${aws:username}"
},
{
"Sid": "AllowManageOwnUserMFA",
"Effect": "Allow",
"Action": [
"iam:DeactivateMFADevice",
"iam:EnableMFADevice",
"iam:ListMFADevices",
"iam:ResyncMFADevice"
],
"Resource": "arn:aws:iam::*:user/${aws:username}"
},
{
"Sid": "DenyAllExceptListedIfNoMFA",
"Effect": "Deny",
"NotAction": [
"iam:CreateVirtualMFADevice",
"iam:EnableMFADevice",
"iam:GetUser",
"iam:ListMFADevices",
"iam:ListVirtualMFADevices",
"iam:ResyncMFADevice",
"sts:GetSessionToken",
"iam:ChangePassword",
"iam:GetAccountPasswordPolicy"
],
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "false"
}
}
}
]
}
초기 사용자 용 MFA 구성된 사용자 정책
두 가지 정책을 만듭니다.
전자의 정책명과 설명을 다음과 같이 설정합니다.
설명문에 URL을 쓸 수 없기 때문에, 나중에 참조할 수 있도록 공식 문서의 타이틀을 쓰기로 했습니다.
MFARequiredOnlyForTheFirstLogin
Created YYYY-MM-DD - Copied and edited the official sample JSON to enable password reset - AWS Allows MFA-Authenticated IAM Users to Manage Their Own Credentials on the My Security Credentials Page
정책의 JSON은 위에서 설명한대로 공식 문서에서 복사하여 두 개의 Action을 추가하는 것을 설정합니다.
그런 다음 이 정책만 설정한 그룹
NotYetLoginUsers
을 만듭니다.후자의 정책 이름과 설명은 다음과 같이 설정합니다.
MFARequiredForCurrentUsers
Created YYYY-MM-DD - Copied from the official document - AWS Allows MFA-Authenticated IAM Users to Manage Their Own Credentials on the My Security Credentials Page
정책 JSON은 공식 문서의 내용을 그대로 사용합니다.
일련의 작업을 수행하는 스크립트를 아래에 작성했습니다.
setup.sh プロファイル名
에서 두 개의 정책과 NotYetLoginUsers
그룹을 만듭니다.IAM 계정 전달
다음 단계에 따라 전달합니다.
NotYetLoginUsers
그룹에만 속합니다 NotYetLoginUsers
그룹에서 제거하고 MFARequiredForCurrentUsers
및 필요한 권한 설정 2의 시점에서는 아무것도 권한이 없기 때문에, 패스워드는 메일로 보내도 좋다고 하고 있습니다.
비밀번호 정책의 영향 정보
암호 정책에는 사용자에게 암호 변경을 허용하는 옵션
Allow users to change their own password
이 있습니다.이 옵션은 켜져있는 것이 더 낫습니다.
끄면,
IAMUserChangePassword
가 추가됩니다 라는 거동이 되는 것 같습니다.
반대로 정책을 설정하는 것만으로는 그쪽이 우선되는 것 같습니다. 모든 사용자가 위의 MFA 필수 정책을 설정하면 둘 다 기본적으로 동일하게 작동합니다.
다만, OFF로 하면, 신규 유저 작성시에 마음대로
IAMUserChangePassword
폴리시가 설정되어 버리므로, 온으로 해 두는 것이 무난하다고 생각합니다.
Reference
이 문제에 관하여(AWS에서 MFA 필수 IAM 계정을 생성하고 사용자에게 전달하는 단계 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koseki/items/f20a1be6d90ddd703e48텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)