1つのインスタンスのみを一覧表示してアクションを実行する権限を持つAWSコンソールのIAMユーザーを作成しようとしています。
したがって、合計6つのインスタンスがあり、以下のポリシーを追加して、IAMポリシーを介してそれらの5つを非表示にしてみました。
内訳
1。最初にすべての権限を取り除きました
2。 1つのインスタンスのみに権限を追加しました
{
"Statement": [
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"condition": {}
}
},
{
"Effect": "Allow",
"Action": "*",
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-0123456789abcdef",
"Condition": {
"condition": {}
}
}
]
}
これは最初の部分でのみ機能します。つまり、すべてのインスタンスに対して拒否されます。
第2部が機能していないようです。
権限はそのように機能しませんか?任意の助けいただければ幸いです。
現在のポリシーはAWS-CLIで機能します。 aws ec2 stop-instance
が機能するはずです。
ただし、実際にweb consoleを使用するには、さらにいくつかのread-only permissionsが必要です。これは、コンソールがすべてのインスタンスをリストして記述し、リストを作成しようとするためです。
基本的な中途半端なリストを取得するには、少なくともec2:DescribeInstances
が必要になる場合があります。
そのIAMユーザーが他のインスタンスを変更できないようにする場合は、ec2:Describe*
を使用して読み取り専用アクセスを付与できます。これにより、許可されていないインスタンスを変更できないようにしながらコンソールを使用できるようになります。
インスタンスのリストを彼が操作できるインスタンスのみに制限する方法を私は知りません。彼はおそらくすべてを表示しますが、その単一のインスタンスしか管理できません。
それが役に立てば幸い:)
これは、IAMポリシーを使用して行うことはできません。 ec2:Describe*
コマンド(ec2:DescribeInstances
を含む)は、リソースレベルの権限をサポートしていません。したがって、すべてに対してec2:Describe*
(*
)のみを許可または拒否できます。したがって、ユーザーはすべてのインスタンスを表示することも、まったく表示しないこともできます。
ポリシーステートメントの順序は、ポリシーの結果を変更しません。したがって、「トップダウン」で記述したり解釈したりしないでください。
ポリシーは次のように機能します。
したがって、「Deny」ステートメントがあると、それを上書きすることはできません。
あなたがしようとしているように、許可を「ピジョンホール」にできるようにするには、次のいずれかを行う必要があります。
最も近いのは、ユーザーがすべてを「見る」ことができるようにすることですが、1つのEC2インスタンスでのみ操作できます。次の2つのステートメントが必要です。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "*",
"Resource": "arn:aws:ec2:us-east-1:1234567890123:instance/i-12345678"
}
]
}
すべてを拒否する必要がありますが、条件ではArnNotEquals "arn:aws:ec2:us-east-1:123456789012:instance/i-0123456789abcdef"を使用します
これにより、基本的に、許可するインスタンスと同じARNを持たない他のすべてのインスタンスが拒否されます。
詳細については、 https://docs.aws.Amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN を参照してください
MLuとSharuzzaman Ahmat Raslanに感謝します!
あなたのインプットは本当に私がこれを成し遂げるのに役立ちました。以下の場合に備えて、他の人のために私がしたことの要約を追加します。
次に、インラインポリシーを使用してアクセスを追加しました。以下のポリシーを追加しました。これは、MLuによって言及されているように、インスタンスのリストを停止することはできませんが、他のインスタンスの更新は許可されません。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "*)",
"Resource": "arn:aws:ec2:us-east-1:1234567890123:instance/i-xxxxxxxxxxxxxxxxx"
}
]
}
これが誰かが時間を節約するために立ち往生するのに役立つことを願っています。