사용자 암호 자동 교체 - Amazon ElastiCache

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사용자 암호 자동 교체

를 사용하면 코드의 하드코딩된 보안 인증 정보(암호 포함)를 Secrets Manager에 API 직접 호출하여 프로그래밍 방식으로 보안 암호를 검색할 AWS Secrets Manager수 있습니다. 이렇게 하면 보안 암호가 해당 위치에 있지 않기 때문에 여러분의 코드를 검사하는 누군가에 의해 보안 암호가 손상되지 않도록 방지할 수 있습니다. 또한 사용자가 지정한 일정에 따라 Secrets Manager가 자동으로 보안 암호를 교체하도록 구성할 수 있습니다. 따라서 단기 보안 암호로 장기 보안 암호를 교체할 수 있어 손상 위험이 크게 줄어듭니다.

Secrets Manager를 사용하면 Secrets Manager가 제공하는 AWS Lambda 함수를 사용하여 ElastiCache (Redis OSS) 암호(즉, 암호)를 자동으로 교체할 수 있습니다.

에 대한 자세한 내용은 란 무엇입니까 AWS Secrets Manager?를 AWS Secrets Manager참조하세요.

가 보안 암호를 ElastiCache 사용하는 방법

Valkey 7.2에는 Redis OSS 7.0과 동등한 기능이 설정되어 있습니다. Redis OSS 6에서는 Valkey 또는 Redis OSS 클러스터를 보호하는 역할 기반 액세스 제어(RBAC) 방법을 ElastiCache 도입했습니다. 이 기능을 사용하면 실행 가능한 명령 및 액세스 가능한 키 측면에서 특정 연결을 제한할 수 있습니다. 를 사용하면 고객이 암호로 사용자를 생성하는 RBAC동안 암호 값을 일반 텍스트로 수동으로 입력해야 하며, 이는 작업자에게 표시됩니다.

Secrets Manager를 이용하면 애플리케이션이 Secrets Manager에서 암호를 가져와 애플리케이션 구성에 저장하므로 수동으로 입력할 필요가 없습니다. 이렇게 하는 방법에 대한 정보는 ElastiCache 사용자가 보안 암호와 연결되는 방법 단원을 참조하십시오.

보안 암호 사용 시 비용이 발생합니다. 요금 정보는 AWS Secrets Manager 요금을 참조하세요.

ElastiCache 사용자가 보안 암호와 연결되는 방법

Secrets Manager는 보안 암호의 SecretString 필드에 연결된 사용자에 대한 참조를 보관합니다. ElastiCache 측의 보안 암호에 대한 참조는 없습니다.

