如何对在 AWS Transfer Family 服务器上执行操作时出现的“Access Denied”(拒绝访问)或“Permission Denied”(权限被拒绝)错误进行故障排除?

2 分钟阅读
0

当我在 AWS Transfer Family 服务器上执行读取、写入、列出或删除操作时,我收到“Access Denied”(拒绝访问)或“Permission Denied”(权限被拒绝)错误。

解决方法

要对 Transfer Family 配置进行故障排除,请修改关联的 AWS 服务的权限。

Amazon S3 权限

确保 Transfer Family 服务器的 AWS Identity and Access Management (IAM) 角色和策略授予对 AWS 资源的访问权限。要授予对 Amazon Simple Storage Service (Amazon S3) 存储桶的读/写访问权限,请使用以下 IAM 策略示例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObjectVersion",
                "s3:GetObjectACL",
                "s3:PutObjectACL"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}

确保角色信任策略允许访问“transfer.amazonaws.com”,该策略类似于以下内容:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

有关详细信息,请参阅读/写访问权限策略示例

AWS KMS 加密权限

要允许在 Transfer Family 中进行加密,附加到用户的 IAM 角色策略必须授予所需的 AWS Key Management Service (AWS KMS) 权限。

要授予权限以使用启用了 Amazon S3 存储桶以进行 AWS KMS 加密的 Transfer Family,请使用以下示例:

{
    "Sid": "Stmt1544140969635",
    "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKey",
        "kms:GetPublicKey",
        "kms:ListKeyPolicies"
    ],
    "Effect": "Allow",
    "Resource": "arn:aws:kms:region:account-id:key/kms-key-id"
}

有关详细信息,请参阅数据保护和加密

Amazon EFS 权限

要将 Transfer Family 与 Amazon Elastic File System (Amazon EFS) 结合使用,IAM 角色策略必须授予对您的文件系统的访问权限。

要向 IAM 角色 EFS-role-for-transfer 授予 ClientMount 读取操作权限和 ClientWrite 写入操作权限,请使用以下示例 IAM 策略:

{
    "Version": "2012-10-17",
    "Id": "efs-policy-wizard-8698b356-4212-4d30-901e-ad2030b57762",
    "Statement": [
        {
            "Sid": "Grant-transfer-role-access",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/EFS-role-for-transfer"
            },
            "Action": [
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientMount"
            ]
        }
    ]
}

有关详细信息,请参阅使用 AWS Transfer Family 传输数据

跨账户权限

要使用 Transfer Family 通过另一个 AWS 账户访问您的文件系统,您必须授予该账户访问您的文件系统的权限

有关详细信息,请参阅如何配置我的 AWS Transfer Family 服务器以使用其他 AWS 账户中的 Amazon S3 存储桶?

AWS 官方
AWS 官方已更新 3 个月前