我有一个在EC2实例上运行的Elastic Beanstalk应用程序,目前我已经为所有同事提供了管理员权限。但是现在我想添加其他环境和Web应用程序,我不希望我的同事有权访问。我一直在看Resource-Level Permissions,但是我正在试着让它发挥作用。有时它间歇性地工作,我正在寻找有关如何从以前有经验的人那里实现这一目标的建议。
简而言之:我有[应用程序A]我希望用户可以访问。我还有[应用程序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": {}
}
]
}
派生自here。如果有更多IAM政策经验的人能够确定我做错了什么以及如何正确地做到这一点,我将非常感激。如果有一种更简单的方法,我也很乐意听到它!
谢谢!
答案 0 :(得分:0)
由于您的同事已拥有管理员权限,因此您需要拒绝政策。 以下策略明确拒绝访问除列出的资源之外的所有Amazon EB资源
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Deny",
"Action": "elasticbeanstalk:*",
"NotResource": [
"<Application A ARN>"
]
}
}