{ "password": "strongpassword", "username": "user1", "user_arn": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" //this is the bond between the secret and the user }

Lambda 교체 함수

Secrets Manager 자동 암호 교체를 활성화하려면 수정 사용자와 상호 작용API하여 사용자의 암호를 업데이트하는 Lambda 함수를 생성합니다.

작동 방식에 대한 자세한 내용은 교체 작동 방식을 참조하세요.

참고

일부 AWS 서비스의 경우 혼동된 대리자 시나리오를 방지하려면 aws:SourceArnaws:SourceAccount 전역 조건 키를 모두 사용하는 것이 AWS 좋습니다. 그러나 교체 함수 정책에 aws:SourceArn 조건을 포함하는 경우 교체 함수는 해당 에서 지정한 보안 암호를 교체하는 데만 사용할 수 있습니다ARN. 여러 보안 암호에 대해 교체 기능을 사용할 수 있도록 컨텍스트 키 aws:SourceAccount만 포함하는 것이 좋습니다.

발생할 수 있는 모든 문제는 AWS Secrets Manager 교체 문제 해결을 참조하세요.

ElastiCache 사용자를 생성하고 Secrets Manager와 연결하는 방법

다음 단계에서는 사용자를 생성하고 Secrets Manager와 연결하는 방법을 보여줍니다.

  1. 비활성 사용자 생성

    Linux, macOS, Unix의 경우:

    aws elasticache create-user \ --user-id user1 \ --user-name user1 \ --engine "REDIS" \ --no-password \ // no authentication is required --access-string "*off* +get ~keys*" // this disables the user

    Windows의 경우:

    aws elasticache create-user ^ --user-id user1 ^ --user-name user1 ^ --engine "REDIS" ^ --no-password ^ // no authentication is required --access-string "*off* +get ~keys*" // this disables the user

    다음과 비슷한 응답이 나타납니다.

    { "UserId": "user1", "UserName": "user1", "Status": "active", "Engine": "redis", "AccessString": "off ~keys* -@all +get", "UserGroupIds": [], "Authentication": { "Type": "no_password" }, "ARN": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" }
  2. 보안 암호 생성

    Linux, macOS, Unix의 경우:

    aws secretsmanager create-secret \ --name production/ec/user1 \ --secret-string \ '{ "user_arn": "arn:aws:elasticache:us-east-1:123456xxxx:user:user1", "username":"user1" }'

    Windows의 경우:

    aws secretsmanager create-secret ^ --name production/ec/user1 ^ --secret-string ^ '{ "user_arn": "arn:aws:elasticache:us-east-1:123456xxxx:user:user1", "username":"user1" }'

    다음과 비슷한 응답이 나타납니다.

    { "ARN": "arn:aws:secretsmanager:us-east-1:123456xxxx:secret:production/ec/user1-eaFois", "Name": "production/ec/user1", "VersionId": "aae5b963-1e6b-4250-91c6-ebd6c47d0d95" }
  3. 암호를 교체하도록 Lambda 함수 구성

    1. 에 로그인 AWS Management Console 하고 에서 Lambda 콘솔을 엽니다. https://console.aws.amazon.com/lambda/

    2. 탐색 창에서 함수를 선택한 후, 생성해 둔 함수를 선택합니다. 왼쪽에 있는 확인란이 아닌, 함수 이름을 선택합니다.

    3. 구성 탭을 선택합니다.

    4. 일반 구성에서 편집을 선택한 다음, 제한 시간을 최소 12분으로 설정합니다.

    5. 저장(Save)을 선택합니다.

    6. 환경 변수를 선택한 후, 다음을 설정합니다.

      1. SECRETS_MANAGER_ENDPOINT – https://secretsmanager.REGION.amazonaws.com

      2. SECRET_ARN – 2단계에서 생성한 보안 암호의 Amazon 리소스 이름(ARN)입니다.

      3. USER_NAME – 사용자의 사용자 이름 ElastiCache ,

      4. 저장(Save)을 선택합니다.

    7. 권한을 선택합니다.

    8. 실행 역할 에서 IAM 콘솔에서 볼 Lambda 함수 역할의 이름을 선택합니다.

    9. Lambda 함수에 다음 권한이 있어야 사용자를 수정하고 암호를 설정할 수 있습니다.

      ElastiCache

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticache:DescribeUsers", "elasticache:ModifyUser" ], "Resource": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" } ] }

      Secrets Manager

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "arn:aws:secretsmanager:us-east-1:xxxxxxxxxxx:secret:XXXX" }, { "Effect": "Allow", "Action": "secretsmanager:GetRandomPassword", "Resource": "*" } ] }
  4. Secrets Manager 보안 암호 교체 설정

    1. 를 사용하여 콘솔을 사용하여 Secrets Manager 보안 암호의 자동 교체 설정을 AWS Management Console참조하세요. AWS

      교체 일정 설정에 대한 자세한 내용은 Secrets Manager 교체 일정 표현식을 참조하세요.

    2. 를 사용하여 를 사용하기 위한 자동 교체 설정을 AWS CLI참조하세요. AWS Secrets ManagerAWS Command Line Interface