Eu-west-1リージョンで多くのAWSサービスを実行しています。残念ながら、一時的なリソースを作成する必要がある開発者や他の従業員の多くは、AWSのこの側面を忘れており、EC2インスタンスを起動したり、S3バケットを作成したりする前にこのリージョンを選択しないようです。その結果、多くの場合、 AWSが常に使用するデフォルトのように見えるため、us-east-1リージョン。
IAM(またはその他の方法)を使用して、ユーザーアカウントを特定のリージョン内でのみ起動/作成するように制限する方法はありますか?
残念ながら、これをグローバルに行うことはできません。ただし、それをサポートするAWS製品ごとに、通常、特定のリージョンへのアクセスをcan制限できます。
たとえば、EC2の場合、次のことができます。
{
"Statement":[{
"Effect":"allow",
"Action":"RunInstances",
"Resource":"*",
"Condition":{
"StringEquals":{
"ec2:Region":"us-west-1"
}
}
}
]
}
もちろん、必要に応じてdeny
ルールも発行する必要があります。
こちら 上記のドキュメント。
このようなものを使用してください。この例では、2つのAWSリージョンへのアクセスを制限しています。必要に応じて変更します。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"eu-central-1",
"eu-west-1"
]
}
}
}]
}
2018年4月25日以降、AWSには、ユーザーがリクエストを送信できるリージョンを制限するために使用できるグローバルリソースaws:RequestedRegionがあります。これは、サービスが地域的であるかどうかに関係なく、すべてのサービスに適用できます。
残念ながら、これを組織のサービスコントロールポリシーで使用してアカウントにグローバルに適用することはできません。特定のリージョンにアカウントをロックする場合は、すべてのプリンシパルにポリシーをアタッチし、そうであることを監査する必要があります。
このスレッドで受け入れられた回答はSyntax Error on Policy
。以下は私のために働きました:
{
"Statement": [
{
"Sid": "Stmt1375943389569",
"Action": "ec2:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:Region": "eu-central-1"
}
}
}
]
}
EC2アクションのみを要求する場合は、他の応答で言及されているように制限できます。それが他のサービスである場合、それを実行できるかどうかはわかりません...例AWS Lambdaには、条件に追加できるlambda:region
がないようです。
私はこれがよりうまく機能することを発見しました(起動/停止/終了などを許可します)。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:Region": "us-east-1"
}
}
}
]
}
これは私にとってはうまくいきます、私は受け入れられた答えとして言及されたjsonでポリシーを作成しようとしましたが、それは私にとってはうまくいきません。
{
"Version": "2012-10-17",
"Statement": [{
"Action": "ec2:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:Region": [
"us-east-1"
]
}
}
}]
}
AWS IAMのFAQ から:
Q:ユーザーを地域で定義できますか?最初はありません。 AWSアカウントが今日のように、ユーザーはグローバルエンティティです。ユーザー権限を定義するときに、リージョンを指定する必要はありません。ユーザーは、どの地域でもAWSサービスを使用できます。
それが現在の解決策です-"eu-west-1"を使用します:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect" : "Allow",
"Action" : "*",
"Resource" : "*",
"Condition":
{
"StringEquals": {
"aws:RequestedRegion": "eu-west-1"
}
}
}
]
}