本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 1:创建 Amazon S3 存储桶
重要
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre
您必须先创建 Amazon S3 存储桶。您可以使用 Amazon S3 控制台、API 或 CLI 来直接完成此操作,不过创建资源更简单的方法通常是使用 AWS CloudFormation 模板。以下模板为此示例创建 Amazon S3 存储桶,并设置具有 IAM 角色的实例配置文件,授予对存储桶的无限制访问权限。然后,您可以使用层设置来将实例配置文件附加到堆栈的应用程序服务器实例,这会允许应用程序访问存储桶,如下文所述。实例配置文件的实效性不限制为 Amazon S3,对于集成各种 Amazon Web Service 非常有价值。
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Resources" : {
"AppServerRootRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Statement": [ {
"Effect": "Allow",
"Principal": {
"Service": [ "ec2.amazonaws.com" ]
},
"Action": [ "sts:AssumeRole" ]
} ]
},
"Path": "/"
}
},
"AppServerRolePolicies": {
"Type": "AWS::IAM::Policy",
"Properties": {
"PolicyName": "AppServerS3Perms",
"PolicyDocument": {
"Statement": [ {
"Effect": "Allow",
"Action": "s3:*",
"Resource": { "Fn::Join" : ["", [ "arn:aws:s3:::", { "Ref" : "AppBucket" } , "/*" ]
] }
} ]
},
"Roles": [ { "Ref": "AppServerRootRole" } ]
}
},
"AppServerInstanceProfile": {
"Type": "AWS::IAM::InstanceProfile",
"Properties": {
"Path": "/",
"Roles": [ { "Ref": "AppServerRootRole" } ]
}
},
"AppBucket" : {
"Type" : "AWS::S3::Bucket"
}
},
"Outputs" : {
"BucketName" : {
"Value" : { "Ref" : "AppBucket" }
},
"InstanceProfileName" : {
"Value" : { "Ref" : "AppServerInstanceProfile" }
}
}
}
在您启动模板时,将发生几件事:
-
AWS::S3::Bucket
资源创建 Amazon S3 存储桶。 -
AWS::IAM::InstanceProfile
资源创建将分配到应用程序服务器实例的实例配置文件。 -
AWS::IAM::Role
资源创建实例配置文件的角色。 -
AWS::IAM::Policy
资源将角色的权限设置为允许不受限制地访问 Amazon S3 存储桶。 -
在您启动模板之后,
Outputs
部分在 AWS CloudFormation 控制台中显示存储桶和实例配置文件名称。您需要这些值来设置堆栈和应用程序。
有关如何创建 AWS CloudFormation 模板的更多信息,请参阅学习模板基础知识。
创建 Amazon S3 存储桶
-
将示例模板复制到系统上的文本文件。
此示例假定文件名为
appserver.template
。 -
打开 AWS CloudFormation
控制台并选择创建堆栈。 -
在 Stack Name 框中,输入堆栈名称。
此示例假定名称为
AppServer
。 -
请依次选择 Upload template file (上传模板文件)、Browse (浏览)、您在步骤 1 中创建的
appserver.template
文件以及 Next Step (下一步)。 -
在 Specify Parameters (指定参数) 页面上,选择 I acknowledge that this template may create IAM resources (我确认,此模板可创建 IAM 资源),然后在向导的各页面上选择 Next Step (下一步),直至您完成。选择创建。
-
AppServer堆栈达到 CREATE_COMPLETE 状态后,将其选中并选择 “输出” 选项卡。
您可能需要刷新几次来更新状态。
-
在 “输出” 选项卡上,记录BucketName和InstanceProfileName值以备后用。
注意
AWS CloudFormation 使用术语堆栈来指根据模板创建的资源集合;它与堆栈 AWS OpsWorks 堆栈不同。