に依存関係を持たないことが可能である場合、私は疑問に思って
インスタンスに対してアクセス許可を与える一般的な方法はInstance Profilesです。必要なすべての権限を持つロールを作成し、そのロールをインスタンスプロファイルに割り当ててから、必要なインスタンスにプロファイルを割り当てます。
あなたはできdo this with CloudFormation:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"myEC2Instance": {
"Type": "AWS::EC2::Instance",
"Version": "2009-05-15",
"Properties": {
"ImageId": "ami-205fba49",
"InstanceType": "t2.micro",
"IamInstanceProfile": {
"Ref": "RootInstanceProfile"
}
}
},
"MyRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version" : "2012-10-17",
"Statement": [ {
"Effect": "Allow",
"Principal": {
"Service": [ "ec2.amazonaws.com" ]
},
"Action": [ "sts:AssumeRole" ]
} ]
},
"Path": "/"
}
},
"RolePolicies": {
"Type": "AWS::IAM::Policy",
"Properties": {
"PolicyName": "s3",
"PolicyDocument": {
"Version" : "2012-10-17",
"Statement": [ {
"Effect": "Allow",
"Action":["s3:PutObject","s3:PutObjectAcl"],
"Resource":["arn:aws:s3:::examplebucket/*"],
} ]
},
"Roles": [ { "Ref": "MyRole" } ]
}
},
"RootInstanceProfile": {
"Type": "AWS::IAM::InstanceProfile",
"Properties": {
"Path": "/",
"Roles": [ { "Ref": "MyRole" } ]
}
}
}
}
このテンプレートIAMのアクセスを配備するユーザーを与えないようにしたい場合は、テンプレートを展開する前に、インスタンスプロファイルを作成して、テンプレート内に既存のインスタンスプロファイルを指定することができます。私はまだそれを試していないが、それはec2:AssociateIamInstanceProfile
を必要とするだけで、あなたはその特定のプロファイルに制約することができるはずです。
ユーザーが自分のアプリケーション、AWS CLIで使用するアクセスキーなどを生成しますが、インスタンスがバケットにアクセスするための適切な権限を持つ懸念していますか?またはテンプレートを実行するために必要なユーザーのアクセス許可が必要ですか? –
テンプレートはIAMリソースを作成するため、テンプレートの実行に必要なユーザー権限が必要です。 – bananasplit
私はあなたが雲情報サービスの役割を望んでいると思うhttp://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html –