

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 的 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 內執行，則設定必要組態。請參閱[設定 Lambda 函數以存取 VPC 中的資源](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>

如果使用 KMS 金鑰為秘密加密，而不是 AWS 受管金鑰 `aws/secretsmanager`，那麼您需要將使用該金鑰的許可授予 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 內執行，則設定必要組態。如需詳細資訊，請參閱[設定 Lambda 函數以存取 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"
        }
    ]
}
```

------