Macie が S3 バケットおよびオブジェクトにアクセスすることを許可する
AWS アカウント でAmazon Macie を有効化すると、Macieは service-linked role (サービスにリンクされたロール) を作成し、これにより、Amazon Simple Storage Service (Amazon S3) および他の AWS のサービス をユーザーに代わってコールするために必要なアクセス許可が Macie に付与されます。サービスにリンクされたロールを使用すると、サービスが自動でアクションを完了させるのに、アクセス許可を手動で追加する必要がないため、AWS のサービス の設定プロセスが簡単になります。このタイプのロールの詳細については、AWS Identity and Access Management ユーザーガイドの「IAM ロール」を参照してください。
Macie のサービスにリンクされたロールAWSServiceRoleForAmazonMacie
のアクセス許可ポリシーにより、Macie が S3 バケットとオブジェクトに関する情報の取得およびバケット内のオブジェクトからの取得を含むアクションを実行することを許可します。ユーザーが組織の Macie 管理者である場合、ポリシーにより Macie が組織のメンバーアカウントに対してユーザーの代わりにこれらのアクションを実行することも許可します。
Macie は、次のようなタスクを実行するためにこれらの許可を使用します。
-
S3 汎用バケットのインベントリを生成して維持する。
-
バケットおよびバケット内のオブジェクトに関する統計およびその他のデータを提供する。
-
バケットのセキュリティとアクセスコントロールをモニタリングして評価する。
-
バケット内のオブジェクトを分析して機密データを検出する。
ほとんどの場合、Macie はこれらのタスクを実行するために必要なアクセス許可を持っています。ただし、S3 バケットが制限付きバケットポリシーを持つ場合、ポリシーにより Macie がこれらのタスクの一部またはすべてを実行することを妨げる場合があります。
バケットポリシーは、プリンシパル(ユーザー、アカウント、サービス、または他のエンティティ)がS3バケット上で実行できるアクションと、プリンシパルがそれらのアクションを実行できる条件を指定する、リソースベースのAWS Identity and Access Management(IAM)ポリシーです。アクションと条件は、バケットに関する情報の取得などのバケットレベルのオペレーションや、バケットからのオブジェクトの取得などのオブジェクトレベルのオペレーションに適用できます。
バケットポリシーは通常、明示的な Allow
または Deny
ステートメントと条件を使用してアクセス権を付与または制限します。たとえば、バケットポリシーには、特定のソース IP アドレス、Amazon Virtual Private Cloud (Amazon VPC) エンドポイント、または VPC がバケットにアクセスするために使用されていない限り、バケットへのアクセスを拒否する Allow
または Deny
ステートメントが含まれる場合があります。バケットポリシーを使用してバケットにアクセス権を付与するか、アクセス件を制限する方法の詳細については、Amazon Simple Storage Service ユーザーガイドの「Amazon S3 のバケットポリシー」と「Amazon S3 がリクエストを許可する方法」を参照してください。
バケットポリシーが明示的な Allow
ステートメントを使用する場合、ポリシーは、Macie がバケットとバケットのオブジェクトに関する情報を取得したり、バケットからオブジェクトを取得したりすることを妨げません。これは、Macie のサービスにリンクされたロールのアクセス許可ポリシーの Allow
ステートメントが、これらのアクセス許可を付与するからです。
ただし、バケットポリシーが 1 つ以上の条件を持つ明示的な Deny
ステートメントを使用する場合、Macie はバケットまたはバケットのオブジェクトに関する情報を取得したり、バケットのオブジェクトを取得したりすることを許可されない場合があります。たとえば、バケットポリシーが特定の IP アドレスを除くすべてのソースからのアクセスを明示的に拒否した場合、Macie は機密データ検出ジョブを実行するときにバケットのオブジェクトを分析することを許可されなくなります。これは、制限付きバケットポリシーが、Macie のサービスにリンクされたロールのアクセス許可ポリシーの Allow
ステートメントより優先されるからです。
Macie が制限付きバケットポリシーを持つバケットにアクセスすることを許可するために、Macie のサービスにリンクされたロール AWSServiceRoleForAmazonMacie
の条件をバケットポリシーに追加できます。その条件により、Macie のサービスにリンクされたロールをポリシーの Deny
制限との一致から除外できます。これは、aws:PrincipalArn
グローバル条件キー および Macie のサービスにリンクされたロールの Amazon リソースネーム (ARN) を使用して行うことができます。
次の手順では、このプロセスについて説明し、例を示します。
Macie のサービスにリンクされたロールをバケットポリシーに追加するには
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
ナビゲーションペインで、バケットを選択します。
-
Macie がアクセスすることを許可する S3 バケットを選択します。
-
アクセス許可タブの バケットポリシーで 編集をクリックします。
-
バケットポリシーエディタで、アクセスを制限し、Macie がバケットまたはバケットのオブジェクトにアクセスすることを妨げるそれぞれの
Deny
ステートメントを特定します。 -
それぞれの
Deny
ステートメントで、aws:PrincipalArn
グローバル条件コンテキストキーを使用する条件を追加し、AWS アカウント の Macie のサービスにリンクされたロールの ARN を指定します。条件キーの値は
arn:aws:iam::
である必要があります。ここで、AWS アカウント のアカウント ID は123456789012
:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie123456789012
です。
これをバケットポリシーのどこに追加するかは、ポリシーに現在含まれている構造、要素、および条件によって異なります。サポートされている構造と要素の詳細については、Amazon Simple Storage Service ユーザーガイドのAmazon S3 のポリシーとアクセス許可を参照してください。
amzn-s3-demo-bucket
という名前の S3 バケットへのアクセスを制限するための明示的な Deny
ステートメントを使用するバケットポリシーの例を次に示します。現在のポリシーでは、バケットには ID が vpce-1a2b3c4d
である VPC エンドポイントからのみアクセスできます。AWS Management Console および Macie からを含め、その他のすべての VPC エンドポイントからのアクセスは拒否されます。
{
"Version": "2012-10-17",
"Id": "Policy1415115example",
"Statement": [
{
"Sid": "Access only from specific VPCE",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket",
"arn:aws:s3:::amzn-s3-demo-bucket/*"
],
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-1a2b3c4d"
}
}
}
]
}
このポリシーを変更し、Macie がバケットとバケットのオブジェクトにアクセスすることを許可するには、StringNotLike
条件演算子 とaws:PrincipalArn
グローバル条件キー を使用する条件を追加できます。この追加の条件により、Macie のサービスにリンクされたロールを Deny
制限との一致から除外します。
{
"Version": "2012-10-17",
"Id":" Policy1415115example ",
"Statement": [
{
"Sid": "Access only from specific VPCE and Macie",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket",
"arn:aws:s3:::amzn-s3-demo-bucket/*"
],
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-1a2b3c4d"
},
"StringNotLike": {
"aws:PrincipalArn": "arn:aws:iam::123456789012:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie"
}
}
}
]
}
前の例では、StringNotLike
条件演算子は、aws:PrincipalArn
条件コンテキストキーを使用して、Macie のサービスにリンクされたロールの ARN を指定します。
-
123456789012
は、Macie を使用してバケットとバケットのオブジェクトに関する情報を取得し、バケット内のオブジェクトを取得することが許可されている AWS アカウント のアカウント ID です。 -
macie.amazonaws.com
は、Macie サービスプリンシパルの識別子です。 -
AWSServiceRoleForAmazonMacie
は、Macie のサービスにリンクされたロールの名前です。
ポリシーが StringNotEquals
演算子をすでに使用しているため、StringNotLike
演算子が使用されました。ポリシーでは、StringNotEquals
演算子は一度だけ使用できます。
Amazon S3 リソースへのアクセスの管理に関する追加のポリシー例および詳細については、Amazon Simple Storage Service ユーザーガイドの「アクセス管理」を参照してください。