2019.11.04
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ
はじめに
ここ最近、クロスアカウントでデータの転送をしたりと、
アカウントまたぎで作業する機会が多くなってるので、ロールとかポリシーとか
を作成したんですが、なんとなく理解はしているけど、よく使う部分かつ、
セキュリティーにも関わる部分なので理解するために記事にしようと思います。
ロールとかポリシーってなんすか?
ロールは日本語でいうと、役割。
ポリシーは方針のことです。
AWSでの設定例でいうと、
たとえば、EC2からS3にあるデータに何かさせたい場合。
EC2から、S3にあるAバケットにアクセスして、そこにあるデータを
上書きする役割を付けたとします。
その役割を果たすためにの方針を作成して、それをロールにくっつけて
あげます。
つまり、ロール+ポリシー=【誰がどのリソースに、何ができるのか】
を決めて、それをセットにして、リソースに設定をくっつけてあげることで
AWSのリソースを操作していくってことなんです。
S3の認証
ロール、ポリシーの作成って、やりたいことによって
いろいろ設定する方法があるので、ここでは自分がはまったS3の認証周りを
例にしてみたいと思います。
クロスアカウントでとにかく転送したい場合
Aアカウントの転送元バケットからBアカウントの転送先バケットにとりあえず、
転送したい場合。
これは、単純に、Bアカウント側のバケットポリシーでAアカウントからの
操作するためのアクセスを許可してあげればOKです。
バケットポリシーの例
{
"Version": "2012-10-17",
"Id": "Policyxxxxxxxxxxxx",
"Statement": [
{
"Sid": "Stmtxxxxxxxxxxxxx",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AアカウントID:root"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::xxxxxx-test-backet",
"arn:aws:s3:::xxxxxx-test-backet/*"
]
}
]
}
Aアカウントから、BアカウントのS3バケットに対して、なんでもできるよ
というバケットポリシーになります。
やりたいことに合わせて、できることを絞っていくと
よりセキュアに使うことができますが、とりあえず転送するために
穴開けたい、あとで閉じるよ?くらいの使い方をしたいときに
こういう書き方をするとOKです。
さいごに
S3の認証って他にもいろいろあって掘っていくと
もっといろんな使い方できるんすけど、今回はこんな感じで。