Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 错误代码:向无服务器应用程序存储库提交应用程序时禁止403_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services 错误代码:向无服务器应用程序存储库提交应用程序时禁止403

Amazon web services 错误代码:向无服务器应用程序存储库提交应用程序时禁止403,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我试图将我的应用程序发布到无服务器应用程序存储库,但在选择“template.yml”文件时出错: 禁止服务:亚马逊S3;状态代码:403;错误代码:403 被禁止的请求ID:XXXXXXXXXXXXX;S3扩展请求ID: XXXXXXXXXXXXXX 这是我的“template.yml”: AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Resources: DataScrape

我试图将我的应用程序发布到无服务器应用程序存储库,但在选择“template.yml”文件时出错:

禁止服务:亚马逊S3;状态代码:403;错误代码:403 被禁止的请求ID:XXXXXXXXXXXXX;S3扩展请求ID: XXXXXXXXXXXXXX

这是我的“template.yml”:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'

Resources:
  DataScraper:
    Type: 'AWS::Serverless::Function'
    Properties:
      Handler: data_scraper.handler
      Runtime: python3.6
      CodeUri:
        Bucket: ht-helpbot
        Key: data_scraper.zip
        Version: 1.0
      CodeUri: 's3://ht-helpbot/data_scraper.zip'
      Policies:
        - DynamoDBCrudPolicy:
              TableName: HTServiceProviderTable
  FindService:
    Type: 'AWS::Serverless::Function'
    Properties:
      Handler: find_service.handler
      Runtime: python3.6
      CodeUri: 's3://ht-helpbot/find_service.zip'
      Policies:
        - DynamoDBCrudPolicy:
              TableName: HTServiceProviderTable

我必须授予对S3存储桶和对象的公共读取权限,以使其工作。

我必须授予对S3存储桶和对象的公共读取权限,以使其工作。

我通过为我的存储桶输入以下策略来解决此问题:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "serverlessrepo.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::BUCKET_NAME/*"
        }
    ]
}
其中BUCKET_NAME是我的BUCKET的名称

请用大量的NaCl来回答这个问题,因为我对AWS权限不是很了解


简单地授予对我的S3存储桶的公共读取权限对我来说并不像@harry那样有效。此外,我还必须包含由sam deploy构建的packaged.yaml模板—它包含完整的S3 URL。

我通过为我的bucket创建以下策略来解决此问题:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "serverlessrepo.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::BUCKET_NAME/*"
        }
    ]
}
其中BUCKET_NAME是我的BUCKET的名称

请用大量的NaCl来回答这个问题,因为我对AWS权限不是很了解


简单地授予对我的S3存储桶的公共读取权限对我来说并不像@harry那样有效。此外,我还必须包括由sam deploy构建的packaged.yaml模板—它包括完整的S3 URL。

为了能够使用无服务器应用程序存储库serverlessrepo发布应用程序,serverlessrepo需要能够在打包应用程序期间读取上传到S3的S3工件

提供这些权限的标准方法(如中所述)是在您的Bucket上为serverlessrepo提供一个资源策略,例如下面的示例,其中将替换为S3 Bucket的名称

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service":  "serverlessrepo.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<your-bucket-name>/*"
        }
    ]
}
它在何时开始工作的原因是,通过这样做,您使该bucket中的对象(包括来自打包world的工件)可读,包括serverlessrepo服务。正如文件中所指出的,虽然这是可行的:

如果您不建议公开您的bucket,则任何未经验证的用户都可以将对象上载到bucket


为了能够使用无服务器应用程序存储库serverlessrepo发布应用程序,serverlessrepo需要能够在打包应用程序期间读取上载到S3的S3工件

提供这些权限的标准方法(如中所述)是在您的Bucket上为serverlessrepo提供一个资源策略,例如下面的示例,其中将替换为S3 Bucket的名称

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service":  "serverlessrepo.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<your-bucket-name>/*"
        }
    ]
}
它在何时开始工作的原因是,通过这样做,您使该bucket中的对象(包括来自打包world的工件)可读,包括serverlessrepo服务。正如文件中所指出的,虽然这是可行的:

如果您不建议公开您的bucket,则任何未经验证的用户都可以将对象上载到bucket


您是否已通过AWS帐户的身份验证?听起来您没有权限在您使用的帐户上发布服务。是的,我已登录到帐户HMMMM。那么,除非你使用的帐户受到限制,不允许形成该功能,否则我不知道。对不起,您是否已通过AWS帐户的身份验证?听起来您没有权限在您使用的帐户上发布服务。是的,我已登录到帐户HMMMM。那么,除非你使用的帐户受到限制,不允许形成该功能,否则我不知道。对不起,不是推荐的方法-见上面的@jamie Starke解释:不是推荐的方法-见上面的@jamie Starke解释: