

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

# 에 대한 Lambda 교체 함수 실행 역할 권한 AWS Secrets Manager
<a name="rotating-secrets-required-permissions-function"></a>

[Lambda 함수로 교체](rotate-secrets_lambda.md)의 경우, Secrets Manager가 Lambda 함수를 사용하여 보안 암호를 교체하면 Lambda는 [IAM 실행 역할](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)을 담당하고 해당 자격 증명을 Lambda 함수 코드에 제공합니다. 자동 교체를 설정하는 방법에 대한 지침은 다음 섹션을 참조하세요.
+ [데이터베이스 보안 암호 자동 교체(콘솔)](rotate-secrets_turn-on-for-db.md)
+ [비데이터베이스 보안 암호 자동 교체(콘솔)](rotate-secrets_turn-on-for-other.md)
+ [자동 교체(AWS CLI)](rotate-secrets_turn-on-cli.md)

다음 예제에서는 Lambda 교체 함수 실행 역할에 대한 인라인 정책을 보여 줍니다. 실행 역할을 생성하고 권한 정책을 연결하려면 [AWS Lambda 실행 역할](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)을 참조하세요.

**Topics**
+ [Lambda 교체 함수 실행 역할에 대한 정책](#rotating-secrets-required-permissions-function-example)
+ [고객 관리형 키에 대한 정책 설명](#rotating-secrets-required-permissions-function-cust-key-example)
+ [대체 사용자 전략에 대한 정책 설명](#rotating-secrets-required-permissions-function-alternating-example)

## Lambda 교체 함수 실행 역할에 대한 정책
<a name="rotating-secrets-required-permissions-function-example"></a>

다음 예제 정책에서는 교체 함수가 다음 작업을 수행할 수 있도록 허용합니다.
+ *SecretARN*에 대한 Secrets Manager 작업을 실행합니다.
+ 새 암호를 생성합니다.
+ 데이터베이스 또는 서비스가 VPC에서 실행되는 경우 필수 구성을 설정하세요. [VPC에서 리소스에 액세스하도록 Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html)을 참조하세요.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:DescribeSecret",
                "secretsmanager:GetSecretValue",
                "secretsmanager:PutSecretValue",
                "secretsmanager:UpdateSecretVersionStage"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-AbCdEf"
    },
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetRandomPassword"
            ],
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DetachNetworkInterface"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

## 고객 관리형 키에 대한 정책 설명
<a name="rotating-secrets-required-permissions-function-cust-key-example"></a>

 AWS 관리형 키 `aws/secretsmanager` 이외의 KMS 키를 사용하여 보안 암호를 암호화할 경우 Lambda 실행 역할에 키 사용 권한을 부여해야 합니다. [SecretARN 암호화 컨텍스트](security-encryption.md#security-encryption-encryption-context)를 사용하여 암호 해독 기능의 사용을 제한할 수 있으므로 교체 함수 역할은 교체를 담당하는 암호의 암호 해독에만 액세스할 수 있습니다. 다음 예시에서는 함수가 KMS 키를 이용하여 비밀을 해독할 수 있도록 실행 역할 정책에 추가할 선언문을 보여 줍니다.

```
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:DescribeKey",
                "kms:GenerateDataKey"
            ],
            "Resource": "KMSKeyARN",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:SecretARN": "SecretARN"
                }
            }
        }
```

고객 관리형 키로 암호화된 여러 암호에 교체 기능을 사용하려면 다음 예와 같은 명령문을 추가하여 실행 역할이 암호를 해독하도록 허용하세요.

```
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:DescribeKey",
                "kms:GenerateDataKey"
            ],
            "Resource": "KMSKeyARN",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:SecretARN": [
                        "arn1",
                        "arn2"
                    ]
                }
            }
        }
```

## 대체 사용자 전략에 대한 정책 설명
<a name="rotating-secrets-required-permissions-function-alternating-example"></a>

*대체 사용자 교체 전략*에 대한 자세한 내용은 [Lambda 함수 교체 전략](rotation-strategy.md) 섹션을 참조하세요.

Amazon RDS 보안 인증 정보가 포함된 암호의 경우, 대체 사용자 전략을 사용하고 [Amazon RDS에서 슈퍼 사용자 암호를 관리](rotate-secrets_managed.md)한다면 교체 함수가 Amazon RDS에서 읽기 전용 API를 호출하도록 허용해야 데이터베이스의 연결 정보를 가져올 수도 있습니다. AWS 관리형 정책 [AmazonRDSReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSReadOnlyAccess.html)를 연결하는 것이 좋습니다.

다음 예제 정책에서는 함수가 다음 작업을 수행할 수 있도록 허용합니다.
+ *SecretARN*에 대한 Secrets Manager 작업을 실행합니다.
+ 슈퍼유저 보안 암호에서 보안 인증을 검색합니다. 슈퍼유저 보안 암호의 보안 인증은 Secrets Manager가 교체된 보안 암호의 보안 인증을 업데이트하는 데 사용됩니다.
+ 새 암호를 생성합니다.
+ 데이터베이스 또는 서비스가 VPC에서 실행되는 경우 필수 구성을 설정하세요. 자세한 내용은 [VPC의 리소스에 액세스하도록 Lambda 함수 구성(Configuring a Lambda function to access resources in a VPC)](https://docs.aws.amazon.com/lambda/latest/dg/vpc.html)을 참조하세요.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:DescribeSecret",
                "secretsmanager:GetSecretValue",
                "secretsmanager:PutSecretValue",
                "secretsmanager:UpdateSecretVersionStage"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-AbCdEf"
    },
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-AbCdEf"
    },
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetRandomPassword"
            ],
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DetachNetworkInterface"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------