我有一个在EC2实例上运行的弹性beanstalk应用程序,目前我已将管理员特权授予所有同事。但是现在,我想添加其他我不希望同事可以访问的环境和Web应用程序。我一直在研究资源级的权限,但我将头发拔出来试图使它起作用。有时它间歇性地工作,我正在寻找有关我如何从任何拥有经验的人那里实现这一目标的建议。
简而言之:我拥有我希望用户可以访问的[应用程序]。我还有[应用程序B]和[应用C]我想限制访问的访问,因此我只能看到并进行更改。
这是我当前的IAM政策JSON;
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:*",
"ecr:*",
"elasticloadbalancing:*",
"autoscaling:*",
"cloudwatch:*",
"sns:*",
"cloudformation:*",
"dynamodb:*",
"rds:*",
"sqs:*",
"iam:GetPolicyVersion",
"iam:ListRolePolicies",
"iam:ListAttachedRolePolicies",
"iam:ListInstanceProfiles",
"iam:ListRoles",
"iam:ListServerCertificates",
"acm:DescribeCertificate",
"acm:ListCertificates",
"codebuild:CreateProject",
"codebuild:DeleteProject",
"codebuild:BatchGetBuilds",
"codebuild:StartBuild"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:*"
],
"Resource": [
"arn:aws:ec2:myregion:myaccountid:instance/*"
],
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Name":"mytag"
}
}
},
{
"Effect": "Allow",
"Action": [
"elasticbeanstalk:*"
],
"Resource": [
"arn:aws:elasticbeanstalk:myregion:myaccountid:environment/myapp/myenv"
],
"Condition": {}
}
]
}
从这里得出。如果有更多有关IAM政策经验的人可以确定我在做错了什么以及如何正确地做到这一点,我将非常感谢。如果有一种更简单的方法,我也很想听听!
谢谢!
由于您的同事已经具有管理员访问权限,因此您需要拒绝策略。以下策略明确否认访问所有Amazon EB资源以外的所有Amazon EB资源
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Deny",
"Action": "elasticbeanstalk:*",
"NotResource": [
"<Application A ARN>"
]
}
}