我对AWS非常陌生,我只是在尝试和尝试学习。因此,我有一个带有IAM角色的EC2实例。我还有一个EFS文件系统,其策略如下。我的目的是限制将访问点挂载到带有IAM角色的EC2实例。
但是,当我试图从EC2实例挂载时,访问被拒绝了。
mount.nfs4:服务器在挂载127.0.0.1时拒绝访问:
如果我将主体更改为"AWS“:"*”,则可以挂载访问点。根据文档,我可以将EC2实例使用的IAM角色指定为主体,但它似乎不起作用。
我怀疑我的问题在某种程度上是我附加到EC2实例的角色。该角色具有EFS客户端操作,但是当我查看IAM控制台中的角色并检查访问顾问时,它说该角色从未被访问过。所以我可能做了些根本错误的事。
{
"Version": "2020-08-08",
"Id": "access-point-www",
"Statement": [
{
"Sid": "access-point-webstorage",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::12345678:role/wwwservers"
},
"Action": [
"elasticfilesystem:ClientMount",
"elasticfilesystem:ClientWrite"
],
"Resource": "arn:aws:elasticfilesystem:us-east-1:12345678:file-system/fs-987654da",
"Condition": {
"StringEquals": {
"elasticfilesystem:AccessPointArn": "arn:aws:elasticfilesystem:us-east-1:12345678:access-point/fsap-01ffffbfb38217bcd"
}
}
}
]
}
发布于 2021-05-12 15:04:58
你允许我安装吗?否则,AWS试图将EFS卷挂载为匿名原则。
对于EC2,就像您的情况一样,您可能只是在调用挂载时提供了-o iam
选项。
请参阅:https://docs.amazonaws.cn/en_us/efs/latest/ug/efs-mount-helper.html#mounting-IAM-option
对于ECS/任务定义,可以这样做:
就像这里:aws_ecs_task_definition.volume.efs_volume_configuration.authorization_config
resource "aws_ecs_task_definition" "service" {
family = "something"
container_definitions = file("something.json")
volume {
name = "service-storage"
efs_volume_configuration {
file_system_id = aws_efs_file_system.efs[0].id
root_directory = "/"
transit_encryption = "ENABLED"
authorization_config {
iam = "ENABLED"
}
}
}
}
iam -(可选)在挂载Amazon文件系统时是否使用在任务定义中定义的Amazon任务IAM角色。如果启用,则必须在EFSVolumeConfiguration中启用传输加密。有效值:已启用、禁用。如果省略此参数,则使用禁用的默认值。
如果您的CloudTrail中存在匿名主体试图挂载EFS的错误,这将对您有所帮助。那么,错误应该是这样的:
{
"eventVersion": "1.08",
"userIdentity": {
"type": "AWSAccount",
"principalId": "",
"accountId": "ANONYMOUS_PRINCIPAL"
},
"eventSource": "elasticfilesystem.amazonaws.com",
"eventName": "NewClientConnection",
"sourceIPAddress": "AWS Internal",
"userAgent": "elasticfilesystem",
"errorCode": "AccessDenied",
"readOnly": true,
"resources": [
{
"accountId": "XXXXXX",
"type": "AWS::EFS::FileSystem",
"ARN": "arn:aws:elasticfilesystem:eu-west-1:XXXXXX:file-system/YYYYYY"
}
],
"eventType": "AwsServiceEvent",
"managementEvent": true,
"eventCategory": "Management",
"recipientAccountId": "XXXXXX",
"sharedEventID": "ZZZZZZZZ",
"serviceEventDetails": {
"permissions": {
"ClientRootAccess": false,
"ClientMount": false,
"ClientWrite": false
},
"sourceIpAddress": "nnnnnnn"
}
}
注:"principalId": "",
和"accountId": "ANONYMOUS_PRINCIPAL"
https://stackoverflow.com/questions/63318267
复制相似问题